Ich bin kein Spieleentwickler von Beruf, arbeite aber an einem Kartenspiel (das ist Echtzeit, nicht rundenbasiert). Ich habe mich gefragt, was die häufigsten Fehler sind, die Menschen machen, wenn sie neu in dieser Art von Entwicklung sind, damit ich sie vermeiden kann!
7
You should only ask practical, answerable questions based on actual problems that you face
Antworten:
Es gibt einen Google Techtalk mit Rob Hawkes , dem Erfinder von Rawkets , der über die Probleme spricht, auf die er beim Erstellen seines Spiels mit Websockets und Node.js gestoßen ist. Er hat auch einige ziemlich raffinierte Lösungen für die Probleme gefunden, mit denen er konfrontiert war.
quelle
Der größte Fehler besteht darin, die Spiele einfach auf der Client-Seite zu spielen und ihnen zu ermöglichen, ihre Informationen so zu kommunizieren, wie sie sie sehen. Lassen Sie die Clients einfach ihre Eingaben kommunizieren und in diskreten Intervallen ein vom Server gesendetes Modell rendern. (Speichern Sie diese Modelle in einem Array mit einem Server-Zeitstempel und interpolieren Sie dann zwischen zwei bekannten Zeitstempeln, um alle Akteure in jedem Frame zu rendern.)
Ich habe ein Framework speziell für die Erstellung von HTML5-Echtzeit-Multiplayer-Spielen erstellt, das auf dem Client / Server-Modell basiert. In diesem Modell senden die Spieler nur Eingaben an den Server (Tasten werden gedrückt) - und das Spiel findet auf dem Server statt.
Der Server sendet zeitgesteuerte Welt-Snapshots an alle Clients, und Clients rendern sich etwa 75 ms vor der aktuellen Zeit, indem sie zwei bekannte Weltaktualisierungen finden, zwischen denen ihre Renderzeit liegt.
Repository (enthält 3 Demos) https://github.com/onedayitwillmake/RealtimeMultiplayerNodeJs
Video Box2D-Demo in Aktion: http://vimeo.com/24149718
Folien von JSConf 2011: http://www.slideshare.net/MarioGonzalez15/realtime-html5-multiplayergameswithnodejs-7868336
Es basiert auf den Whitepapers der Quakeworld- und Valve Source-Engine: http://fabiensanglard.net/quakeSource/index.php http://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking
quelle