I decided to take a look at the networking support between Windows and 
Linux today, and want to see if what I found matches what other people 
have found.
1. The Linux host runs fine, the Windows client crashes with an empty 
random table. This is because it is unable to place its characters on 
the map, and uses up all 1024 random numbers in the table trying.

2. In RandomSync::GetRand(), a server or local game never uses the table 
of random numbers. As it needs a new number, it simply generates a new 
one and add its to the table, then pops it right off, sending it to the 
client if there is one. Clients simply pop off the front of the table, 
which should most likely be the random value the server just generated 
and sent. The other values that are placed in the table are never used 
unless the server / client get out of sync. This seems like non-optimal 
behavior.

3. Character placement fails because the client is always placing the 
character in the ground. The only reasons I can see for this happening 
is if either the random values are messed up or if what is considered 
ground is messed up. When debugging this, it shows that it is trying 
positions such as 20636071, 60589966. This seems like a point very far 
off from anything. One thing I have noticed is that RAND_MAX is defined 
differently on Windows (MSVC) and Linux. This would affect a lot of 
things in RandomSync I believe, and might explain some bugs.

kyle

_______________________________________________
Wormux-dev mailing list
Wormux-dev@gna.org
https://mail.gna.org/listinfo/wormux-dev

Répondre à