Page 3 of 6

Posted: 08 Dec 2006, 10:02
by tombom
Tobi wrote:You can upload desynced replays here:
http://www.osrts.info/~tvo/spring/upload_replay.php

I'll run them through valgrind soonish.
Only replays made with the latest version of spring please.
Is it OK to upload replays with any desyncs at all? There is one where one guy who spectates desyncs but no-one else and another 16 player one where a few people desynced pretty quickly and I'm not sure if they're worth it.

Posted: 08 Dec 2006, 23:56
by Tobi
Sure, just upload them. The earlier the desync happens the better actually. Doesn't matter whether it's a spec or a player. Just dont upload replays of which you know that they desync because someone borked his datafiles...

Posted: 10 Dec 2006, 01:34
by Peet
I just had a game where I desynced, it was precisely at a moment where I sent a single ship through a large mass of other ships...Sounds very much like a bug in the collision code.

Posted: 10 Dec 2006, 02:26
by malric
Uploaded replay where all players desync (except host).

Would it be possible to use sync debugger 'off line' ? (using one replay for the host, and one replay for the desync player...)

Posted: 10 Dec 2006, 22:58
by ginekolog
I also see sync errors in every other game. And most of time 3 or more ppl get desync at the same time.. sometimes even some minutes in game.

how about implementing auto resync ?

Host could send game data of all units and postions.. is it possible in timely manner or would it be too hard on host to calculate?

I remember CNC : ZH had the same problem - game has detected missmatch. And even EA could never get rid of it... so annoying.

Posted: 10 Dec 2006, 23:03
by Peet
ginekolog wrote:is it possible in timely manner or would it be too hard on host to calculate?
No, Yes, and the sync error would reoccur immediately due to the underlying bug.

Posted: 10 Dec 2006, 23:27
by Tobi
The problem with sync errors and replays is that replays rely on sync.

Provided the sync error in itself is deterministic & reproducable, replaying the replay on a non-desynced player's PC will give a different results from replaying the replay on a desynced player's PC.

If the sync error is caused by some random bug (unintialized memory read for example), then that part of the replay after the desync is unreliable (the correct gamestate is never stored in the replay).

Replays of desyncs are still useful because one can run them through spring running in some memory checking tool (or even springs built-in memory debugger, syncify, which is currently broken but which I intent to fix..).

Posted: 11 Dec 2006, 00:10
by LordMatt
This idea is probably bad for one reason or another, BUT: why couldn't you compare the replays of the synced player and desynced player to see where the difference occured? If you had a program that would compare the replays line by line and highlight where the error occured, it would seem to me that would aid debugging.
[/possibly impossible idea from non-coder person]

Posted: 11 Dec 2006, 00:35
by Tobi
Indeed it's impossible: The replay only contains the stuff sent over the net.

Suppose we have two players, A and B. A kept synced, B desynced. After the game A and B swap their replay files. Then, most probably, A would still see his version of the game replayed, and B his version of the game: B still is the one that's out of sync, and, if names or sync error messages were edited out of the replay, it would be impossible to find the replay created by the spring version that desynced (in a pool of all replays created by all players of that game).

EDIT: However it could be interesting to compare the contents of the net packages in the replay. If they're different then clearly some netcode / device corrupts packages or something. That will be a very time consuming & boring operation tho....

Posted: 11 Dec 2006, 01:05
by BvDorp
Tobi wrote:... That will be a very time consuming & boring operation tho....
C'mon, you've done that before! Go Tobi the King of Syncs!

Serious; maybe it's better to just wait for a cause to show up. Let other ppl investigate?

Posted: 11 Dec 2006, 02:58
by LordMatt
Tobi wrote:Stuff I don't really understand
I'll take your word for it. :(

Posted: 13 Dec 2006, 07:50
by el_matarife
I have a few desync replays over a meg, if you bump the max limit I can upload them if you need more. You have >15 right now, is that enough to be pretty helpful? Have you ran them through valgrind yet?

Posted: 13 Dec 2006, 14:22
by Tobi
Lets wait till I found something in the current replays.
As of yet I didnt find any errors (only ran 2 or 3 of the 15 replays through valgrind), but I noticed spring in valgrind doesn't sync with spring normal (ie. the replays don't replay correctly). Hopefully I can fix that...

Posted: 30 Dec 2006, 14:51
by Licho
There are still sync errors in new version. So far 100% of games I played had desync. 1 happend when commander exploded (4 people out of 10 desynced) other when nuke hit (7 out of 10 desynced). In those two cases I caused the explosion and I stayed in sync with host.
I was unable to notice cause of other desyncs I encountered. All of this happend in BA4.41 if it's important.

It also seems to me that games run slower now. Even if people show low cpu % and low pings it sometimes slows down extremely.

Posted: 30 Dec 2006, 15:16
by jcnossen
Maybe its an idea to send hardware specs once people are desyncing... I have the feeling some people have a lot of desyncs and others have none (like me).
At least people could know which CPU not to buy if they want to play spring ;)

Posted: 30 Dec 2006, 15:43
by Licho
Well I'm usually having desync between my Intel pentium M notebook hosting spring for my Athlon 2500+ desktop PC.

Happens nearly 100% of times when playing crossing 4 final map.

Posted: 30 Dec 2006, 16:48
by Relative
Wouldn't it be possible to to apply a fully automated re-syncing feature, for the short term a least? Game pauses and everyone downloads the host's version of the game. Might be a bit time consuming in-game, but it's better than nothing.

Edit: oops, it's already been said before.

Posted: 30 Dec 2006, 19:52
by LordMatt
That's being worked on...

Posted: 30 Dec 2006, 21:06
by DemO
These desyncs seem player specific. Certain hosts seem to constantly desync in the games they host and others very rarely. Maybe consider this in searching for the answers as to why people desync - it may be client side related instead of the actual game itself.

Also some hosts can host certain maps fine and others repeatedly desync, where another host will have vice versa - i.e. perfect sync hosting games on the map where the other host desyncs, but his own desync problems on maps that the other host is fine with.

Posted: 30 Dec 2006, 22:06
by LordMatt
DemO wrote: Also some hosts can host certain maps fine and others repeatedly desync, where another host will have vice versa - i.e. perfect sync hosting games on the map where the other host desyncs, but his own desync problems on maps that the other host is fine with.
Multiple versions of tangerine were released without changing something to make the two version appear different, is that what you are talking about?