Seite 1 von 1

Laufen einer Spielfigur mit Server abgleichen

Verfasst: Dienstag 31. Juli 2012, 18:42
von Lopt
Hallo!

Da ich momentan am verzweifeln bin, frag ich hier um rat.
Es geht um ein Spiel, bei der ich gerade die Spielfigur bewegen will. An sich klappt das ohne Probleme, ich kann mit WASD die Figur steuern. Nun baue ich das aber gleich mit "Multiplayer", es gibt einen Server an denen die Spieler ihre Informationen schicken.

Der Client, die GUI also, berechnet alle paar millisekunden ein neues Frame, zu diesem Zeitpunkt wird auch die neue Position der Spielfigur berechnet und die Spielfigur an die neue Position gesetzt. Das klappt an sich - ich kann sie clientseitig frei rumbewegen.
Nun möchte ich diese Information aber mit dem Server teilen, das diese die weiterverbreiten kann, und vom Server korrigieren lassen - falls der Client betrügt.
Das bereitet mir immense Schwierigkeiten...

Folgendes Probier ich gerade:
Sobald zwischen zwei Frames eine Richtungsänderung ist, wird diese Information inklusive der Zeit zur letzten Bewegungsänderung zum Server geschickt. Der Server gleicht das mit seiner Zeit ab (+ ein wenig differenz wegen lag), nimmt dann zumeist die Clientseitige differenz und berechnet Serverseitig die Koordinaten, die dadurch dann an den Client geschickt werden, und dort die Spielfigur auf diese Koordinaten gesetzt wird.
Die Lösung funktioniert auch noch nicht vollständig, aber es ist erstmal ein Ansatz.

Ich wollte anfragen, welche Möglichkeiten gibt es? Wie kann man das noch lösen? (Wie machen es bekannte Spiele, z.B. Ego Shooter, da ist das ja verdammt flüssig?)

Re: Laufen einer Spielfigur mit Server abgleichen

Verfasst: Dienstag 31. Juli 2012, 18:49
von webspider
Lopt hat geschrieben:Ich wollte anfragen, welche Möglichkeiten gibt es? Wie kann man das noch lösen? (Wie machen es bekannte Spiele, z.B. Ego Shooter, da ist das ja verdammt flüssig?)
Zu dem Thema las ich vor geraumer Zeit mal einen Blogpost von Armin Ronacher: immersedcode.org

Re: Laufen einer Spielfigur mit Server abgleichen

Verfasst: Donnerstag 2. August 2012, 08:57
von Mad-Marty
Armins Blogpost gibt die passenden Startinfos.
(Ich fand ihn super :-) )


Da ich sowas auch schonmal gemacht habe, aber für single player,
brauchte ich keine Lag Compensation.

Generell gibts einige gute Bücher speziell zur Hit Detection und Client-Server-Network Entwicklung.
Die solltest du dir alle ansehen falls das was richtiges werden soll.

Kleine Warnung vorweg: bis es richtig gut funktioniert brauchts RICHTIG viel arbeit ;)