Häufige Fehler bei der Entwicklung eines Spiels mit Socket.io und Node.js.

7

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!

James P. Wright
quelle
3
Im Allgemeinen sind solche Fragen nicht so gut. Aus der FAQ :You should only ask practical, answerable questions based on actual problems that you face
Tetrad
11
Ein häufiger Fehler ist der Versuch, Fehler zu vermeiden. Tun Sie das nicht, sondern lernen Sie aus Ihren Fehlern.
Dies ist
Ich denke auch, dass dies ein viel zu spezifisches Problem ist - die Anzahl der Leute, die Spiele mit neuen Technologien wie Socket.io und Node.js abgeschlossen haben, liegt wahrscheinlich zwischen 5 und 20, und ich bezweifle, dass sie alle diese Website sehen.
Kylotan
1
@Kylotan, diese Art von Nischenfragen sind eigentlich gut für die Seite. joelonsoftware.com/items/2010/04/19.html
Tetrad
1
Ich habe nicht vorgeschlagen, dass dies eine schlechte Übereinstimmung für diese Site ist (abgesehen von der bereits erwähnten Unbestimmtheit und Subjektivität), aber mehr noch, dass es zu früh ist, ein so allgemeines Problem über etwas zu stellen, das kaum jemand hier verwendet. Joels Beitrag impliziert sehr spezifische Fragen zu allgemeinen Technologien, während dies (derzeit) ein allgemeines Problem zu sehr spezifischen Technologien ist. Ich habe nichts dagegen, dass die Frage hier ist, aber das OP wird an dieser Stelle an anderer Stelle weitere nützliche Hilfe finden.
Kylotan

Antworten:

8

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.

I.devries
quelle
Es ist ein wenig hoch, aber insgesamt scheint es gut zu sein. Ich habe es nur überflogen.
Davy8
8

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

onedayitwillmake
quelle
Sehr schön ! Ich werde eines Tages damit herumspielen.
I.devries