Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - tomreyn

Pages: 1 2 3 4 5 [6] 7 8 9 10 ... 20
126
Feature requests / [done] More speed steps (very fast / very slow)
« on: 12 January 2013, 01:50:24 »
Currently local games can be slowed down (by pressing '-') or speeded up (by pressing '+'). It would be generally nice but also benefit testing if it was possible to speed the game up further.
So I suggest to add at least one more speed step, accelerating games even more than the '+' key currently does.

Control could remain on + / - keys by default, with additional presses increasing / decreasing speed further. On keypress, the newly set speed step (such as: ultra slow (-3), very slow (-2), slow (-1), normal (0), fast (+1), very fast (+2), ultra fast (+3)) should be indicated on screen (as it already is now).

127
While connecting my MegaGlest 3.7.1 client running on Ubuntu 12.10 x86_64 to one of Nig's new headless servers ("urg", running r3999 on Windows) using ./megaglest --connect=95.118.165.228:61417 which one player was already connected to, my client ran into a segmentation fault. Checking http://play.mg right after the crash I see the game I tried to join has just been started.

~/.megaglest/error.log:

Code: [Select]
[2013-01-09 17:28:38] Runtime Error information:
======================================================
In [/home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 4934] Error detected: signal 11:

Stack Trace:
./megaglest:Glest::Game::ExceptionHandler::handleRuntimeError(char const*, bool)address [0x771217] line: 0
./megaglest:Glest::Game::handleSIGSEGV(int)address [0x743aff] line: 4939
/lib/x86_64-linux-gnu/libc.so.6:()address [0x7f6bb31234a0] line: 0
/usr/lib/x86_64-linux-gnu/libstdc++.so.6:()address [0x7f6bb3a32c2a] line: 0
./megaglest:std::_Rb_tree<std::string, std::pair<std::string const, Glest::Game::ModInfo>, std::_Select1st<std::pair<std::string const, Glest::Game::ModInfo> >, std::less<std::string>, std::allocator<std::pair<std::string const, Glest::Game::ModInfo> > >::_M_insert_unique(std::pair<std::string const, Glest::Game::ModInfo> const&)address [0x7b5313] line: 1179
./megaglest:std::_Rb_tree<std::string, std::pair<std::string const, Glest::Game::ModInfo>, std::_Select1st<std::pair<std::string const, Glest::Game::ModInfo> >, std::less<std::string>, std::allocator<std::pair<std::string const, Glest::Game::ModInfo> > >::_M_insert_unique_(std::_Rb_tree_const_iterator<std::pair<std::string const, Glest::Game::ModInfo> >, std::pair<std::string const, Glest::Game::ModInfo> const&)address [0x7b551a] line: 1217
./megaglest:std::map<std::string, Glest::Game::ModInfo, std::less<std::string>, std::allocator<std::pair<std::string const, Glest::Game::ModInfo> > >::operator[](std::string const&)address [0x7b6d41] line: 0
./megaglest:Glest::Game::MenuStateConnectedGame::refreshTechModInfo(std::string)address [0x7ce934] line: 785
./megaglest:Glest::Game::MenuStateConnectedGame::simpleTask(Shared::PlatformCommon::BaseThread*)address [0x7d8e3d] line: 1014
./megaglest:Shared::PlatformCommon::SimpleTaskThread::execute()address [0xaf10f7] line: 451
./megaglest:Shared::Platform::Thread::beginExecution(void*)address [0xb23f4f] line: 81
/usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0:()address [0x7f6bb6f71196] line: 0
/usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0:()address [0x7f6bb6fb1e49] line: 0
/lib/x86_64-linux-gnu/libpthread.so.0:()address [0x7f6bb6d48e9a] line: 0
/lib/x86_64-linux-gnu/libc.so.6:clone()address [0x7f6bb31e0cbd] line: 0

128
MegaGlest / Build tools cleanup
« on: 28 December 2012, 14:59:48 »
I'd like your opinion on the following changes for the purpose of cleaning up the build tools and making their use more intuitive / guessable:
  • Move / rename / edit paths in script as needed /build-mg-win32.sh to /mk/windoze/build-mg-mingw.sh
  • Move / rename / edit paths in script as needed /build-mg.bat to /mk/windoze/build-mg-mingw.bat
  • Move / rename / edit paths in script as needed /mk/windoze/build-mg-2010.bat to /mk/windoze/build-mg-vc2010.bat
  • Move / rename / edit paths in script as needed /mk/windoze/build-mg.bat to /mk/windoze/build-mg-vc2008.bat, alternatively delete this now unsupported script
  • Move / rename / edit paths in script as needed /mk/windoze/CopyWindowsRuntimeDlls_2010.bat to /mk/windoze/deploy-mg-vc2010.bat
  • Move / rename / edit paths in script as needed /mk/windoze/CopyWindowsRuntimeDlls.bat to /mk/windoze/deploy-mg-vc2008.bat, alternatively delete this now unsupported script
External references to these scripts, including those in other scripts and in the documentation, would need to be updated.

My goals here are both getting more intuitive script names and locations, as well as to move all scripts to the build directory which they build for, i.e. all scripts which crete/handle Linux builds would go into mk/linux/, all scripts which create/handle Windows builds (be it on POSIX or Windows platforms) would go to mk/windoze/.

If this seems too much, a limited subset of these changes / improvements would be to:
  • rename /build-mg-win32.bat to /build-mg-mingw.bat
  • rename /mk/windoze/build-mg.bat to /mk/windoze/build-mg-vc2008.bat, alternatively delete this now unsupported script
  • rename /mk/windoze/CopyWindowsRuntimeDlls.bat to /mk/windoze/deploy-mg-vc2008.bat, alternatively delete this now unsupported script
What do you think?

129
With the latest code from SVN, fresh CMakeCache.txt, MG fails to build on Ubuntu 12.10 (x86_64) for me.

Code: [Select]
tomreyn@atibox:~/SCM/megaglest-trunk$ svn up
Updating '.':
Revision 3961.

tomreyn@atibox:~/SCM/megaglest-trunk$ svn diff

tomreyn@atibox:~/SCM/megaglest-trunk$ ls -l build/CMakeCache.txt
-rw-rw-r-- 1 tomreyn tomreyn 37651 Dez 27 14:05 build/CMakeCache.txt

