Commit Graph

286 Commits

Author SHA1 Message Date
Mark Vejvoda
158acea0b5 - attempt to fix problem with hanging sleep 2010-12-14 00:00:56 +00:00
Mark Vejvoda
8d6e33d4ba - added some extra guards in Network manager (throw exception if things are in a bad state) 2010-12-13 23:39:24 +00:00
Mark Vejvoda
90fe87098c - added a wait time of 10 seconds max for some thread loops 2010-12-13 23:13:25 +00:00
Mark Vejvoda
7872e980e1 - updated thread handling slightly in menus to make things more stable 2010-12-05 01:52:38 +00:00
Titus Tscharntke
ede8977aff switched resourcemultiplier to int (using the index now) and added some debug output for testing. 2010-11-25 22:45:08 +00:00
Mark Vejvoda
d89953ee96 - improved performance and bug fixes. 2010-11-09 09:06:52 +00:00
Titus Tscharntke
2440d475b3 beginning of new resource multiplier. Still work in progress but hopefully ready to test some things. 2010-11-08 23:15:50 +00:00
Mark Vejvoda
d07cd76459 - added a guard for proper slot index usage in network code 2010-10-25 20:56:57 +00:00
Mark Vejvoda
bbc8f96327 - better masterserver thread management during game play (do not start the thread for non published games) 2010-10-24 05:52:21 +00:00
Mark Vejvoda
c3d41f5082 - bugfixes to master server communication logic when starting a game. Now we only send updates if the game was published, not for every network game. Also we properly delete the game from the masterserver when it has ended. 2010-10-23 22:06:49 +00:00
Mark Vejvoda
ae8571a406 - added the beginning of some new master server info (very limited)
- Masterserver menu will show more titles / colors.
    - We keep the game showing in the Masterserver menu while it is in progress.
   - Disable join button when slots are full.
   - Update title with IN PROGRESS when game is being played.
   - PHP Script is backwards compatible with older clients
2010-10-23 09:06:47 +00:00
Mark Vejvoda
e2610df502 - fixed chatting logic to now retain more info about the user that sent the text in the console manager. Colors now apply to the playername and changing playernames is ok in the lobby andf rendering accounts for this (as well as switching slots) 2010-10-23 04:00:39 +00:00
Mark Vejvoda
707a26feb2 - bugfix for server side player color index being wrong 2010-10-22 16:35:16 +00:00
Mark Vejvoda
8ab3366c66 - added player color coding in lobbies as well as chat console 2010-10-22 07:28:55 +00:00
Mark Vejvoda
79318735ab - cleanup of last compiler warnings in Linux (hurray!) 2010-10-21 18:24:54 +00:00
Mark Vejvoda
be979590c1 - more compiler warning cleanup 2010-10-21 17:42:45 +00:00
Mark Vejvoda
f5f406dfb3 - bugfix related to segfault when a network disconnect occurs while a thread is updating a slot 2010-10-21 00:21:58 +00:00
Mark Vejvoda
59c5fd2581 - moved version checking into one common method in the util file. Now all network related checks use this common method to determine version compatibility 2010-10-15 17:27:00 +00:00
Mark Vejvoda
86b11a7f05 - bugfix (again) for playername index bug 2010-10-08 22:32:23 +00:00
Mark Vejvoda
ae010f85ab - bugfix for playername index offset on client 2010-10-08 17:17:22 +00:00
Mark Vejvoda
f345835fc4 - final bugfix for 3.3.7, playernames got mixed up when first slot was closed. Also fixed editing when typing playername 2010-10-08 01:41:53 +00:00
Mark Vejvoda
0d050f62d4 - added code to now output all eerors to console (with option to save in log file)
- added more LUA debug info
2010-10-06 20:22:06 +00:00
Mark Vejvoda
0e8ed05c2e - bugfixes for handling missing maps on client 2010-09-17 08:26:22 +00:00
Mark Vejvoda
f84a710d2c - initial logic to allow client side controlled AI 2010-09-14 19:10:37 +00:00
Mark Vejvoda
ab44c83168 - added leak_dumper header all over the place (not yet functional in linux)
- Bugfix for particle cleanup
2010-09-07 05:25:40 +00:00
Mark Vejvoda
fba29d3002 - added new menu option to toggle on / off observers 2010-09-04 01:24:17 +00:00
Mark Vejvoda
e32eb9c162 - modified command object to support special states which flow through network play as well. This allows for better handling of multi-unit build and allows for better future expanding of command processing. 2010-08-30 20:45:12 +00:00
Mark Vejvoda
20a02c28ed - bigfix for windows compile 2010-08-27 23:04:59 +00:00
Mark Vejvoda
a2f013c51a - cleaned up lobby message processing 2010-08-27 20:09:55 +00:00
Mark Vejvoda
2e99f69ef1 - added an overall MAX lag counter to disconnect clients that lag beyond recovery 2010-08-27 18:53:59 +00:00
Mark Vejvoda
90f66d99bf - updated game data checks display on server 2010-08-26 23:14:55 +00:00
Mark Vejvoda
f765ab0880 - updated game data mismatch display 2010-08-26 23:04:14 +00:00
Mark Vejvoda
ddf4fca0bf - another change to game data packet length for the sake of cheesy windows 2010-08-26 22:29:48 +00:00
Mark Vejvoda
1058065ce7 - changing the max filecount lower to avoid stack overflow due to array taking > 1MB 2010-08-26 20:28:26 +00:00
Mark Vejvoda
f3278c3cf3 - bugfixes for stack overflow issue (static array size too large causing chkstk errors) 2010-08-26 19:01:44 +00:00
Mark Vejvoda
4ebd156828 - added new commandline parameter to display the version of SDL used by the program 2010-08-26 16:03:54 +00:00
Mark Vejvoda
c5624d8662 - bugfix for newer gcc compiler that freaks out on using static ints as a parameter to stl's min and max functions 2010-08-26 15:00:50 +00:00
Mark Vejvoda
979a6ddb09 - fixed compile issues for tomreyn 2010-08-26 14:48:04 +00:00
Mark Vejvoda
8274ff1efb - windows compile bugfixes 2010-08-26 05:43:08 +00:00
Mark Vejvoda
db173d0fdd - bugfixes for network playername inline editing in the lobby during a slot switch 2010-08-26 05:30:17 +00:00
Mark Vejvoda
a64fa69d02 - bugfixes for experimental game data synch check in lobby
- added a fix for socket sending when the send buffer is full and we have more data to send
2010-08-26 03:15:36 +00:00
Mark Vejvoda
e5678be10c - bugfixes for experimental game data synch check in lobby
- added a fix for socket sending when the send buffer is full and we have more data to send
2010-08-26 02:36:17 +00:00
Mark Vejvoda
5a796444b8 - added a cache for compute fog of war 2010-08-25 23:55:59 +00:00
Mark Vejvoda
c01b43f635 - added another layer of authentication to validate the client is REALLY a mega-glest client 2010-08-23 15:40:43 +00:00
Mark Vejvoda
0509b5d643 - bugfixes for playername change in lobby screen 2010-08-23 04:33:21 +00:00
Mark Vejvoda
0ad20a1a2d - fixed code for debug asserts 2010-08-22 08:42:43 +00:00
Mark Vejvoda
bf5f6b7f33 - experimental support for idenitfying specific game data which is out of synch with the server. 2010-08-22 08:00:05 +00:00
Mark Vejvoda
cce338a2c6 - atempt to squeeze some extra rendering performance 2010-08-21 18:50:56 +00:00
Mark Vejvoda
455876a3c0 - added the ability to change your playername from the game lobbies inline 2010-08-21 13:04:52 +00:00
Mark Vejvoda
80c54b7a21 - added version mismatch check on server to avoid spurious client connection activity 2010-08-21 02:59:21 +00:00
Mark Vejvoda
d08c8300f0 - more attempts at stability for network games 2010-08-21 01:52:41 +00:00
Mark Vejvoda
07cbcc0bec - added a bunch of null terminations to all char buffers in network protocol 2010-08-20 23:53:10 +00:00
Mark Vejvoda
ff7828fa6f - more NULL checking for safer execution 2010-08-20 22:59:32 +00:00
Mark Vejvoda
0e82836e01 - more NULL checking for safer execution 2010-08-20 22:17:30 +00:00
Mark Vejvoda
1fa9efc091 - alittle more bullet proofing using NULL pointer checks 2010-08-20 20:51:25 +00:00
Mark Vejvoda
fc31e7713d - added null pointer check 2010-08-20 20:29:30 +00:00
Mark Vejvoda
a6d33fe569 - attempt to protect a little against spurious network activity 2010-08-20 20:03:06 +00:00
Mark Vejvoda
277362a6c7 - fixed a possible infinite loop while receiving network packets on clients for network games (found by titi's stack trace dump) 2010-08-20 18:06:03 +00:00
Mark Vejvoda
94e4a85957 - How i love you microsoft... another win32 fix 2010-08-07 06:35:52 +00:00
Mark Vejvoda
0f8eb267c6 - attempt to correct network message alignment problem 2010-08-07 06:19:56 +00:00
Mark Vejvoda
cee6b8dfc8 - attempt to help client wait for network packets better 2010-08-07 05:55:18 +00:00
Mark Vejvoda
a5bf684493 - more network fixes to make lag and disconnects more stable
- changed the way the game end logic happens to try to make it more stable
2010-08-07 04:49:06 +00:00
Mark Vejvoda
fe8d3b3130 - numerous bugfixes mostly centered around network lag, but also added more logging and protective code (like buffer overflow checks)
*NOTE: This version is NOT backwards compatible with other builds
2010-08-07 03:26:38 +00:00
Mark Vejvoda
7df6d2bc16 - added version string display for network lobbies 2010-08-05 05:58:14 +00:00
Mark Vejvoda
4ba4b756c8 - updated client connect screen to display new game options as set from the server 2010-08-04 23:39:12 +00:00
Mark Vejvoda
a8a3275036 - added an earlier attempt to help lagging clients recover when they start to fall behind. 2010-07-29 05:51:50 +00:00
Mark Vejvoda
e9e1a317e4 - cleanup of some compiler warnings 2010-07-17 06:54:04 +00:00
Mark Vejvoda
a3ec4650c4 - moved pause for lagged clients option to custom game menu
- bugfix to ignore 0.* ip addresses
2010-07-16 16:53:19 +00:00
Mark Vejvoda
031bfd2f60 - added LAN IP in custom Menu
- Updated readme and other text files with more accurate info (thanks Tomreyn)
- Disabled ability to zoom out when game is over if in a network game (creates to much LAG and instability)
2010-07-10 06:14:31 +00:00
Mark Vejvoda
eb34eb1fe5 - more bugfixes for ping logic 2010-07-09 18:49:01 +00:00
Mark Vejvoda
b008594ca8 - missing header for windows compile 2010-07-09 17:46:53 +00:00
Mark Vejvoda
0d7d0e139d - updated disconnect checking to include a timeout check for our custom ping 2010-07-09 17:12:57 +00:00
Mark Vejvoda
df688c3ede - some debug comments removed 2010-07-09 15:59:49 +00:00
Mark Vejvoda
3e53b69676 - added client side ping style packet for linux socket disconnect checking 2010-07-09 15:01:49 +00:00
Mark Vejvoda
ab655162cb - added more bug fixes related to network disconnects.
- Added a new global message box to display error messages on top of any graphics window being displayed.
2010-07-08 08:29:51 +00:00
Mark Vejvoda
ff21d26161 - mouse disappearing bugfix (go ahead alt-tab, alt-esc, do it ALL, its fixed!)
- Added more descritive error message when data checksum is discovered. The client's playername is now disclosed in the error.
- added VS project config to disable STREFLOPs for testing later
- updated version to 3.3.5.1 alpha1
2010-07-07 22:25:29 +00:00
Mark Vejvoda
8478ab80b3 - bugfixes for malformed debug statements
- updated version to 3.3.5.1
- added more null checks
- changes to try to fix crash when ending a game (delete cells bug)
2010-07-06 05:30:34 +00:00
Mark Vejvoda
009e6f07e5 - added initial ability for servers to publish an external port for use with internet games. This is in case we must use soft-haus.com which will work with only a few outgoing port numbers.
*NOTE: This update add's a new field to the PHP / mysql scripts.
2010-07-03 10:06:31 +00:00
Mark Vejvoda
eda2e84aee - bugfixes for processing disconnect and game end scenarios. These fixes corrected a bunch of segfaults when client or server disconnect. 2010-07-02 19:57:47 +00:00
Mark Vejvoda
521fb237bf - bugfix for regression of disconnecting from server on lobby screen 2010-07-02 16:54:28 +00:00
Mark Vejvoda
aa0db2c0f0 - network code bugfixes.
- More checking for disconnect and proper handling of those cases
- Changed battle end screen to exit via mouse click on exit button (or press ESC)
- Removed display of unused ping output
- added more error handling debug output of the mystical unknown error caught in window.cpp to track it down better if it happens again
2010-07-02 02:50:20 +00:00
Mark Vejvoda
391fd1f36d - bugfixes to properly manage and display various kinds of network error conditions. 2010-07-01 06:11:14 +00:00
Mark Vejvoda
3ea81caf92 updated output type to get proper values 2010-07-01 00:52:11 +00:00
Mark Vejvoda
b0b477aa59 - moved clear outside of loop 2010-07-01 00:31:48 +00:00
Mark Vejvoda
c5cb8dbd18 - bugfixes related to chat message processing and error processing. We now stack up messages and process them in a more safe manner 2010-07-01 00:08:59 +00:00
Mark Vejvoda
217c92e939 - updated warnhing message condition to also check LAG time in addition to lag count 2010-06-30 18:59:28 +00:00
Mark Vejvoda
1f04fd3106 - added another LAG validation (this is in addition to the excisting ones) a time in seconds LAG. This should be able to deal with disconnected clients better
- added more error handling to try to handle different kinds of errors during gameplay
- added new mouse toggle hotkey (toggles between OS and mega-glest mouse) default key is / in glestkeys.ini
2010-06-30 07:03:04 +00:00
Mark Vejvoda
9508dad51b - network related bugfixes:
menu slowdown when picking network slots
clients can once again change network slots
performance fixes for network receiving
2010-06-29 06:50:35 +00:00
Mark Vejvoda
a7954abc02 - updated version number to beta15
- fixed bug affecting performance due to unconnected slots
2010-06-28 03:17:50 +00:00
Mark Vejvoda
00860813b2 - bugfixes for LAG checking:
- proper disconnect for clients passed MAX lag
  - proper lag packet time initialzation for clients sending LAG update info to the server
2010-06-28 00:21:12 +00:00
Mark Vejvoda
1d4f47718c - added many new things and fixed a number of bugs (too tried to mention them all) 2010-06-24 01:23:18 +00:00
Mark Vejvoda
87b4706940 - Attempt to use libcurl in a thread safe manner 2010-06-23 14:49:20 +00:00
Mark Vejvoda
2d50beecfa - bugfix for mutex deadlock 2010-06-18 20:04:05 +00:00
Mark Vejvoda
82f412453e - bugfix for mutex deadlock 2010-06-18 18:47:20 +00:00
Mark Vejvoda
4647497cee - bugfix for proper thread shutdown which caused a number of crashes when navigating menus 2010-06-17 23:24:15 +00:00
Mark Vejvoda
2015843d69 - added optional server game pause if client lags 2010-06-17 21:46:36 +00:00
Mark Vejvoda
eeda623b4f - removed the rotateunit flag (its now just part of MG)
- updated rendering to consider both visible and explored cells when rendering untis and objects
- added a warning message when a client is lagging and coming close to being kicked off
2010-06-17 00:08:27 +00:00
Mark Vejvoda
39acffa2aa - enable mouse while new game is loading 2010-06-16 06:35:35 +00:00
Mark Vejvoda
5356a3de23 change of data type to correct type for time lag 2010-06-15 05:44:29 +00:00
Mark Vejvoda
e091460f40 - attempt to add a client LAG checker to notify and disconnect clients that fall too far behind. 2010-06-15 05:36:07 +00:00
Mark Vejvoda
cdb820a8e8 - fixed a network read problem where there is more data needed before reading large command lists can be processed.
- added more error checking
2010-06-14 06:38:24 +00:00
Mark Vejvoda
085d4e4bfe - added more debug statements to try to track beta bugs
- added safer customization of ini files
- added ability to customize game keys
- added more error checking for ogg file loading
- added faction loader progress
- added a few more thread protections on custom menu
2010-06-12 18:27:39 +00:00
Mark Vejvoda
4fd75e5d7d - fixed two nasty AI bugs which would cause out of synch and memory corruption problems
- added new glest.ini setting to log commands for each client
2010-06-08 07:40:32 +00:00
Mark Vejvoda
cf6d43247d added networkframeperiod support to gamesettings and added possibility to over-ride in glest.ini for now 2010-06-05 07:52:14 +00:00
Mark Vejvoda
3b06db30e9 commented out ping code and added synch check for large comamnds list 2010-06-05 00:00:36 +00:00
Mark Vejvoda
2970e5114a added mutex protection in custom game menu to protect access to member variables to avoid crashes when background thread and user changes both occur 2010-06-04 21:46:10 +00:00
Mark Vejvoda
964be91fa9 added ping times to UI 2010-06-04 19:42:58 +00:00
Mark Vejvoda
dc0315d0d6 bugfix in server connection slot shutdown processing, only update server listener if BEFORE game started, not after game exits 2010-06-03 23:00:31 +00:00
Mark Vejvoda
8005fa96e1 disabled threaded send 2010-06-03 21:55:17 +00:00
Mark Vejvoda
4227d2bd1d attempt to fix threaded network send bug 2010-06-03 21:49:41 +00:00
Mark Vejvoda
ff6d90a5f1 added more pointer inits 2010-06-03 21:25:33 +00:00
Mark Vejvoda
6b10c5696f - added missing gamesettings to network packet and added experimental threaded server message broadcasts to client 2010-06-03 07:52:17 +00:00
Mark Vejvoda
1b000376d4 - updated client connection screen to NOT crash if client does not have the tech selected on the server 2010-06-03 06:03:41 +00:00
Mark Vejvoda
ace1cef8a8 - added safe mutex wrapper class 2010-06-02 01:37:45 +00:00
Mark Vejvoda
b8dac6de50 - updates to random number generation 2010-06-01 00:57:48 +00:00
Mark Vejvoda
fc63460e07 - updated unitid offset for each faction so that we support up to 100,000 units per faction per game (which is larger than previously supported) 2010-05-31 09:45:54 +00:00
Mark Vejvoda
0069fbf4f0 - added more debug code and fixed a server bug where client connecting at the same time a server opens a slot would result in a crash sometimes. 2010-05-31 06:11:31 +00:00
Mark Vejvoda
e4f885ecf3 removed some debug output to make reading logs easier 2010-05-29 11:12:45 +00:00
Mark Vejvoda
9159d44b7a - added a VERY IMPORTANT synch check in order to find unit id mismatch 2010-05-29 08:23:52 +00:00
Mark Vejvoda
8b6af02ece - Added better error handling for in-game errors 2010-05-29 06:56:32 +00:00
Mark Vejvoda
a03853ad13 - made some stability improvements
- Fixed chat message processing
2010-05-28 14:59:09 +00:00
Mark Vejvoda
908b155d62 some changes to how we use streflop:
- Removed all unneeded includes of cmath
- added proper wrapper classes for lua calls to toggle streflop back and forth
- some code cleanup
2010-05-28 05:31:17 +00:00
Mark Vejvoda
f0da609e7f trying to track down network bugs 2010-05-28 00:57:24 +00:00
Mark Vejvoda
ac34fc6d99 Commented out some mutex use that should no longer be required. 2010-05-28 00:26:29 +00:00
Mark Vejvoda
0aade73335 - Did some refactoring to move connectionSlotThread into ConnectionSlot class 2010-05-27 23:46:38 +00:00
Mark Vejvoda
f92bf42d82 - Attempted fix for some synch network errors (ensure client messages are processed in proper order) 2010-05-26 05:33:15 +00:00
Mark Vejvoda
4b6e017241 - Added particle support to g3d viewer 2010-05-25 18:06:42 +00:00
Mark Vejvoda
69d7070f54 Added some more mutex guards around multi-player server side thread that processes incoming messages 2010-05-21 16:36:08 +00:00
Mark Vejvoda
258cd1fea1 - bugfixes for custom port# configurations
- changed version to alpha2
2010-05-17 20:41:18 +00:00
Mark Vejvoda
272a072ec3 added client socket accept info to debug log as well as some change detection 2010-05-17 06:41:05 +00:00
Mark Vejvoda
1ae2a9ae10 - Added partial threaded network server handling of incoming socket data to try to improve performance
- Small changes to client network handling to be more accurate and efficient
- Added observer mode when a user loses a network game
2010-05-15 18:59:17 +00:00
Mark Vejvoda
4fc043ddb6 more bullet proofing of network activity 2010-05-13 07:13:53 +00:00
Mark Vejvoda
57d0420b76 Added some threading for URL calls for new masterserver game play 2010-05-13 06:43:56 +00:00
Mark Vejvoda
319b672e20 added better handling of network connections:
- only listen for new clients on a server if an open slot exists (unconnected)
- for both server and client we wait a max of 10 seconds to receive a proper intro packet or we disconnect (could have connected to / from a non glest application using the same port)
2010-05-12 15:25:56 +00:00
Titus Tscharntke
13a1630e69 first steps for masterserver join menu 2010-05-09 21:23:13 +00:00
Mark Vejvoda
8aa14009d1 - added a more proper #define setup to completely stub out debugging to test performance
(simply uncomment #define UNDEF_DEBUG and the debug statements become nothing)
- Added piles of experimental changes for testing different performance scenarios (all of these changes are turned off by default and will most likely eventually be removed)
2010-05-07 06:46:55 +00:00
Mark Vejvoda
4b1a392f00 Bugfixes for network game launching:
- discard inprogress messages that don't apply during launch
- added better error handling of disconnects during game launch and play on both server and clients
2010-05-04 02:32:43 +00:00
Titus Tscharntke
73be43d6ad some (possible) bugs are fixed when starting but not all. Discussion needed . 2010-05-04 00:05:10 +00:00
Mark Vejvoda
04bb6659ce Added more debugging and option to disable new streflop usage. 2010-05-01 20:14:25 +00:00
Mark Vejvoda
2417f37e21 added more debugging for error conditions 2010-05-01 10:46:56 +00:00
Titus Tscharntke
3e7f3ed485 client slot selection bug hopefully fixed 2010-04-30 18:36:38 +00:00
Mark Vejvoda
6577762297 - Added a new pre-Cache thread for CRC value calculation
- Added support in the client UI if multiple local LAN servers are discovered.
2010-04-30 06:45:30 +00:00
Mark Vejvoda
35cd622f43 changed max network command batch size to use unsigned int to allow more commands to be sent at once 2010-04-30 02:41:42 +00:00
Mark Vejvoda
e7cb595ae8 small change to compiler version stamp 2010-04-30 02:34:19 +00:00
Mark Vejvoda
19cd66fc2d Changed compiler stamp in version string 2010-04-30 02:20:27 +00:00
Mark Vejvoda
e8aa5083cb Added new binary compatibility check 2010-04-30 01:32:37 +00:00
Titus Tscharntke
0687a56e27 clients can choose their slots 2010-04-30 01:08:29 +00:00
Mark Vejvoda
cc08074acf more caching and bug fixes for data synch compare 2010-04-29 08:36:37 +00:00
Mark Vejvoda
4f147b2d89 Added more guards and debug info related to network play 2010-04-29 07:59:44 +00:00
Mark Vejvoda
805015fd83 Updates to cache CRC values and folder traversal lookup 2010-04-29 06:10:51 +00:00