Was sind die möglichen Nachteile der Verwendung von (clientseitigem) JavaScript beim Erstellen eines Multiplayer-Spiels?
Spielbeschreibung: Es ist ein MMORPG / RTS. Das bedeutet, dass die Spieler aktiv zu Strukturen in der Welt beitragen und einen Großteil der Inhalte selbst erstellen.
2d
multiplayer
javascript
jcora
quelle
quelle
Antworten:
Es ist in Ordnung, wenn:
quelle
Ob Ihr Spiel für die JavaScript-Entwicklung geeignet ist oder nicht, hängt vom Spiel ab. Sie haben Ihr Spiel nicht beschrieben, daher können wir die Frage im Titel nicht beantworten.
Ich kann jedoch sagen, dass Ihr Hacking-Problem hier kein Problem darstellt. Nicht weil JavaScript nicht gehackt werden kann (es kann und leicht), sondern auch jede andere clientseitige Technologie. Einer der Grundpfeiler der Multiplayer-Spieleentwicklung ist "Vertraue niemals dem Kunden". Gestalte dein Spiel so, dass alles, was du vor Hacking schützen musst, auf dem Server ausgeführt wird, da der Client gehackt wird. Dies bedeutet, dass nur UI-Befehle vom Client gesendet werden (z. B. "Der Spieler hat auf die Schaltfläche" Bombe "geklickt") und die Ergebnisse der Spieleraktionen auf dem Server berechnet werden. Anschließend sendet der Server die Ergebnisse dieser Aktionen an den Client zurück.
Da Sie Ihr Spiel unabhängig von der Technologie, auf die Sie sich verlassen haben, unter der Annahme entwerfen sollten, dass die clientseitige Komponente gehackt wird, spielt die Hackbarkeit von JavaScript bei der Entscheidung, ob JavaScript verwendet werden soll oder nicht, keine Rolle.
quelle
Leute können den Client-Code ändern, um zu betrügen, das ist ein Problem für jedes Multiplayer-Spiel. Wenn Reaktionsgeschwindigkeit oder schnelles Lösen mathematischer Aufgaben Teil des Spiels sind, können Sie Betrug nicht vollständig verhindern.
Für jedes andere Spielelement müssen Sie sicherstellen, dass der Client keine Informationen erhält und nicht erhalten kann, die dem Spieler verborgen bleiben sollen. Und natürlich muss der Server überprüfen, ob jede Aktion eines Spielers legal ist.
Das größte Problem, das ich in JavaScript-Spielen sehe, ist, dass viele Browser zum Stottern neigen, insbesondere Firefox war beim letzten Überprüfen ziemlich schlecht. Aus diesem Grund ist JavaScript keine gute Wahl für zeitkritisches Gameplay. Aber für rundenbasierte oder zumindest langsame Spiele kann JavaScript recht gut funktionieren.
quelle
Das Ändern von Javascript-Variablen ist mit Tools wie Firebug (für Firefox) oder den integrierten Entwicklertools von Safari / Chrome recht einfach. Sie können einfach Javascript in die Konsole eingeben und es wird ausgeführt. Verlassen Sie sich aus Sicherheitsgründen in der Regel nicht auf die Clientseite. Abgesehen davon bietet Ihnen Javascript mit der Einführung des HTML5-Canvas-Elements einige echte Möglichkeiten für einfache Spiele (es gibt beispielsweise eine vollständige Javascript / HTML5-Version von Angry Birds).
quelle