Ist es möglich, Multiplayer-Spiele mit HTML5 zu entwickeln?

9

Ich weiß, dass HTML5 großartig für Web-Spiele ist, aber ich weiß nicht wirklich, ob es möglich ist, Online-Spiele mit mehreren Benutzern zu entwickeln, alle synchron zu halten und Anmeldungen usw. zu verwalten. Ist das möglich?

arrrrgv
quelle

Antworten:

7

Sie können es nicht allein mit HTML5 schreiben. Aufgrund der Sicherheitsbeschränkungen für Browser-Skripte und zur Verhinderung von Betrug benötigen Sie immer Skripte und einen Server, um die Kommunikation zwischen Benutzern zu verwalten.

Viele Leute haben Multiplayer-HTML5-Spiele geschrieben, sogar ich. Die Verwendung von HTML5 selbst ist wahrscheinlich nicht der wichtigste Teil davon. Die meisten benötigten Dinge (wenn nicht alle) waren auch in HTML 4.01 verfügbar. Die Ausnahme ist Canvas, aber Canvas ist langsamer als SVG, und SVG war bereits in vielen Browsern verfügbar.

Ich denke, was den "HTML5-Spiel" -Manie wirklich hervorgebracht hat, ist die Fähigkeit, serverseitige Apps in Javascript zu erstellen. Dies bedeutet, dass alle clientseitigen Programmierer plötzlich das gesamte System selbst erstellen können, und sie sind normalerweise die kreativen Leute, wenn es um Dinge wie Spiele geht. Ganz zu schweigen davon, dass JS so einfach ist, dass sogar Ihre Oma damit programmieren könnte. Vielleicht.

Update nach Kommentar von OP:

Eine übliche Architektur für ein Browsergame wäre

          Client                                     Server
|-----------------------|                   |---------------------|
View - input/output logic - Communication - Validation - Game World
              |                                              |
   client database (if needed)                    server database (if needed)

Oder in Bezug auf tatsächliche "Sprachen":

  • Client-Ansicht: HTML5 (möglicherweise mit angle.js, habe noch nicht getestet, wie schnell es mit LOTS ist. Schauen Sie auch in raphael.js nach "Grafiken").
  • Client-Logik: JavaScript (JQuery / Vapor / Plain / Was auch immer)
  • Client-Datenbank: WebSQL (Teil der HTML5 "Suite", nehme ich an)
  • Kommunikation: JSON (Javascript-Objektnotation, im Wesentlichen serialisierte Javascript-Objekte) über socket.io (JS-Bibliothek zur automatischen Erkennung optimaler Kommunikationsprotokolle)
  • Serversprache: auch JS (node.js, wenn Sie TONNEN gleichzeitiger Benutzer auf wenigen Kernen haben, sind auch andere Lösungen verfügbar)
  • Validierung: Stellen Sie einfach sicher, dass Ihre EINGEHENDEN Spieldaten (vom Client) gültig sind. Ausgehend muss nicht überprüft werden, auch nicht auf dem Client. Es wird als richtig angenommen. Immer .
  • Game World: Eine Sammlung VERIFIZIERTER Daten, die bei Eingang an alle Kunden weitergegeben werden
  • Serverdatenbank: couchdb, mongodb, welche Datenbank auch immer Sie mit rohen json-Objekten arbeiten können.

Da bist du ja. Ein komplettes Internet-Spiel, das nur mit Javascript und HTML geschrieben wurde. Schön.

Tor Valamo
quelle
Ich finde Ihre Antwort sehr interessant. Können Sie mir einen kleinen Rat geben, welche Teile ich Ende an Ende bauen soll (was am wichtigsten ist) und welche Technologien in jedes Teil einfließen? Tut mir leid, ich versuche nur zu wissen, wie man etwas zuverlässiges baut . Vielen Dank!
Arrrrgv
1
+1, HTML5 ist der letzte Schrei, aber was die Leute ihm zuschreiben, sind hauptsächlich 4.01-Funktionalität und JavaScript. Könnte ich Sie jedoch bitten, JavaScript nicht einfach aufzurufen? Es hat seine Vorteile, aber wenn Sie echte Programme schreiben wollen, müssen Sie ein echter Programmierer sein. JavaScript nimmt die Aufgaben der Variablendeklaration und der Speicherverwaltung weg, erleichtert jedoch nicht das Organisieren Ihres Codes und das Ermitteln von Algorithmen und Datenstrukturen, und Sie benötigen auf jeden Fall eine Einstellung und Erfahrung des Programmierers für diese Aufgaben.
aaaaaaaaaaaa
@eBusiness Ich meine mit easy, dass es in Bezug auf die Programmierung so komprimiert ist und seine Anwendungsfälle zu Tode dokumentiert sind. Sie können immer ein Tutorial oder eine Funktion finden, die das tut, was Sie wollen. Und es ist einfach einzurichten (Sie müssen nicht, es ist bereits im Browser).
Tor Valamo
@arrrrgv aktualisierter Beitrag mit Antwort auf Ihre Frage
Tor Valamo
1
+1 für eine nette Antwort, obwohl ich bezweifle, dass der Aufstieg von HTML5-Spielen irgendetwas mit serverseitigem JavaScript zu tun hat. Genau genommen ist JS nicht einmal Teil von HTML5. Ich denke, es sind die neuen Funktionen wie Canvas, WebGL, Audio und Video sowie lokaler Speicher, die HTML5-Spielen einen Schub verleihen. Und natürlich die Tatsache, dass es neu und hochgespielt ist, so dass jeder auf den Zug springt.
Bummzack
3

Schauen Sie sich den Artikel unter http://smus.com/multiplayer-html5-games-with-node und auch die mit dem Artikel gelieferte Quelle an. Beachten Sie, dass hierfür auch JavaScript für die Vernetzung verwendet wird.

FrenchyNZ
quelle
2
Bitte schreiben Sie "JavaScript" als einzelnes Wort, um Verwirrung zu vermeiden.
o0 '.
Eines Tages wird Node.js nicht mehr erforderlich sein - wenn die browserübergreifende Unterstützung für Web-Sockets weit verbreitet ist.
Ingenieur
Ich verstehe nicht, warum die browserübergreifende Unterstützung für Web-Sockets die Notwendigkeit einer Serverkomponente außerhalb eines Browsers ändern würde. Sie sollten ein Multiplayer-Spiel immer so programmieren, dass die Clients eine Verbindung zu einem zentralen Server herstellen und nicht direkt von Client zu Client.
Schockieren
1
Schauen Sie sich auch NowJS ( nowjs.com )
Tim Holt
Web-Sockets sind für jede Anwendung von Natur aus unsicher. Aus diesem Grund wurde die geplante Implementierung von so vielen Browsern abgebrochen. Sie können keine Umgebung zulassen, die Zugriff auf "überall" erhält und gleichzeitig Eingaben von "überall" entgegennehmen kann.
Tor Valamo