Du bist nicht angemeldet.

Werbeanzeige

Azasel

unregistriert

1

23.06.2017, 15:29

Multiplayer 2d Jump&Run Browsergame mit Javascript realisierbar

Guten Tag liebe Spieleprogrammierer,
Ich frage mich schon seit einiger Zeit folgendes:
Ist ein Multiplayer 2d Jump&Run Browsergame mit Javascript realisierbar.
Ich weiß, das man diese Frage nicht so einfach beantworten kann, da mehrere zusätzliche Faktoren eine Rolle spielen.
Aber ich versuche das mal an einem anderen Spiel zu veranschaulichen, welches übrigens mit Adobe Flash programmiert wurde (bzw. Actionscript, ich weiß nicht wie man das richtig ausspricht):

Was mir am meisten sorgen bereitet ist eben die Performance des Spiels, wenn man das in JS programmieren würde.
Was meint ihr, wenn es mit Flash so flüssig läuft, wird das dann auch mit Javascript und Nodejs genauso laufen?
Im Spiel bzw. in einem Raum sollte ca. Platz für 30 Spieler sein, bekommt man das mit Javascript auch hin?
(Oder wären noch andere Technologien erforderlich?)

David Scherfgen

Administrator

Beiträge: 10 198

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

23.06.2017, 15:50

Von der Performance her: Ja, das geht. JavaScript wird von heutigen Browsern sehr gut optimiert und meist sogar in echten Maschinencode kompiliert. Mit WebGL kriegst du auch sehr gute Grafik-Performance.
Ich sehe das Problem eher in der Netzwerkkommunikation. Für Echtzeit-Multiplayer-Spiele nimmt man normalerweise UDP statt TCP. Und da gibt's noch keine browserübergreifende Möglichkeit, das mit JavaScript umzusetzen.

Azasel

unregistriert

3

23.06.2017, 16:12

Ich sehe das Problem eher in der Netzwerkkommunikation. Für Echtzeit-Multiplayer-Spiele nimmt man normalerweise UDP statt TCP.

Müsste ich mir da Sorgen machen, falls ich vor hätte das Spiel irgendwann mal zu programmieren?
Ich dachte, mit Nodejs würden alle oder zumindest die meisten Probleme zu bewältigen sein.
Muss man dann zu Php greifen oder wie?

David Scherfgen

Administrator

Beiträge: 10 198

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

4

23.06.2017, 16:31

Das hat nichts mit PHP oder Node.js zu tun. Die laufen doch nur auf dem Server. (PHP wäre übrigens als Sprache für den Server-Teil eines Echtzeit-Multiplayer-Spiels keine gute Wahl, denn dafür ist es einfach nicht ausgelegt.)
Der Client läuft mit JavaScript (da gibt's eigentlich keine Alternative, wenn es im Browser laufen soll), und das kann halt kein UDP, wodurch es bei Echtzeit-Spielen zu Problemen mit der Netzwerkkommunikation kommen könnte.

Azasel

unregistriert

5

23.06.2017, 16:59

Der Client läuft mit JavaScript (da gibt's eigentlich keine Alternative, wenn es im Browser laufen soll), und das kann halt kein UDP, wodurch es bei Echtzeit-Spielen zu Problemen mit der Netzwerkkommunikation kommen könnte

Hmm, verstehe :hmm:
Danke sehr.

BlueCobold

Community-Fossil

Beiträge: 10 890

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

6

23.06.2017, 17:26

Ganz ehrlich, ich bin kein Fan von diesem "TCP ist völlig untauglich" Mythos. Ja, es gibt Nachteile und ja, es ist etwas langsamer, es hat aber auch einen riesigen Haufen Vorteile gegenüber UDP, welche man speziell für einen Neuling dringend erwähnen sollte. Wenn du mich fragst, leg los mit TCP, das wird auch so schon kompliziert genug für dich werden, ohne dass du dich noch um die ganzen Probleme mit UDP kümmerst. Ist ja nicht so als sei TCP 'ne Art eMail oder irgendwas, wir reden hier über Millisekunden.
Bring dein Spiel zum Laufen. Das allein wird schon schwer genug.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

David Scherfgen

Administrator

Beiträge: 10 198

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

7

23.06.2017, 17:31

Darüber haben wir ja schon einmal diskutiert. Mit JavaScript hat man sowieso keine Wahl. Entweder es klappt, oder es klappt nicht. Wenn es nicht klappt, dann gibt's keine Möglichkeit auf UDP umzusteigen. Auf dieses Risiko hinzuweisen halte ich schon für sinnvoll, wenn davon die Entscheidung abhängen könnte, ob man überhaupt JavaScript nutzen möchte.

BlueCobold

Community-Fossil

Beiträge: 10 890

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

8

23.06.2017, 17:34

Jo. Ist so. Deswegen würde ich einem Neuling aber noch immer nicht unter die Nase halten, dass Multiplayer-Jump'n'Runs im Browser völlig unmöglich seien (denn so klingt es). Wie gesagt hat er ohnehin genug andere Dinge zu erledigen, die schwer genug sind. Soll er nehmen was da ist. Wir reden hier nicht über den nächsten AAA First-Person-Shooter.
Echt, ich kann bei solchen Antworten nur den Kopf schütteln und mich fragen, wie fern wir hier eigentlich von der Realität leben.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

David Scherfgen

Administrator

Beiträge: 10 198

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

9

23.06.2017, 17:35

Ich habe nicht gesagt, dass es "völlig unmöglich" ist, und auch nicht, dass TCP "völlig untauglich" ist. Ich habe gesagt, dass es zu Problemen kommen könnte. Die Frage war, inwiefern ein Echtzeit-Multiplayer-Spiel mit JavaScript realisierbar ist. Warum sollte man da nicht auf dieses grundlegende Problem hinweisen?

BlueCobold

Community-Fossil

Beiträge: 10 890

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

10

23.06.2017, 17:36

Trotzdem klingt die Antwort für mich wie: "Vergiss es, geht nicht". Und es kommt mir ebenfalls so vor, als habe Azasel genau dasselbe verstanden.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige