Netgame Desynchronization

Do you need help? Ask here!

Bug reporting belongs here: http://developer.wz2100.net/newticket
BunkerBlaster
Trained
Trained
Posts: 268
Joined: 21 Feb 2010, 09:56

Re: Netgame Desynchronization

Post by BunkerBlaster »

Buginator wrote:Yes, there is a hard cap, and no, you can't override this yet--though, it is planned.

The problem is, we need to keep the buffer low, so 56k users can still play the game.
Trying to find a good balance, but I can't really test with a dial-up modem. Heck, I don't even know if the 14K buffer is already too big.
Hmmmm. The game works fine. The stats dont. Today I hosted a game that all 8 players stayed for 120 min until the win with beta 12a. The only issue I was trying to get across is the stats are not correct for me. I dont see the scores or pings in alliance menu. For this game I saw all ??? for every player. But the players could read the pings to me. The stats say there were no Checks and no Pings yet the game worked perfectly. (max power, 30 oil each) (log has unknown droids for player 7 but nobody complained) Am I the only one that has stats like this?

== Total bytes sent 2665770479, Total bytes received 1081420 ==
== Total packets sent 41498, recv 238634 ==

-Sync statistics -
-----------------------------------------------------------
joins: 13, kicks: 0, drops: 0, left 11
banned: 0, cantjoin: 0, rejected: 0
-----------------------------------------------------------
sent/unsent DroidCheck 0 / 326170
sent/unsent StructureCheck 0 / 326170
sent/unsent PowerCheck 0 / 326170
sent/unsent ScoreCheck 0 / 326170
sent/unsent Ping 0 / 326170
sent/unsent isMPDirtyBit 49889 / 276281
-----------------------------------------------------------
netplay-0306_151234.log
You do not have the required permissions to view the files attached to this post.
User avatar
Crymson
Trained
Trained
Posts: 289
Joined: 18 Mar 2010, 21:08

Re: Netgame Desynchronization

Post by Crymson »

I was looking at that code, and saw this,

Code: Select all

 if(okToSend())
 {
  sendDroidCheck();
  sync_counter.sentDroidCheck++;
 }
 else
 {
  sync_counter.unsentDroidCheck++;
 }
and

Code: Select all

static BOOL okToSend(void)
{
 // Update checks and go no further if any exceeded.
 // removing the received check again ... add NETgetRecentBytesRecvd() to left hand side of equation if this works badly
 if (NETgetRecentBytesSent() >= MAX_BYTESPERSEC)
 {
  return false;
 }

 return true;
}
and

Code: Select all

UDWORD NETgetRecentBytesSent(void)
{
 return nStats.bytesSent;
}
The only way I can see you get all 0's is if you exceeded that buffer size of MAX_BYTESPERSEC, but that don't make sense. O_o
I am still trying to figure out this codebase, it is pretty complex.
User avatar
Saberuneko
Regular
Regular
Posts: 558
Joined: 15 Jan 2010, 18:20

Re: Netgame Desynchronization

Post by Saberuneko »

Saberuneko wrote:
Rider wrote:So there's a hard cap on the amount of bytes sent by Warzone in multiplayer? Can one override this value for, say, LAN play?
I override that values on LAN plays in near the 60% of cases...
I think I misunderstood some word here...
User avatar
Buginator
Professional
Professional
Posts: 3285
Joined: 04 Nov 2007, 02:20

Re: Netgame Desynchronization

Post by Buginator »

BunkerBlaster wrote: Hmmmm. The game works fine. The stats dont. Today I hosted a game that all 8 players stayed for 120 min until the win with beta 12a. The only issue I was trying to get across is the stats are not correct for me. I dont see the scores or pings in alliance menu. For this game I saw all ??? for every player. But the players could read the pings to me. The stats say there were no Checks and no Pings yet the game worked perfectly. (max power, 30 oil each) (log has unknown droids for player 7 but nobody complained) Am I the only one that has stats like this?

== Total bytes sent 2665770479, Total bytes received 1081420 ==
== Total packets sent 41498, recv 238634 ==

-Sync statistics -
-----------------------------------------------------------
joins: 13, kicks: 0, drops: 0, left 11
banned: 0, cantjoin: 0, rejected: 0
-----------------------------------------------------------
sent/unsent DroidCheck 0 / 326170
sent/unsent StructureCheck 0 / 326170
sent/unsent PowerCheck 0 / 326170
sent/unsent ScoreCheck 0 / 326170
sent/unsent Ping 0 / 326170
sent/unsent isMPDirtyBit 49889 / 276281
-----------------------------------------------------------
netplay-0306_151234.log
That is really, really odd.
While I know our stats aren't perfect, it shouldn't be doing that...
For the Host, we track all traffic, since it routes all the packets to the other clients. For users (clients), the stats should be pretty much dead on.

Rider, 2.3 is feature locked, so it won't be in that release.
and it ends here.
colonelkernel8
New user
Posts: 4
Joined: 06 Oct 2009, 06:32

Re: Netgame Desynchronization

Post by colonelkernel8 »

Today I had a wicked example of this very phenomenon...

While playing the game 2v2, about 30 mins into the game every building of my team's bases was destroyed, with no units in sight and no howitzer launch and no signs of damage being taken. Our ample defenses did not fire at all and it pretty much pissed the both of us off...

Shouldn't there be some sort of detection of a loss of synchronization and a warning to go with it?
User avatar
Saberuneko
Regular
Regular
Posts: 558
Joined: 15 Jan 2010, 18:20

Re: Netgame Desynchronization

Post by Saberuneko »

Like it happens with supcom? It would be good, but also should end the game if the desync gets too critical...
User avatar
Buginator
Professional
Professional
Posts: 3285
Joined: 04 Nov 2007, 02:20

Re: Netgame Desynchronization

Post by Buginator »

The stats should be more accurate in the next release.
and it ends here.