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.
Die neusten Browserversionen haben doch WebRTC (
http://caniuse.com/#feat=rtcpeerconnection) - und das ist ein User-Datagram-Procotol [UDP] (
https://w3c.github.io/webrtc-pc/), das man durchaus auch für Multiplayer-Games verwenden kann.
WebRTC: the future of web games
https://www.html5rocks.com/en/tutorials/webrtc/datachannels/
Nachtrag: Auch Flash kann kein UDP.
Flash kann schon seit Version 10.1 UDP-Verbindungen übers
Real-Time Media Flow Protocol (RTMFP).
Adobe RTMFP FAQ
"RTMFP is based on UDP [...] RTMFP can help reduce the bandwidth costs for direct, live, real-time communication solutions, such as audio and video chat and multiplayer games."
Ich frage mich schon seit einiger Zeit folgendes:
Ist ein Multiplayer 2d Jump&Run Browsergame mit Javascript realisierbar.
Kommt immer auf die Anzahl der Spieler an, wie synchron das ganze laufen soll und auch wie hektisch das Spiel ist. Du könntest es durchaus auch mit TCP und einem Lockstep-Protocol versuchen. Grob gesagt sendet man beim Lockstep-Protocol nur Tastatur-Commandos an einen GameServer - und der sammelt die Tastatur-Commands aller Spieler und verteilt sie mit zwei GameTicks Verzögerung zeitgleich an die Spieler, damit jeder exakt das gleiche sieht. Die empfangenen Tastatureingaben werden dann auf den User-Clients auf die diversen Spielfiguren angewandt - gleiche Berechnungen führen dann zu gleichen Animationen. Dadurch ist gewährleistet, dass alle zeitgleich das gleiche sehen. Lockstep hat man auch schon in älteren Games wie Doom, Age Of Empires oder FIFA eingesetzt - und viel weiter sind Browser technisch gesehen ja auch nicht. So kramt man heutzutage eben die alten Techniken für Browsergames wieder aus, was aber nicht heißt, dass das in heutigen Games überhaupt nicht mehr verwendet wird. Das gibts durchaus noch.
Interessante Artikel dazu:
Deterministic Lockstep - Keeping simulations in sync by sending only inputs[/
1500 Archers on a 28.8: Network Programming in Age of Empires and Beyond
Aber bei einem Multiplayer-Jump&Run müsste man wohl noch ein bisschen tricksen und die Grafiken leicht interpolieren, damits wirklich flüssig aussieht. Evtl könnte man auch auf eine
Snapshot Interpolation setzen. Hängt aber wie gesagt stark vom Spiel ab, welchen Weg man geht. Das eine, das andere, was ganz anderes, oder irgendeinen Mix davon. Bei Multiplayer-Games wirds halt immer kompliziert, wenn die Latenz nicht passt. Und da kommts immer auf den schwächsten Spieler an. Da muss man halt viel rumexperimentieren, was sich am besten eignet. Normale TCP-Websockets halte ich für so ein Game aber für ausreichend.