dudaballs

dudaballs

Wir haben ein wenig mit dem JigLib experimentiert. JigLib ist eine Physik Engine die ihren Ursprung bei C++ hat und nun nach ActionScript3 portiert wurde.

Man nehme Papervision3d, JigLib für AS3 + SmartFox Server und heraus kommt dudaballs.

Eigentlich geht’s bei dudaballs nur darum seine Gegner von der Plattform zu schubsen, macht aber trotzdem Spass.

Das Spiel war relativ schnell zusammengestellt. Der SmartFox Server und Papervision3d stellen grosszügig API und Hilfe zur Verfügung. JigLib ist noch nicht ganz so weit, war aber auch nicht so schwer darin zu recht zu finden.

Die wahre Schwierigkeit bestand in der Spiel Logik:

  • 3d Physik die akkurat berechnet werden muss
  • Jeder sollte das gleiche sehen
  • Kein Zentralserver der diese vornimmt

Unser erster Ansatz war, dass einer der Mitspieler auch der Host ist. Das heisst seine Flashinstanz berechnet die 3d Welt und schickt die wichtigen Daten zu den anderen Spielern. Diese wiederum senden aufgrund der grafischen Darstellung ihre Aktion zum Berechner.

Probleme:

  • Abgleichungen sind durch Netlag fehlerhaft
  • Was passiert wenn der Berechner sich auslogged

Natürlich könnte man jetzt eine Ausgleichlogik einbauen die den Lag mit einberechnet. Aber wir haben uns für eine schnellere und einfachere Lösung entschieden.

  • Jeder Mitspieler berechnet alles
  • Jeder Mitspieler sendet den anderen alle paar Millisekunden seine Position

So kann ein flüssiger und fast 100% korrekter Spielablauf garantiert werden.

Für einen Prototype ist die Lösung gar nicht schlecht, müsste für eine Endlösung aber sicher überdacht und verbessert werden.

Comments are closed.