Kurosu wrote:
> Hi,
>
> Florian Köberle a écrit :
>   
>> Option (c) seems to be quite tricky to me. The main problem is that
>> locally games stay synchronous for me and I guess it will be the same
>> for any other developer which doesn't own two machines. So how do you
>> want to find out that your resynchronization works? One idea to test it
>> locally would be VMs but I don't know if they are fast enough if they
>> simulate another architecture.
>>     
>
> Using the headless servers forces, I think, traffic to go back and forth 
>   through that server. At least that is my supposition after seeing 
> "waiting for player..." with one computer running 2 games connected to 
> that kind of server.
>   
It's correct that if you use a headless server that the traffic will go
to the headless server and back to you when you connect with two local
clients. This doesn't help in this case because the problem is not the
network delay but the fact that Wormux might calculate different results
for different machines.

The headless server doesn't run the game like a Wormux instance. Instead
it is more ore less just forwarding packages and notifies the connected
clients about leaves and joins of new clients. That's why we can't just
use a headless server on an different architecture to test if Wormux
synchronizes well.

>   
>> Another option (d), which can also be combined with (a) and (b) is to do
>> a calculation test which results in a hash of multiple calculation
>> results. That hash gets then used to determine if a player can play with
>> another player without a loss of synchronization.
>>     
>
> It seems unpractical. Even a different version of the same compiler can 
> produce output different from another one on the same computer, for 
> instance because of a slight difference in instruction scheduling by 
> those compilers. Maybe not that common, but it may happen in some deep 
> part inside of wormux. Then your computation will say "reject player B 
> (also x86-64 but under Mandriva rather than Ubuntu) and accept player 
> C". But too bad, if most computations are identical, one is going to be 
> messed. And if you want to distinguish that far, you may end up with no 
> one able to connect to one another.
>
> And that's just a slight problem compared to the problem of the gamer 
> frustration for not being able to join a game.
>   
My experience with playing with 0.9.0 was that there were two sorts of
players:
a.) Players with which I could play game after game without any problem.
b.) Players with which I couldn't play because the game would sooner or
later run out of sync.

So I actually started asking players what platform and Wormux build they
are using to find out in advance if we would have a nice game or not.
Sometimes I then suggest that player A plays with B and player C with me
instead of playing a game with all three which would run sooner or later
out of sync.

That's where the idea comes from. Of course it would be cool if this
option (d) would not be necessary.

Best regards,
Florian

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

Répondre à