tomreyn@atibox:~/SCM/megaglest-trunk$ ./build-mg.sh
-- The C compiler identification is GNU 4.7.2
-- The CXX compiler identification is GNU 4.7.2
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Build type for this compile will be:
-- Detected GNUC Compiler...
-- *NOTE: Checking for max SSE LEVEL [1]
-- Max SSE desired: [1]
-- Performing Test HAS_SSE3_EXTENSIONS
-- Performing Test HAS_SSE3_EXTENSIONS - Success
-- Performing Test HAS_SSE2_EXTENSIONS
-- Performing Test HAS_SSE2_EXTENSIONS - Success
-- Performing Test HAS_SSE_EXTENSIONS
-- Performing Test HAS_SSE_EXTENSIONS - Success
-- Found SSE extensions, using flags: -msse -mfpmath=sse
-- *NOTE: using SSE for STREFLOP.
-- Performing Test HAS_GCC_BACKTRACE
-- Performing Test HAS_GCC_BACKTRACE - Success
-- Found GCC backtrace lib, will support backtraces
-- Found Subversion: /usr/bin/svn (found version "1.7.5")
-- Found SVN and using SVN version stamping...
-- *NOTE: NOT USING a Custom Data Install Path...
-- **Found game source code.
-- Will try to build MegaGlest shared library
-- Found CURL: /usr/lib/x86_64-linux-gnu/libcurl.so
-- Force Curl dynamic: OFF
-- CURL RET = 0 libs: [/usr/lib/x86_64-linux-gnu/libcurl.a -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,--as-needed -lidn -llber -lldap -lrt -Wl,-Bsymbolic-functions -Wl,-z,relro -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lz -lgnutls -lgcrypt -lgcrypt -lrtmp]
-- USING CURL STATIC LIBS: /usr/lib/x86_64-linux-gnu/libcurl.a -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,--as-needed -lidn -llber -lldap -lrt -Wl,-Bsymbolic-functions -Wl,-z,relro -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lz -lgnutls -lgcrypt -lgcrypt -lrtmp
-- curl version=[7.27.0]
-- Looking for include file pthread.h
-- Looking for include file pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found.
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE 
-- Found SDL: /usr/lib/x86_64-linux-gnu/libSDLmain.a;/usr/lib/x86_64-linux-gnu/libSDL.so;-lpthread 
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Found X11: /usr/lib/x86_64-linux-gnu/libX11.so
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libGL.so 
-- Looking for static Xerces-C lib...
-- Looking for dynamic Xerces-C lib...
-- Found dynamic Xerces-C lib [/usr/lib/libxerces-c.so]
-- Found Xerces-C: /usr/lib/libxerces-c.so
--               : /usr/include
--        Version: 2.8.0
-- Found OpenAL: /usr/lib/x86_64-linux-gnu/libopenal.so 
-- LUA_INC: /usr/include/lua5.1
-- LUA_LIB: /usr/lib/x86_64-linux-gnu/liblua5.1.a
-- Looking for lua_close in /usr/lib/x86_64-linux-gnu/liblua5.1.a
-- Looking for lua_close in /usr/lib/x86_64-linux-gnu/liblua5.1.a - not found
-- Found Lua library: /usr/lib/x86_64-linux-gnu/liblua5.1.a
-- Found Lua headers: /usr/include/lua5.1
-- Found JPEG: /usr/lib/x86_64-linux-gnu/libjpeg.a 
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.7")
-- Found PNG: /usr/lib/x86_64-linux-gnu/libpng.a (found version "1.2.49")
-- **NOTE: FontConfig support was detected and enabled.
-- Found Freetype: /usr/lib/x86_64-linux-gnu/libfreetype.so (found version "2.4.10")
-- Found FTGL libraries at /usr/lib/libftgl.a and includes at /usr/include
-- **NOTE: FTGL font support was detected and enabled.
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.26")
-- checking for module 'libvlc'
--   found libvlc, version 2.0.4
-- Found LibVLC include-dir path: /usr/include
-- Found LibVLC library path:/usr/lib/libvlc.so
-- Found LibVLCcore library path:/usr/lib/libvlccore.so
-- Found LibVLC version: 2.0.4 (searched for: 1.1.0)
-- **NOTE: LIBVLC found so videos are supported.
-- ** Searching for library: FriBiDi...
Could not find FriBiDi. Disabling FriBiDi support.
-- *** Using EMBEDDED miniupnpc since dev system does not have it... MINIUPNP_FOUND []
-- **No macros required for miniupnpc version
-- *** Using EMBEDDED libircclient since this system does not have it... IRCCLIENT_FOUND []
-- Performing Test HAS_LIBIRCCLIENT_1_6
-- Performing Test HAS_LIBIRCCLIENT_1_6 - Failed
-- Building shared game library as a STATIC library and saving to []
-- EXTERNAL_LIBS = [-Bstatic /usr/lib/x86_64-linux-gnu/libcurl.a -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,--as-needed -lidn -llber -lldap -lrt -Wl,-Bsymbolic-functions -Wl,-z,relro -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lz -lgnutls -lgcrypt -lgcrypt -lrtmp;/usr/lib/x86_64-linux-gnu/libSDLmain.a;/usr/lib/x86_64-linux-gnu/libSDL.so;-lpthread;/usr/lib/x86_64-linux-gnu/libGLU.so;/usr/lib/x86_64-linux-gnu/libGL.so;/usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so;/usr/lib/libxerces-c.so;/usr/lib/x86_64-linux-gnu/libopenal.so;/usr/lib/x86_64-linux-gnu/liblua5.1.a;dl;/usr/lib/x86_64-linux-gnu/libjpeg.a;/usr/lib/x86_64-linux-gnu/libpng.a;/usr/lib/x86_64-linux-gnu/libfontconfig.so;/usr/lib/libftgl.a;/usr/lib/x86_64-linux-gnu/libfreetype.so;/usr/lib/x86_64-linux-gnu/libGLEW.so;/usr/lib/libvlccore.so;/usr/lib/libvlc.so]
-- Will try to build MegaGlest game
-- OGG/Vorbis includes: /usr/include
-- OGG library        : /usr/lib/x86_64-linux-gnu/libogg.so
-- Vorbis library     : /usr/lib/x86_64-linux-gnu/libvorbis.so
-- Vorbis file library: /usr/lib/x86_64-linux-gnu/libvorbisfile.so
-- LUA_INC: /usr/include/lua5.1
-- LUA_LIB: /usr/lib/x86_64-linux-gnu/liblua5.1.a
-- Found Lua library: /usr/lib/x86_64-linux-gnu/liblua5.1.a
-- Found Lua headers: /usr/include/lua5.1
-- Force Curl dynamic: OFF
-- CURL RET = 0 libs: [/usr/lib/x86_64-linux-gnu/libcurl.a -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,--as-needed -lidn -llber -lldap -lrt -Wl,-Bsymbolic-functions -Wl,-z,relro -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lz -lgnutls -lgcrypt -lgcrypt -lrtmp]
-- USING CURL STATIC LIBS: /usr/lib/x86_64-linux-gnu/libcurl.a -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,--as-needed -lidn -llber -lldap -lrt -Wl,-Bsymbolic-functions -Wl,-z,relro -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lz -lgnutls -lgcrypt -lgcrypt -lrtmp
-- Found LibVLC include-dir path: /usr/include
-- Found LibVLC library path:/usr/lib/libvlc.so
-- Found LibVLCcore library path:/usr/lib/libvlccore.so
-- Found LibVLC version: 2.0.4 (searched for: 0.0)
-- **NOTE: LIBVLC found so intro videos are supported.
***-- Found help2man: /usr/bin/help2man about to build manpage in [/home/tomreyn/SCM/megaglest-trunk/mk/linux/megaglest.6]
-- Will try to build MegaGlest map editor
-- DEBUG FreeBSD: /usr/bin/wx-config
-- run the wx-config program to get cxxflags:
-- /usr/bin/wx-config  --cxxflags
-- Found wxWidgets: TRUE 
***-- Found help2man: /usr/bin/help2man about to build manpage in [/home/tomreyn/SCM/megaglest-trunk/mk/linux/megaglest_editor.6]
-- Will try to build MegaGlest model viewer
-- DEBUG FreeBSD: /usr/bin/wx-config
-- run the wx-config program to get cxxflags:
-- /usr/bin/wx-config  --cxxflags
***-- Found help2man: /usr/bin/help2man about to build manpage in [/home/tomreyn/SCM/megaglest-trunk/mk/linux/megaglest_g3dviewer.6]
-- Will try to build MegaGlest model import/export tools
-- Found LibXml2: /usr/lib/x86_64-linux-gnu/libxml2.so (found version "2.8.0")
-- **Found game data.
-- =====> Found Define: STREFLOP_SSE
-- =====> Found Define: HAS_GCC_BACKTRACE
-- =====> Found Define: CURL_STATICLIB
-- =====> DirDefs: STREFLOP_SSEHAS_GCC_BACKTRACECURL_STATICLIB
-- Configuring done
-- Generating done
-- Build files have been written to: /home/tomreyn/SCM/megaglest-trunk/build
[  0%] Built target g2xml
[  0%] [  1%] Generating mg.tmp
Built target xml2g
[ 26%] Built target streflop
[ 26%] Built target run
[ 26%] [ 26%] [ 27%] Building CXX object source/shared_lib/CMakeFiles/libmegaglest.dir/sources/platform/posix/miniftpserver.cpp.o
Building CXX object source/shared_lib/CMakeFiles/libmegaglest.dir/sources/platform/posix/socket.cpp.o
Building CXX object source/shared_lib/CMakeFiles/libmegaglest.dir/sources/platform/unix/gl_wrap.cpp.o
/home/tomreyn/SCM/megaglest-trunk/source/shared_lib/sources/platform/posix/socket.cpp: In static member function 'static int Shared::Platform::UPNP_Tools::upnp_init(void*)':
/home/tomreyn/SCM/megaglest-trunk/source/shared_lib/sources/platform/posix/socket.cpp:2482:117: error: too many arguments to function 'void* miniwget_getaddr(const char*, int*, char*, int)'
In file included from /home/tomreyn/SCM/megaglest-trunk/source/shared_lib/sources/platform/posix/socket.cpp:56:0:
/home/tomreyn/SCM/megaglest-trunk/source/shared_lib/include/platform/miniupnpc/miniwget.h:21:16: note: declared here
/home/tomreyn/SCM/megaglest-trunk/source/shared_lib/sources/platform/posix/socket.cpp:2493:47: error: too many arguments to function 'void GetUPNPUrls(UPNPUrls*, IGDdatas*, const char*)'
In file included from /home/tomreyn/SCM/megaglest-trunk/source/shared_lib/sources/platform/posix/socket.cpp:57:0:
/home/tomreyn/SCM/megaglest-trunk/source/shared_lib/include/platform/miniupnpc/miniupnpc.h:112:14: note: declared here
make[2]: *** [source/shared_lib/CMakeFiles/libmegaglest.dir/sources/platform/posix/socket.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [source/shared_lib/CMakeFiles/libmegaglest.dir/all] Error 2
make: *** [all] Error 2
ERROR: MAKE failed.

tomreyn@atibox:~/SCM/megaglest-trunk$
(Blank lines added to improve readability).

Note also that miniupnpc and libircclient are not detected even though they are installed:
Code: [Select]
tomreyn@atibox:~/SCM/megaglest-trunk$ dpkg -l libminiupnpc\*dev libircclient\*dev | grep ^ii
ii  libircclient-dev                          1.3+dfsg1-3                               amd64        C library to create IRC clients
ii  libminiupnpc-dev                          1.6-3ubuntu2                              amd64        UPnP IGD client lightweight library development files
tomreyn@atibox:~/SCM/megaglest-trunk$

130
On a headless game server, where the controlling client has some latency to the game server, you may run into a situation where the controlling client makes a change to the game setup, such as switching a "CPU" (normal) to "CPU ultra", and immediately after starts the game. If this is the case, all connected clients will receive this error message (just the last part displays on screen) as soon as the game starts:
Code: [Select]
*ERROR* In [network_interface.cpp::DisplayErrorMessage Line: 99] sErr [client_interface.cpp::waitUntilReady Unexpected network message: 5]
It would seem this is because the last second change to the game setup does not propagate in time from the controlling client to the server or to the other client, triggering this error.

For me, it's much easier to reproduce this on headless server summoner than on engineer since latency from my controlling client is way higher to summoner.
It's apparently a headless only problem, or we just weren't able to reproduce it when I was hosting on my local computer.

All tests were run with me as a controlling client and Derek as the second network player.

131
Jammy, Virgo and I (all players from Europe) were playing a game on summoner, the thai headless server. We were playing on the modified Conflict map for 6 players (still sized 64x64). Two of use were playing Romans, Virgo was playing Persian, the opponents were 2 CPUs (I forgot at which difficulty). This error occurred exactly when we started our first common counter attack. We were just about to cross the river.

My client ran into a connection timeout, which resulted in a human friendly error message discplaying on my clients' screen. I assume it was the same for Jammy and Virgo.

This server has 836 MB RAM available for MG (1 GB total). It's a KVM instance running Ubuntu 12.04 with its dedicated 3.2.0 kernel on two (virtual) CPU cores.

It should be noted that this server operates under severe restrictions regarding international traffic (traffic shaping/limiting is applied on its upstream router). This may be what triggered the error, it may also be that it caused the connectivity to fail temporarily (I am now running a traffic analysis tool and it shows no indication of ICMP ping packet loss nor unstable latencies on the route to play.mg (jitter is 0.9 ms, average latency is 218.3 ms). Still, I would expect the server process not to segfault as a result.

Terminal output:
Code: [Select]
In [/home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 4934] Error detected: signal 11:
Error saved to logfile [/home/megaglest/.megaglest/error.log]
[2012-12-08 23:49:02] *ERROR* In [/home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp::handleRuntimeError Line: 390] [In [/home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 4934] Error detected: signal 11:
] gameInitialized = 1, program = 0x27c6df0
[2012-12-08 23:49:03] *ERROR* In [/home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp::handleRuntimeError Line: 409] [In [/home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 4934] Error detected: signal 11:

Stack Trace:
./megaglest:Glest::Game::ExceptionHandler::handleRuntimeError(char const*, bool)address [0x771217] line: 0
./megaglest:Glest::Game::handleSIGSEGV(int)address [0x743aff] line: 4939
/lib/x86_64-linux-gnu/libc.so.6:()address [0x7f91524854a0] line: 0
./megaglest:Glest::Game::ServerInterface::update()address [0x91659b] line: 1381
./megaglest:Glest::Game::Program::loopWorker()address [0x77674a] line: 449
./megaglest:Glest::Game::glestMain(int, char**)address [0x768ff6] line: 4793
./megaglest:Glest::Game::glestMainWrapper(int, char**)address [0x76c703] line: 4973
/lib/x86_64-linux-gnu/libc.so.6:__libc_start_main()address [0x7f915247076d] line: 0
./megaglest() [0x5db3e9]address [0x5db3e9]
]
Message:
In [/home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 4934] Error detected: signal 11:

Stack Trace:
./megaglest:Glest::Game::ExceptionHandler::handleRuntimeError(char const*, bool)address [0x771217] line: 0
./megaglest:Glest::Game::handleSIGSEGV(int)address [0x743aff] line: 4939
/lib/x86_64-linux-gnu/libc.so.6:()address [0x7f91524854a0] line: 0
./megaglest:Glest::Game::ServerInterface::update()address [0x91659b] line: 1381
./megaglest:Glest::Game::Program::loopWorker()address [0x77674a] line: 449
./megaglest:Glest::Game::glestMain(int, char**)address [0x768ff6] line: 4793
./megaglest:Glest::Game::glestMainWrapper(int, char**)address [0x76c703] line: 4973
/lib/x86_64-linux-gnu/libc.so.6:__libc_start_main()address [0x7f915247076d] line: 0
./megaglest() [0x5db3e9]address [0x5db3e9]

Aborted (core dumped)

I'm not sure why it would print two stack traces there (is this something which could/should be improved upon, too)?

error.log:
Code: [Select]
[2012-12-08 23:49:03] Runtime Error information:
======================================================
In [/home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 4934] Error detected: signal 11:

Stack Trace:
./megaglest:Glest::Game::ExceptionHandler::handleRuntimeError(char const*, bool)address [0x771217] line: 0
./megaglest:Glest::Game::handleSIGSEGV(int)address [0x743aff] line: 4939
/lib/x86_64-linux-gnu/libc.so.6:()address [0x7f91524854a0] line: 0
./megaglest:Glest::Game::ServerInterface::update()address [0x91659b] line: 1381
./megaglest:Glest::Game::Program::loopWorker()address [0x77674a] line: 449
./megaglest:Glest::Game::glestMain(int, char**)address [0x768ff6] line: 4793
./megaglest:Glest::Game::glestMainWrapper(int, char**)address [0x76c703] line: 4973
/lib/x86_64-linux-gnu/libc.so.6:__libc_start_main()address [0x7f915247076d] line: 0
./megaglest() [0x5db3e9]address [0x5db3e9]

gdb backtrace:
Code: [Select]
$ gdb -q -n -ex bt -batch ./megaglest ./core
[New LWP 23775]

warning: Can't read pathname for load map: Input/output error.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `./megaglest --ini-path=./ --data-path=./ --headless-server-mode=exit'.
Program terminated with signal 6, Aborted.
#0  0x00007f9152485425 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#0  0x00007f9152485425 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f9152488b8b in abort () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x00000000007713d7 in Glest::Game::ExceptionHandler::handleRuntimeError(char const*, bool) ()
#3  0x0000000000743aff in Glest::Game::handleSIGSEGV (sig=<optimized out>) at /home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp:4938
#4  <signal handler called>
#5  0x000000000091659b in setMasterserver_admin (value=<optimized out>, this=<optimized out>) at /home/softcoder/Code/megaglest/trunk/source/glest_game/game/game_settings.h:453
#6  Glest::Game::ServerInterface::update (this=0x2862940) at /home/softcoder/Code/megaglest/trunk/source/glest_game/network/server_interface.cpp:1381
#7  0x000000000077674a in Glest::Game::Program::loopWorker (this=0x27c6df0) at /home/softcoder/Code/megaglest/trunk/source/glest_game/main/program.cpp:448
#8  0x0000000000768ff6 in Glest::Game::glestMain (argc=1, argv=0x0) at /home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp:4793
#9  0x000000000076c703 in Glest::Game::glestMainWrapper (argc=4, argv=0x7fffaf574068) at /home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp:4971
#10 0x00007f915247076d in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6
#11 0x00000000005db3e9 in _start ()
$

Thanks for investigating.

132
Feature requests / [done] Next/new hint button on loading screen
« on: 4 December 2012, 21:04:48 »
It would be nice if the game would allow you to shuffle through game hints on the "loading game" screen. This may only be possible after the local computer has finished loading all assets, but once that's done, the following seconds are the most boring ones in everyones' life (waiting for the server and other players computers to get ready). so it would be nice if you could do some more reading there while waiting for the game to start.

133
When a player connect to lobby (IRC) chat and later connects to a (or starts hosting a) gameserver then it happens in some cases that this players' MegaGlest will not emit the "connecting to: [servername]" or "tries to create a game" string, and the player seems to remain in the lobby when she really connected to the gamserver. This means that other players assume this person is present in chat and can read text written there while factually the player will miss all text written and will only get to see text written after she returns to the lobby (if so).

It is unclear why this happens sometimes and not other times - in most cases this is not a problem. It seems that this issue was introduced as a side effect of connection caching, it has never been observed before this change.

I have no personally been able to reproduce it, so we may need more information from someone who can. My understanding is, though, this happens quite sporadically and it's not something you can easily reproduce just because it happened to you once.

134
I was made aware of this today (and have since reproduced it):
When you join the Internet lobby and chat a little on IRC, then head to the options menu and change your player name, then return to the lobby chat and chat there again, your updated player name will display correctly on chat. But only for you. Everyone else sees your old player name, and your old player name also shows up on the list of connected players.

This is probably caused by IRC connection caching. I guess this needs to be reset (i.e. you need to run /nick with a newly generated IRC nickname based on your new player name) when you enter the lobby after a player name change (or rather editing your player name in options should trigger an IRC disconnect, this may be easier to program).

135
While unit/structure/resource selection owrked fine for me on Ubuntu 11.04, 11.10 and 12.04, it's been a mixed experience for me since I upgraded to Ubuntu 12.10 and thus Mesa 9.0 on my atibox (see basic tech specifications below).

Code: [Select]
$ glxinfo | egrep '^(OpenGL|GLX|client|server)'
server glx vendor string: SGI
server glx version string: 1.4
server glx extensions:
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
client glx extensions:
GLX version: 1.4
GLX extensions:
OpenGL vendor string: X.Org R300 Project
OpenGL renderer string: Gallium 0.4 on ATI RV560
OpenGL version string: 2.1 Mesa 9.0
OpenGL shading language version string: 1.20
OpenGL extensions:

MegaGlest supports three variants for unit selection: glSelectBuffer (the default mode), color picking (EnableColorPicking=true in glestuser.ini) and frustrum picking (EnableFrustumPicking=true in glestuser.ini). Additionally there is a so-called ATIHacks setting, but this just distorts some textures for me, including the logos on the bottom of the main menu, so I disabled it quickly.

While glSelectBuffer worked fine for me on and before Ubuntu 12.04, it fails on 12.10. I've summed up my experience with 12.10 on IRC and would like to present it here so we can check whether anyone else has made similar or related experiences - I would appreciate your feedback on this very much...

Quote from: IRC
<tomreyn> With glSelectBuffer when drawing drawboxes some units outside the drawbox get selected, too, and some other units inside it don't get selected.
<tomreyn> Also with glSelectBuffer, if you double click a unit to select all the nearby units of the same type, it will actually select a couple nearby units of different types
<tomreyn> With color picking, it all works fine but rendering comes to a standstill for  a second or two when you select several units with a drawbox.
<tomreyn> Additionally when you start drawing the drawbox or when you double-click units the entire screen dims for a single frame. It doesn't turn black (or maybe it does and it's just too short to notice) but colors just seem to become darker for a single frame
<tomreyn> Finally, with Color Pciking you cannot select your own units or attack enemy units if they are partially covered by trees or other objects.
<tomreyn> i.e. you need to move the camera so the trees are no longer in front of them to be able to select them
<tomreyn> With frustrum picking, everything works regarding selection but pointing a single units or a group of units to a target often fails in that they will actually go elsewhere.
<tomreyn> For example, when you have a tech worker and you point it to the gold to harvest, it may instead walk to the nearby castle because this was selected as atarget when you right clicked even though you clearly clicked on the gold.
<tomreyn> the selection mask of buildings seems ot be too large or misplaced there.
<tomreyn> but it think the same way could also happen the other way around when you actually want to go to the castle but instead end up going to the gold or cut some wood or similar.
<tomreyn> This behaviour where the game counts your clicks towards a different object also affect left clicking (when selecting a single unit, a structure or resource). Ypoou may end up activating something other than what you actually clicked on.

136
I'm just hosting a headless server on this system for Internet players since there are currently few servers available.
Nevertheless, I would like to be able to start another custom game at the same time, to test a few things. Ideally I could do so without having to change the game configuration.

However, if I start MegaGlest a second time and turn to the custom game menu, MegaGlest crashes immediately without any warning on the GUI with this:
Code: [Select]
megaglest v3.7.0
Compiled using: GNUC: 40702 [64bit] on: Nov 14 2012 21:22:16 platform: Linux-X64 endianness: little
SVN: [Rev: 3911] - using STREFLOP [SSE] - [no-denormals]
[2012-11-14 21:43:07] *ERROR* In [menu_state_custom_game.cpp::MenuStateCustomGame 139]
Network init error:
Error binding socket sock = 16, address [127.0.0.1] port = 61355 err = -1, error = (Error: 98 - [Address already in use])

Stack Trace:
./megaglest:Shared::Platform::megaglest_runtime_error::megaglest_runtime_error(std::string const&, bool)address [0x9b5502] line: 237
./megaglest:Shared::Platform::ServerSocket::bind(int)address [0x9d1ded] line: 2220
./megaglest:Shared::Platform::ServerSocket::listen(int)address [0x9d2007] line: 2247
./megaglest:Glest::Game::ServerInterface::ServerInterface(bool)address [0x7f1865] line: 88
./megaglest:Glest::Game::NetworkManager::init(Glest::Game::NetworkRole, bool)address [0x7d28d9] line: 53
./megaglest:Glest::Game::MenuStateCustomGame::MenuStateCustomGame(Glest::Game::Program*, Glest::Game::MainMenu*, bool, Glest::Game::ParentMenuState, bool, Glest::Game::GameSettings*, bool, std::string)address [0x7514ee] line: 147
./megaglest:Glest::Game::MenuStateNewGame::mouseClick(int, int, Shared::Platform::MouseButton)address [0x713fe9] line: 95
./megaglest:Glest::Game::MainWindow::eventMouseDown(int, int, Shared::Platform::MouseButton)address [0x64d23e] line: 624
./megaglest:Shared::Platform::Window::handleMouseDown(SDL_Event)address [0x9b06f1] line: 676
./megaglest:Shared::Platform::Window::handleEvent()address [0x9b18b5] line: 161
./megaglest:Glest::Game::glestMain(int, char**)address [0x6741f4] line: 4682
./megaglest:Glest::Game::glestMainWrapper(int, char**)address [0x67909b] line: 4949
/lib/x86_64-linux-gnu/libc.so.6:__libc_start_main()address [0x7fd8dc01676d] line: 0
./megaglest() [0x507289]address [0x507289]

megaglest: /home/tomreyn/SCM/megaglest-trunk/source/glest_game/network/network_manager.cpp:98: Glest::Game::ServerInterface* Glest::Game::NetworkManager::getServerInterface(bool): Assertion `gameNetworkInterface!=__null' failed.

This is not very user friendly, it would be nice to handle this situation by disabling network slots and displaying a message that network slots are unavailable because the gameserver port is in use. If this is hard to program, then maybe there could be a user friendly GUI message explaining why it's exiting there before the window closes.

137
MegaGlest 3.7.0, when run on a computer which is set to use Dutch, Greek or Italian as a default language, and MegaGlest 3.7.1 when run on a computer which is set to use Dutch as a default language, may fail to start with an error message looking similar to this:



You can work around this issue in number of ways. Chose only one of these approaches.

(1) Replace greek and italian translation files in your MegaGlest installation directory
Right-click on these files and select Save as... and store those on your Desktop or in any location where you can easily find them from a file browser next:
These files need to replace the existing copies in your MegaGlest installation directory, in the data/lang subdirectory.
On Linux, the default location is ~/megaglest/data/lang, that's in the megaglest/data/lang/ subdirectory below your personal (home) directory.
On Windows, the default location is %ProgramFiles%\megaglest\data\lang. You can paste this location into the Windows Explorer (file browser) location bar as is and it will go to the proper folder.

(2) Edit the main translation file.
FIXME: Explain what needs to be edited to fix it, refer to r3908 diff for details.

(3) Use English or a different translation for now.
FIXME: Explain command line option to pick locale. Explain how to set the locale in glestuser.ini



Updates to this post:
- 2012-11-14: added download URLs for greek.lng + italian.lng (Titi)
- 2012-11-14: fix typo in italian.lng download URL; provide simplistic instructions on where/how to place updated main language files (Tom)
- 2012-11-15: add dutch to the list of problematic translations (Tom)
- 2012-12-03: Update this (first) post to clarify that Dutch on 3.7.1 is also affected

138
I've downloaded and unpacked megaglest-data-3.7.0.tar.xz. This archive contains a CMakeLists.txt file. I assume this package is meant to be used with pre-built binaries, in which case this file is superfluous and should be removed in future releases.

139
On Windows, when editing your player name in options, or setting a password for Transifex, and pressing ^ (a "dead key" with the german keyboard layout), you would expect nothing at all to get printed, but this key input modifier applying as soon as you press the next character so that you can use it to compose a character such as ô or ĉ. What you get instead (at least in my Windows 7 VirtualBox with german locale, is a backtick immediately when you press the ^ button.

This doesn't happen on Linux, there the ^ key behaves as a dead key as expected.

140
While there will be another beta before the 3.7.0 release, we need your help translating the game right now - in an all new process.

We've changed the translation process to make it easier for both you and us - you can now translate by just posting your translations to a website

If you're not already subscribed to our translations mailing list, please subscribe now.

All other info is available on yesterdays' post to this list.

Thank you!

141
Today I was hosting on my own computer using a 3.7.0 beta1 headless server, installed using the Linux 64 bit installer. To not reuse the same binary + data, I used the build in my SVN working directory, a full rebuild (rm -rf build/) of r3667, for a client, and connected with --connect=127.0.0.1. The other player was ArielSantos from Brazil. We were pllaying on a 128x128 6 player map, against 3 CPUs.

Code: [Select]
megaglest v3.7.0-beta1
Compiled using: GNUC: 40603 [64bit] on: Oct  7 2012 19:47:53
SVN: [Rev: 3667] - using STREFLOP [SSE] - [no-denormals]
Connecting to host [127.0.0.1] using port: 61357
[2012-10-08 22:44:51] *ERROR* In [/home/tomreyn/SCM/megaglest-trunk/source/glest_game/game/commander.cpp::buildCommand Line: 1086]
Can not find command type for network command = [networkCommandType = 0
unitId = 500104
commandTypeId = 2
positionX = 225
positionY = 115
unitTypeId = 23
targetId = 0
wantQueue= 0
fromFactionIndex = 0
unitFactionUnitCount = 57
unitFactionIndex = 5, commandStateType = 0, commandStateValue = -1, unitCommandGroupId = -1]
Commands:  id = 0 id = 1
for unit = 500104
[cow]
[

HP: 500/500
Armor: 0 (organic)
Sight: 10
Produce: 12 food
move]
actual local factionIndex = 5.
Unit Type Info:
[Unit Name: [cow] id = 7 maxHp = 500 hpRegeneration = 0 maxEp = 0 epRegeneration = 0 maxUnitCount = 0 fields index = 0 value = 1 fields index = 1 value = 0 properties index = 0 value = 0 properties index = 1 value = 0 armor = 0 armorType Name: [organic id = 0 light = 0 lightColor = x [0] y [0] z [0] multiSelect = 1 sight = 10 size = 1 height = 1 rotatedBuildPos = 0.00 rotationAllowed = 1 skillTypes: [3] i = 0 Stop i = 1 Move i = 2 Die commandTypes: [2] i = 0 Stop i = 1 Move storedResources: [0] levels: [0] meetingPoint = 0 countInVictoryConditions = 0]
Network unit type:
[turtle_formation]
Game out of synch.
[2012-10-08 22:44:52] *ERROR* In [game.cpp::update Line: 1758] Error [Error [#3]: Game is out of sync, please check log files for details.]

And another game: same setup, but an 8 player map with with Nig from Germany and 6 CPU players:
Code: [Select]
megaglest v3.7.0-beta1
Compiled using: GNUC: 40603 [64bit] on: Oct  7 2012 19:47:53
SVN: [Rev: 3667] - using STREFLOP [SSE] - [no-denormals]
Connecting to host [127.0.0.1] using port: 61357
[2012-10-09 01:27:33] *ERROR* In [/home/tomreyn/SCM/megaglest-trunk/source/glest_game/game/commander.cpp::buildCommand Line: 1086]
Can not find command type for network command = [networkCommandType = 0
unitId = 100135
commandTypeId = 2
positionX = 178
positionY = 146
unitTypeId = 15
targetId = 0
wantQueue= 0
fromFactionIndex = 0
unitFactionUnitCount = 136
unitFactionIndex = 1, commandStateType = 0, commandStateValue = -1, unitCommandGroupId = -1]
Commands:  id = 0
for unit = 100135
[thortotem]
[

HP: 301/3000
Armor: 20 (wood)
Sight: 16]
actual local factionIndex = 1.
Unit Type Info:
[Unit Name: [thortotem] id = 20 maxHp = 3000 hpRegeneration = 0 maxEp = 0 epRegeneration = 0 maxUnitCount = 0 fields index = 0 value = 1 fields index = 1 value = 0 properties index = 0 value = 0 properties index = 1 value = 0 armor = 20 armorType Name: [wood id = 2 light = 0 lightColor = x [0] y [0] z [0] multiSelect = 0 sight = 16 size = 2 height = 6 rotatedBuildPos = 0.00 rotationAllowed = 1 skillTypes: [4] i = 0 Stop i = 1 Morph i = 2 Be built i = 3 Die commandTypes: [1] i = 0 Morph storedResources: [0] levels: [0] meetingPoint = 0 countInVictoryConditions = 0]
Network unit type:
[spearman]
Game out of synch.
[2012-10-09 01:27:34] *ERROR* In [game.cpp::update Line: 1758] Error [Error [#3]: Game is out of sync, please check log files for details.]

I assume this is triggered by clicking around on the mini map, since I think I've done this both times when we ran into OoS.

Edit:
I forgot to provide some possibly important details. During both games I ran into an out of synch, but I'm not sure the other end actually had one, too. In fact, for the second game with Nig (he's on Windows 7) he ran into this error...
Code: [Select]
[2012-10-09 01:26:48] Runtime Error information:
======================================================
Unknown error!
Stack Trace:
00000000 00000000 00000000 67bc3ba2 ZwGetContextThread!ntdll (null)(0) +18
00000000 00000000 00000000 67bc3ba2 ZwGetContextThread!ntdll (null)(0) +18
... and I was just told that he had quit, and less than a minute later I got my OoS. So this OoS may actually be triggered by other errors. Nig also told me that he occasionally ran into the same "unknown error"'s in 3.6.0.3, so this may not actually be an issue in 3.7.0 beta1 (nor in MegaGlest at all). Still, the following OoS should not occur.

142
MegaGlest / Further improving in-game chat
« on: 8 October 2012, 10:32:41 »
In 3.6.0.3, in-game chat was working this way:
You press enter to start chat mode, then type a message, then press enter again to send and, at the same time, end chat mode.
This can be annoying when you need to type more than just a single line of text. On the other hand, it is good in that you are immediately able to use keyboard shortcut commands as soon as you have finished chatting.

In 3.7.0 beta1, in-game chat is working this way:
You press enter to start chat mode, then type a message, then press enter again to send. Until you press escape, or you press enter again on an empty line of text, you remain in chat mode
This can be annoying when you forget to keep chat active and forget to disable it and start using keyboard shortcuts which are then not carried out but written into chat. On the other hand, it is good in that you are able to quickly type multiple lines of text without having to press enter again every time, and without having to reassure yourself whether you are currently in chat or shortcut key mode.

Having used both versions for a while, and mostly the last one lately, it turns out that neither variant is perfect. I'd like your ideas and opinions on how this interaction of chat and shortcut keys can be best solved. It do think it is crucial that you have played at least two network games on 3.7.0 beta1 and used chat there before you voice your opinion, since only then will you have started to become used to the new way of chatting, and will not just blame the new way for being different than what you're used to, but are able to discuss its specific nature.

Here's a compromise style approach I can think of to have the best from the two approaches discussed above:
  • Make chat expire after 10 seconds (could be configurable, with 10 seconds being the default value). During the past 3 seconds, indicate the upcoming expiry by repeatedly switching the chat prompt color (just like it is done for controlling user indicator  on a headless server). Cancel expiry (and restart the countdown) if the user inputs more text.
There can be better (and possibly easier to implement) approaches, so I'm looking forward to your opinions.

143
When you play a game with CPU players, on the end of game stats screen it will say, in the player name row,
Code: [Select]
*AI* AI AI for every CPU player. It should probably say CPU there instead or whatever it used to say there on 3.6.0.3.

144
Yesterday when testing with Titi, we had the following setup:

* Headless server (hosted by Titi on one computer behind his NAT), FTPServerPort set to 61358
* Admin client (run by Titi on another computer behind his NAT, connected to the headless server which is supposedly situated in the same LAN), FTPServerPort set to 61398
* Standard game client (run by me on another computer on another network behind NAT, connected to Titi's headless server by means of his symmetric port forwarding), FTPServerPort set to 61358

When we were both connected to the server and Titi was controlling, he switches to a map I did not have, so that I got a download prompt. I tried to download but the download failed. In the temrinal window I started MegaGlest in, I could see that the game was printing that it was trying to access
Code: [Select]
ftp://TITIS_SERVER_IP:61398/PATH/TO/FILEto download the map. This could hardly work, since (as I verified by netcat) the FTP server was listening on port 61358 on this IP address, not 61398. Apparently this port number was propagated from the controlling client (Titi) to the headless server, causing it to send out an incorrect FTP port for me to download from.

145
I just compiled on two pristine Ubuntu 10.04 LTS systems, setup exactly the same way, just that one is x86_64 and the other is i686.

The luajit* package installation, as triggered by setupBuildDeps.sh, looked the same on both systems/platforms, too:

i686:
Code: [Select]
Setting up liblua5.1-0-dev (5.1.4-5) ...
Setting up libluajit-5.1-common (2.0.0~beta2+dfsg2-2) ...
Setting up libluajit-5.1-2 (2.0.0~beta2+dfsg2-2) ...
Setting up libluajit-5.1-dev (2.0.0~beta2+dfsg2-2) ...

amd64:
Code: [Select]
Setting up liblua5.1-0-dev (5.1.4-5) ...
Setting up libluajit-5.1-common (2.0.0~beta2+dfsg2-2) ...
Setting up libluajit-5.1-2 (2.0.0~beta2+dfsg2-2) ...
Setting up libluajit-5.1-dev (2.0.0~beta2+dfsg2-2) ...

But while the i686 build went fine...
http://pastebin.com/raw.php?i=yRqJd58T

...the x86_64 build failed:
http://pastebin.com/raw.php?i=fhFF2Ws9

Please also inspect the warning messages on both builds. Feel free to access these systems to inspect the situation yourself, they are behemoth and golem (check your e-mail inbox first).

146
When there are two players on a headless server, and the controlling player sets an 8 player map, then sets control of players 5 and 7 (slots 6 and 8) to CPU, then switches to a 4 player map, this results in this view on the non-controlling clients' screen (and there only, it's fine on the controlling client):



Multipliers for slots which are not available should not be displayed.

147
I was just hosting a headless server with Titi, TitiSon, Jammy, and myself connecting form a second instance of MG running on the same computer (same configuration / data / log directories, too).
When the (rather massive) game was over and everyone except my own client had disconnected, I kept it running for some minutes. A few minutes later, I ran into "game is out of synch" (OoS)  and an infinite loop, where this message kept repeating on screen, and the game kept being saved to disk every ~ 1 second.

Titi and I were wondering whether this infinite loop may actually have started earlier and be the root cause of this OoS (due to game saving delaying the game client). When trying to reproduce it, no write access to the savegame file took place, though. So we assume the savegame is only created in the case of an error.

So there are really two issues here: Clearly this OoS on a loopback interface link should not have happened in the first place. And then there shouldn't be any loop when you run into an out of synch situation, i.e. record / state the error situation once in a savegame and on screen, but do not repeat it, instead, pause the game and quit it as soon as all on-screen messages have been confirmed.

Some statistics about the OoS:
* none of my 4 CPU cores was at 100% load
* both file and verbose logging were disabled
* I had no special features activated (or can't think of any)
* my physical RAM was never in use by more than 50%
* there was little disk I/O

The server had been started using ./start_megaglest --headless-server-mode=vps,exit, the client using ./megaglest --connecthost=127.0.0.1. I noticed (using iotop) that MegaGlest would cause a 9 MB/sec write troughput on disk after the OoS had occurred, that's how I learnt about it writing the savegame: megaglest-saved.xml and megaglest-saved.xml.jpg are written about every one second when the game is in this state.

The savegame was 8.4 MB. that seems ather large, maybe it would be an option to look through it if this happens again, to tell whether incorrect data is stored.
When on the end of game stats screen, 1.7 GB RAM (of 8 GB physical) were in use and there were 15% of 400% CPU load sustained.
Back to the main menu, it was 1.5 GB RAM and 60% (of 400%) CPU load.
On the "video info" screen, CPU load increased to 90% (of 400%).

148
Currently you need to use this to connect to a headless server at 123.123.123.123 which is not running on the standard port but on port 12345:
Code: [Select]
megaglest --connecthost=123.123.123.123 --use-ports=12345,61357
This works, but is a bit of a crude syntax. It would be nice if IP address and port # could be sepcified in a single parameter, separated by a colon, like this:
Code: [Select]
megaglest --connect 123.123.123.123:12345(syntax partially stolen from OpenSSL)

Edit (tomreyn):
With no colon and port # provided, assume default port (61357).

149
It may well be irrelevant by now, but in case it's not... I crashed on 3.6.0.3 on my ATI box (see my signature for details) yesterday in a way I haven't had it before: I was switching windows (Alt-tab) and put the MegaGlest window into the background, and shortly after I did so, I got this:

MegaGlest output:
Code: [Select]
megaglest v3.6.0.3
Compiled using: GNUC: 40401 [64bit] on: Jan 24 2012 13:33:42
SVN: [Rev: 3080] - using STREFLOP
In [/home/softcoder/Code/megaglest/branches/release-3.6.0.3/source/glest_game/main/main.cpp::handleSIGSEGV Line: 652] Error detected: signal 11:
Error saved to logfile [/home/user1/.megaglest/error.log]
[xcb] Unknown request in queue while dequeuing
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting, sorry about that.
megaglest: ../../src/xcb_io.c:178: dequeue_pending_request: Zusicherung »!xcb_xlib_unknown_req_in_deq« nicht erfüllt.
[2012-09-22 04:43:26] *ERROR* In [/home/softcoder/Code/megaglest/branches/release-3.6.0.3/source/glest_game/main/main.cpp::handleRuntimeError Line: 416] [In [/home/softcoder/Code/megaglest/branches/release-3.6.0.3/source/glest_game/main/main.cpp::handleSIGSEGV Line: 652] Error detected: signal 11:
] gameInitialized = 1, program = 0x2cb8d80
[2012-09-22 04:43:27] *ERROR* In [/home/softcoder/Code/megaglest/branches/release-3.6.0.3/source/glest_game/main/main.cpp::handleRuntimeError Line: 509] [In [/home/softcoder/Code/megaglest/branches/release-3.6.0.3/source/glest_game/main/main.cpp::handleSIGSEGV Line: 652] Error detected: signal 11:

Stack Trace:
./megaglest:Glest::Game::handleSIGSEGV(int) address [0x6d45c2] line: 657
/lib/x86_64-linux-gnu/libc.so.6:() address [0x7f28f9222480] line: 0
./megaglest:Shared::PlatformCommon::SimpleTaskThread::~SimpleTaskThread() address [0x999d75] line: 310
./megaglest:Shared::PlatformCommon::SimpleTaskThread::execute() address [0x99f53b] line: 403
./megaglest:Shared::Platform::Thread::beginExecution(void*) address [0x9c3e9f] line: 81
/usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0:() address [0x7f28fbfd3fd5] line: 0
/usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0:() address [0x7f28fc017999] line: 0
/lib/x86_64-linux-gnu/libpthread.so.0:() address [0x7f28fbdabe9a] line: 0
/lib/x86_64-linux-gnu/libc.so.6:clone() address [0x7f28f92de39d] line: 0
]
Aborted (core dumped)

GDB backtrace:
Code: [Select]
Core was generated by `./megaglest'.
Program terminated with signal 6, Aborted.
#0  0x00007f28f9222405 in __GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
64   ../nptl/sysdeps/unix/sysv/linux/raise.c: Datei oder Verzeichnis nicht gefunden.
#0  0x00007f28f9222405 in __GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1  0x00007f28f9225b6b in __GI_abort () at abort.c:91
#2  0x00007f28f921b0ce in __assert_fail_base (fmt=<optimized out>, assertion=0x7f28fb22fe45 "!xcb_xlib_unknown_req_in_deq", file=0x7f28fb22fe32 "../../src/xcb_io.c", line=<optimized out>, function=<optimized out>) at assert.c:94
#3  0x00007f28f921b172 in __GI___assert_fail (assertion=0x7f28fb22fe45 "!xcb_xlib_unknown_req_in_deq", file=0x7f28fb22fe32 "../../src/xcb_io.c", line=178, function=0x7f28fb22ff40 "dequeue_pending_request") at assert.c:103
#4  0x00007f28fb1bd069 in ?? () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#5  0x00007f28fb1be1dc in _XReply () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#6  0x00007f28fb91cb82 in DRI2SwapBuffers (dpy=0x2c6df60, drawable=94371859, target_msc=0, divisor=0, remainder=0, count=0x7f28e49dd278) at dri2.c:564
#7  0x00007f28fb91b9bb in dri2SwapBuffers (pdraw=0x2db0f60, target_msc=0, divisor=0, remainder=0) at dri2_glx.c:723
#8  0x00000000006f1a02 in Glest::Game::Program::loopWorker (this=0x2cb8d80) at /home/softcoder/Code/megaglest/branches/release-3.6.0.3/source/glest_game/main/program.cpp:360
#9  0x00000000006eeafd in Glest::Game::ExceptionHandler::handleRuntimeError(char const*) ()
#10 0x00000000006d45c2 in Glest::Game::handleSIGSEGV (sig=<optimized out>) at /home/softcoder/Code/megaglest/branches/release-3.6.0.3/source/glest_game/main/main.cpp:656
#11 <signal handler called>
#12 0x0000000000999d75 in Shared::PlatformCommon::SimpleTaskThread::~SimpleTaskThread (this=0x445ffd0, __in_chrg=<optimized out>) at /home/softcoder/Code/megaglest/branches/release-3.6.0.3/source/shared_lib/sources/platform/common/simple_threads.cpp:310
#13 0x000000000099f53b in Shared::PlatformCommon::SimpleTaskThread::execute (this=0x445ffd0) at /home/softcoder/Code/megaglest/branches/release-3.6.0.3/source/shared_lib/sources/platform/common/simple_threads.cpp:401
#14 0x00000000009c3e9f in Shared::Platform::Thread::beginExecution (data=0x43c4178) at /home/softcoder/Code/megaglest/branches/release-3.6.0.3/source/shared_lib/sources/platform/sdl/thread.cpp:79
#15 0x00007f28fbfd3fd5 in ?? () from /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0
#16 0x00007f28fc017999 in ?? () from /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0
#17 0x00007f28fbdabe9a in start_thread (arg=0x7f28e49e1700) at pthread_create.c:308
#18 0x00007f28f92de39d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#19 0x0000000000000000 in ?? ()

150
The following has happened on the newly setup 'Summoner' headless server, now running Ubuntu 12.04 x86_64 with (its own) kernel 3.2.0-30 on KVM with 1 GB dedicated RAM:

Code: [Select]
[2012-09-23 03:16:25] Runtime Error information:
======================================================
In [/home/softcoder/Code/megaglest/branches/release-3.6.0.3/source/glest_game/main/main.cpp::handleSIGSEGV Line: 652] Error detected: signal 11:

Stack Trace:
./megaglest:Glest::Game::handleSIGSEGV(int) address [0x6d45c2] line: 657
/lib/x86_64-linux-gnu/libc.so.6:() address [0x7f66a6c084c0] line: 0
./megaglest:Shared::PlatformCommon::SimpleTaskThread::~SimpleTaskThread() address [0x999d75] line: 310
./megaglest:Shared::PlatformCommon::SimpleTaskThread::execute() address [0x99f53b] line: 403
./megaglest:Shared::Platform::Thread::beginExecution(void*) address [0x9c3e9f] line: 81
/usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0:() address [0x7f66a99b7fd5] line: 0
/usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0:() address [0x7f66a99fb999] line: 0
/lib/x86_64-linux-gnu/libpthread.so.0:() address [0x7f66a978fe9a] line: 0
/lib/x86_64-linux-gnu/libc.so.6:clone() address [0x7f66a6cc44bd] line: 0

GDB backtrace:
Code: [Select]
Core was generated by `./megaglest --ini-path=./ --data-path=./ --headless-server-mode=exit'.
Program terminated with signal 11, Segmentation fault.
#0  0x00007f66a6c50882 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#0  0x00007f66a6c50882 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f66a6c515a9 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x000000000090f3ab in deallocate (this=<optimized out>, __p=<optimized out>) at /usr/include/c++/4.4/ext/new_allocator.h:95
#3  _M_deallocate (__n=<optimized out>, __p=<optimized out>, this=<optimized out>) at /usr/include/c++/4.4/bits/stl_vector.h:146
#4  ~_Vector_base (this=<optimized out>, __in_chrg=<optimized out>) at /usr/include/c++/4.4/bits/stl_vector.h:132
#5  ~vector (this=<optimized out>, __in_chrg=<optimized out>) at /usr/include/c++/4.4/bits/stl_vector.h:313
#6  ~FowAlphaCellsLookupItem (this=<optimized out>, __in_chrg=<optimized out>) at /home/softcoder/Code/megaglest/branches/release-3.6.0.3/source/glest_game/world/world.h:76
#7  ~pair (this=<optimized out>, __in_chrg=<optimized out>) at /usr/include/c++/4.4/bits/stl_pair.h:68
#8  destroy (__p=<optimized out>, this=<optimized out>) at /usr/include/c++/4.4/ext/new_allocator.h:115
#9  _M_destroy_node (__p=<optimized out>, this=<optimized out>) at /usr/include/c++/4.4/bits/stl_tree.h:383
#10 _M_erase (__x=0x1c05900, this=<optimized out>) at /usr/include/c++/4.4/bits/stl_tree.h:972
#11 ~_Rb_tree (this=<optimized out>, __in_chrg=<optimized out>) at /usr/include/c++/4.4/bits/stl_tree.h:614
#12 ~map (this=<optimized out>, __in_chrg=<optimized out>) at /usr/include/c++/4.4/bits/stl_map.h:87
#13 ~pair (this=<optimized out>, __in_chrg=<optimized out>) at /usr/include/c++/4.4/bits/stl_pair.h:68
#14 destroy (__p=<optimized out>, this=<optimized out>) at /usr/include/c++/4.4/ext/new_allocator.h:115
#15 _M_destroy_node (__p=<optimized out>, this=<optimized out>) at /usr/include/c++/4.4/bits/stl_tree.h:383
#16 std::_Rb_tree<Shared::Graphics::Vec2<int>, std::pair<Shared::Graphics::Vec2<int> const, std::map<int, Glest::Game::FowAlphaCellsLookupItem, std::less<int>, std::allocator<std::pair<int const, Glest::Game::FowAlphaCellsLookupItem> > > >, std::_Select1st<std::pair<Shared::Graphics::Vec2<int> const, std::map<int, Glest::Game::FowAlphaCellsLookupItem, std::less<int>, std::allocator<std::pair<int const, Glest::Game::FowAlphaCellsLookupItem> > > > >, std::less<Shared::Graphics::Vec2<int> >, std::allocator<std::pair<Shared::Graphics::Vec2<int> const, std::map<int, Glest::Game::FowAlphaCellsLookupItem, std::less<int>, std::allocator<std::pair<int const, Glest::Game::FowAlphaCellsLookupItem> > > > > >::_M_erase (this=0x1b54f00, __x=<optimized out>) at /usr/include/c++/4.4/bits/stl_tree.h:972
#17 0x0000000000900db7 in clear (this=<optimized out>) at /usr/include/c++/4.4/bits/stl_tree.h:726
#18 clear (this=<optimized out>) at /usr/include/c++/4.4/bits/stl_map.h:626
#19 Glest::Game::World::end (this=0x1b54e98) at /home/softcoder/Code/megaglest/branches/release-3.6.0.3/source/glest_game/world/world.cpp:172
#20 0x0000000000634a99 in Glest::Game::Game::~Game (this=0x1b54e60, __in_chrg=<optimized out>) at /home/softcoder/Code/megaglest/branches/release-3.6.0.3/source/glest_game/game/game.cpp:312
#21 0x00000000006f250b in Glest::Game::Program::~Program (this=0x1a6b370, __in_chrg=<optimized out>) at /home/softcoder/Code/megaglest/branches/release-3.6.0.3/source/glest_game/main/program.cpp:243
#22 0x00000000006ee5cf in Glest::Game::ExceptionHandler::handleRuntimeError(char const*) ()
#23 0x00000000006d45c2 in Glest::Game::handleSIGSEGV (sig=<optimized out>) at /home/softcoder/Code/megaglest/branches/release-3.6.0.3/source/glest_game/main/main.cpp:656
#24 <signal handler called>
#25 0x0000000000999d75 in Shared::PlatformCommon::SimpleTaskThread::~SimpleTaskThread (this=0x1afd760, __in_chrg=<optimized out>) at /home/softcoder/Code/megaglest/branches/release-3.6.0.3/source/shared_lib/sources/platform/common/simple_threads.cpp:310
#26 0x000000000099f53b in Shared::PlatformCommon::SimpleTaskThread::execute (this=0x1afd760) at /home/softcoder/Code/megaglest/branches/release-3.6.0.3/source/shared_lib/sources/platform/common/simple_threads.cpp:401
#27 0x00000000009c3e9f in Shared::Platform::Thread::beginExecution (data=0x1af1c28) at /home/softcoder/Code/megaglest/branches/release-3.6.0.3/source/shared_lib/sources/platform/sdl/thread.cpp:79
#28 0x00007f66a99b7fd5 in ?? () from /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0
#29 0x00007f66a99fb999 in ?? () from /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0
#30 0x00007f66a978fe9a in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#31 0x00007f66a6cc44bd in clone () from /lib/x86_64-linux-gnu/libc.so.6
#32 0x0000000000000000 in ?? ()

Is this an issue in MegaGlest, and if so, is it fixed, yet?

Pages: 1 2 3 4 5 [6] 7 8 9 10 ... 20
anything