Ich bin daran interessiert, ein Spiel zu entwickeln, für das ich derzeit eine Koop-Erfahrung habe. Ich bin jedoch gespannt, wie dies am besten in HTML5 implementiert werden kann.
Ich habe Spiele gemacht, bevor ich gerade C-Sockets und auch mit der Net-Bibliothek für SDL verwendet habe.
Was sind einige meiner besten Optionen, um dies in einer Canvas-basierten Umgebung zu tun?
Gegenwärtig kann ich mir nur AJAX / Datenbank-Lösungen (mit einer hohen Aktualisierungsrate) ausdenken oder einen PHP-Server implementieren, der die Daten über Sockets überträgt.
Das gesamte Gameplay wäre ein 2,5D-Plattformspiel, sodass beide Clients ständig mit Spielerpositionen, Feindpositionen, Projektilen, Umgebungsdaten usw. aktualisiert werden müssten.
networking
multiplayer
html5
dich
quelle
quelle
Antworten:
Socket.IO bietet ein System, das auf mehreren anderen Ebenen (einschließlich Websockets, Flash- und Kometentechniken) mit einer angemessenen Auswahl aufgebaut ist.
Node.js ist eine Option, um es serverseitig auszuführen.
quelle
Siehe diese Antwort :
quelle
„ Comet “ ist wahrscheinlich ein Überbegriff, den Sie hier verwenden könnten. WebSockets werden jedoch eine wünschenswertere Option sein (wenn sie froh sind, dass es sicher ist).
quelle
Node.js ist die Antwort. Ich habe damit ein Echtzeit-Multiplayer-Shooter-Spiel entwickelt, und es dauerte ungefähr einen Monat, bis es fertig war. Es stellte einige einzigartige Herausforderungen dar, so dass es eine minimale Latenz haben musste und alle Spieler innerhalb eines anderen synchron bleiben mussten, damit das Konzept funktionierte.
Die Clientseite und die Serverseite sind beide in Javascript geschrieben und teilen Klassen / Logik untereinander. Das beginnt zu zählen, wenn Sie versuchen, Fehler zu beheben, da Sie nicht alles zweimal implementieren müssen.
Das Spiel ist seit ungefähr 2 Monaten ohne Neustart aktiv und es wurden Tausende von Matches gespielt.
Socket.io ist eine Implementierung von Sockets und verwendet node.js, ist jedoch an dieser Stelle für ein Spiel zu aufgebläht. Auf github gibt es noch andere Websocket-Implementierungen für node.js und auch Beispiele für Spiele, die es verwenden.
quelle
Sie könnten immer nur AJAX und eine Art Nachrichtenwarteschlange verwenden. ActiveMQ ist ein gutes Beispiel. Wenn Sie ActiveMQ auf dem Server ausführen, kann Ihr JavaScript Nachrichten senden und empfangen. Legen Sie einfach fest, dass jeder Spieler einen eindeutigen Namen hat, und senden Sie Nachrichten an den anderen Spieler.
quelle
Sie könnten versuchen, http://easywebsocket.org/ zu verwenden , es ist einfach zu implementieren und es ist eine serverlose Lösung, die auf websocket basiert :)
quelle
Derzeit verwende ich Folgendes : http://code.google.com/p/phpwebsocket/ als meinen zu testenden Socket-Server. Es ruft die C-Buchsen an, an die Sie sich gewöhnt haben. Kann von Nutzen sein.
quelle
Wir haben an einer Multiplayer-Plattform gearbeitet, die Sie vielleicht interessieren könnte. Sie können unser Projekt unter www.16cubes.com sehen - wir stellen eine einfache Javascript-Ebene zur Verfügung, um Peer-to-Peer-Kommunikation zu ermöglichen. Es basiert in gewisser Weise auf dem Comet-Prinzip, und wir haben vor, auf die Verwendung von Websockets umzusteigen, da diese etwas standardisierter werden. Auf der anderen Seite bieten wir einige Funktionen von der Stange an, wie automatische Gegnerabstimmung, Spiel-Chat, Facebook-Freunde mit einem Klick-Einladung usw.
Wir haben ein Demo-Tic-Tac-Toe, Sie können sich wahrscheinlich eine bessere Vorstellung machen, wenn Sie es sehen. Und ja, Sie können auch anonym spielen. Keine Anmeldung erforderlich, wenn Sie nicht möchten. Es gibt weniger als 10 Javascript-APIs, für die Sie Code benötigen, und die sind unter www.16cubes.com/documentation verfügbar
Wir sind aktiv auf der Suche nach Rückmeldungen. Lassen Sie uns also sowohl gute als auch schlechte wissen
quelle
Schauen Sie sich dieses Framework an, das ich speziell für das Erstellen von Echtzeit-Mehrspieler-HTML5-Spielen mit node.js in einem Client / Server-Ansatz erstellt habe. Wo der Server die Spielsimulation ausführt und Spieler nur Eingaben senden.
Demo: http://vimeo.com/24149718
repo: https://github.com/onedayitwillmake/RealtimeMultiplayerNodeJs
quelle