10 ms·
This could serve as a demonstration what a long way way web sockets/rtc/channels still have to go, since the experience is much worse even considering the ping
by blattimwind 6y ago
This could serve as a demonstration what a long way way web sockets/rtc/channels still have to go, since the experience is much worse even considering the ping compared to 20 year old netcode.
- deleted 6y ago[deleted]
- bluetomcat 6y agoI remember playing CS around 2000 on a 333-MHz Pentium II with an ATI Rage graphics card, and it was a much smoother experience in every way.
- hombre_fatal 6y agoYou're going to hang the state of networked browser gaming on this random person's netcode implementation? Go to r/GameDev and you can find some redditor Unity projects built on UDP that are even worse, but you aren't going to say "wow, UDP sux". Check out something like https://krunker.io/ https://krunker.io/ which gives me a surprisingly good FPS experience despite my distance from the server. Browser gaming does take some thought though, to be sure. UDP via WebRTC is relatively new and isn't trivial. And I know some games get around TCP head of queue blocking by opening up 2+ WebSockets.
- 40four 6y agoKrunker is fantastic. I have wasted many hours in that game :)
- tashoecraft 6y agoThat was impressive, on mobile and I was able to just hop in and start playing. Not something I’d play, but just impressed that I was able to so easily
- jakearmitage 6y agoThis is not random. Prediction and compression is all GoldSrc original, from leaked sources. WebRTC/WebSocket is HumbleNet.
- ceedan 6y agodamn krunker is really not bad at all
- the_svd_doctor 6y agoAmazing experience there with kunker. So snappy. Thanks for sharing.
- pilaf 6y agoHaxBall [1] and WebLiero [2] are two other games with pretty decent WebRTC P2P netcode by the same author. [1] https://www.haxball.com https://www.haxball.com [2] https://www.webliero.com https://www.webliero.com
- deleted 6y ago[deleted]
- baby 6y agoHow good is krunker? Don't have a mouse but maybe I could get one.
- KapKap55 6y agoIt's quite fun and has a surprisingly deep movement system. The userbase is very young so if you have any FPS experience you will shred through the average player. Expect to get annihilated by someone who knows the movement system though. You'll know someone's using it when you see it, since they'll be moving at 999 units per second and circle strafing you to death.
- seabass 6y agoDo you have any more information on getting around head-of-queue blocking by opening up multiple websocket connections instead of just one? Seems like an interesting solution.
- lqet 6y agoThen again, the netcode of the original HL1 engine was extremely good for its time.
- moolcool 6y agoOn a similar note, I think people were _way_ too early to celebrate the death of Flash (security issues aside of course). Developers were making content in 2000 which their contemporaries 20 years later don't come anywhere close to in terms of performance, design, or responsiveness.
- ehnto 6y agoThat style of content just disappeared or turned into video only as far as I can tell.
- csharptwdec19 6y agoFlash had more than just security issues. There were definite limits on complexity. A great example is the original Binding of Isaac; written in flash, but near the end everything was so precarious that backups had to be made before certain publishing stages because sometimes it would corrupt the files it was trying to build (Due to the complexity.)
- josefx 6y agoIf bugs in flash forced people to use source control for complex projects then I would call that a feature.
- StillBored 6y agoWell ignoring those issues, is there a html/websocket "framework" which works like flash did? AFAIK, "zero code" systems still haven't reached the level of hypercard (the spiritual predecessor to flash) when it comes to being able to define event->action with a mouse, much less expanding them to the full capabilities of flash.
- redka 6y agoI dunno. I implemented my games'[1] netcode on top of WebRTC and it runs just as well as proper UDP stuff. If you configure it be unreliable and pack everything into small binary commands then it behaves exactly like you'd want for a fast-paced multiplayer game. Obviously most web games use websockets for networking but it is certainly possible (albeit much more difficult) to have very fast netcode in a browser game. [1] https://redka.games/mages https://redka.games/mages
- viewer5 6y agoWhat do you mean by "small binary commands"?
- edoceo 6y agoUse websocket in binary mode, pack operations into tiny messages.
- redka 6y agoactually binary websockets won't do in this case since the underlying protocol is still TCP with automatic retransmission mechanism which kills performance for very fast-paced games. You have to use WebRTC in that case
- redka 6y agoInstead of cramming ecoded json into the data channels, like you'd with websockets, you can build binary buffers with all the data that has to be communicated between server and client. For example movement commands like up/down/left/right alongside some flags like isJumping can be packed into a singe uInt8
- strbean 6y agoThis appears to strictly use WebSocket, and not touch WebRTC at all. It is no surprise that a TCP text-based protocol sucks for realtime gaming purposes.