Ich frage mich, ob die Kombination von Javascript-Clientseite mit PHP / MySQL-Serverseite eine gute Idee für HTML5-Echtzeit-Multiplayer-Browsergames (im kleinen Maßstab) ist.
Mein technisches Wissen ist sehr begrenzt, und obwohl ich in Zukunft Node.js lernen möchte, ist die Lernkurve im Moment ziemlich groß.
Da ich bereits mit PHP vertraut bin, würde es meiner Meinung nach viel schneller funktionieren.
Die Skala, die ich denke, ist 2-8 Spieler zurzeit. Und versuchen, die Anzahl der Client-Server-Nachrichten so gering wie möglich zu halten.
Die Werte, die ich speichern / verarbeiten möchte, sind:
- Spielername und ID.
- X- und Y-Position.
- Gesundheit.
- Ausgestattete Gegenstände (maximal 8 Plätze, wahrscheinlich weniger).
- Aktionen (Gehen, Angreifen, Verwenden usw., jedoch jeweils nur 1 Aktion / Spieler).
- Aufzählungspunkt X, Y-Koordinaten und Flugbahn.
- Name der Gilde / des Clans.
- Und einige grundlegende Chat- / Mailing-Funktionen.
Ich vermute, obwohl es nicht die beste Lösung ist, aber solange ich die Logik klein halte, ist dies vollständig machbar. Habe ich recht?
javascript
networking
html5
client-server
php
justanotherhobbyist
quelle
quelle
Antworten:
Für ein Echtzeitspiel möchten Sie die Latenz minimieren. Hier sind zwei Tipps, um dies zu erreichen, mit Hinweisen zu PHP und Node:
Ich selbst finde node.js sehr einfach zu erlernen und da Sie sowieso einiges an JavaScript codieren müssen, würde ich Ihnen empfehlen, es auszuprobieren. Schauen Sie sich zumindest die Tutorials zu socket.io an, um zu sehen, wie einfach es ist, einen Echtzeit-Kommunikationskanal einzurichten.
quelle
Zusammen mit Tapios Antwort möchte ich vorschlagen, nur (wenn möglich) Benutzereingaben (Klicks und Tastatureingaben) an den Server zu senden und sowohl Server als auch Client das Spiel emulieren zu lassen. Bei jedem N-Häkchen bittet der Client den Server um eine Synchronisierung und der Server antwortet mit allen Informationen, die der Client zum Rendern des Spiels benötigt, z viel.
Natürlich müssen sowohl der Server als auch der Client genau die gleiche Implementierung des Spiels haben, damit dies etwas mehr Arbeit bedeutet. Wenn Sie sowohl auf dem Client als auch auf dem Server perfekte Implementierungen haben, muss der Client seltener synchronisieren.
Dadurch wird das Client / Server-Messaging und die Latenz verringert. Dies würde auch dazu beitragen, Betrug zu verhindern.
Vorausgesetzt, Sie erstellen dieses Spiel in JavaScript, lohnt es sich möglicherweise, das Back-End auch in JavaScript mit NodeJS zu schreiben. Auf diese Weise können Sie die JavaScript-Implementierung Ihres Spiels sowohl für den Server als auch für den Client wiederverwenden.
quelle
Ich empfehle Nodejs zu lernen. Wenn du jetzt schon Javascript hast, wird es nicht so schwer. Ich habe mit Nodejs schnell ein TRON-Multiplayer-Spiel erstellt und es war mein erster Tag damit. (Oh, und der Client war eine HTML5-Zeichenfläche. Ich habe nur Tasteneingaben gesendet, wie in den anderen Kommentaren erwähnt.)
Schauen Sie sich ein Modul mit dem Namen nowjs an. Viel Glück!
quelle