marcusklaas/Achtung--die-Kurve- — comment on commit 2755f1e8481bd2581a3874ac5fc6d8da82a9ec93
File: test-server/test-server.c line 154
By rdragon:

Jo, ik dacht het volgende:

de server krijgt input messages van de client, het liefst wil ie dat de
timestamp van deze messages precies gelijk is aan de current gametime. nu
onthoudt ie het gemiddelde verschil van de laatste x input messages (en de
grootste uitschieter wordt genegeerd), en als dit in absolute waarde meer
dan een bepaalde waarde is betekent het dat de gametime van de client
verkeerd loopt. dan zendt ie deze adjustGameTime message met het aantal
msec dat de client zn game vooruit/achteruit moet zetten. jouw idee was
geloof ik om dit op de client te regelen, door de server telkens zijn
gametijd mee te laten sturen. dat kan natuurlijk ook, maar ik dacht dat de
server het toch ook wil bijhouden omdat ie dan clients kan straffen die
zich er niet aan houden.

verder kan je zien dat ik de client nog beetje heb geupdate. mn idee was
dat de client na het connecten probeert te achterhalen hoeveel msec zijn
klok met de klok van de server achter/voorloopt. dan kan de server namelijk
in zijn tijd zeggen wanneer de game moet beginnen en kan de client ping
eerder beginnen. en dit syncen wordt gedaan door een aantal keer de
servertijd aan te vragen, en de keer met het minste ping te gebruiken om
het verschil met de servertijd te bepalen. deze is dan maximaal ping
verkeerd.

ik denk dat het volgende wat gedaan moet worden de fixed timesteps in de
client inbouwen. ik begon hier nog maar niet aan want ik kon het niet
testen, atm als de game wordt gestart krijg ik canvas errors die me beetje
onduidelijk zijn. maar die setTimeout functie wacht een bepaald aantal msec
voor ie de functie die in het eerste argument staat called. dit werkt dus
ongeveer hetzelfde als de sleep functie, en ik denk dat de client loop
bijna hetzelfde kan zijn als die van de server, enkel nu met draws als het
even kan.

groeten!

2011/12/15 Marcus Klaas de Vries <
reply@reply.github.com
>

> Huh -- waarvoor is deze functie? Wanneer wil een client deze aanroepen?
>
> ---
> Reply to this email directly or view it on GitHub:
>
> https://github.com/marcusklaas/Achtung--die-Kurve-/commit/2755f1e8481bd2581a3874ac5fc6d8da82a9ec93#commitcomment-798799
>