Live data from Hacker News

Show HN: Server-rendered multiplayer games with Lua (no client code)

cleoselene.com

31–40 of 62 posts

Re: Show HN: Server-rendered multiplayer games with Lua (no client code)

#31

The latency is a little intense from Australia … but surprisingly not as bad as I thought it would be. It was playable. I wonder if you can use speculative execution to play the game a few frames ahead and then the client picks what to display based on user input, or something like that. Each frame is 16ms, so you’d have to work ahead 6 frames to conquer the nominal latency of around 100ms, which may actually be 200m…

What you’re describing is called “rollback netcode”. It’s a pretty cool chunk of theory, usually used for fighting games which are extremely sensitive to latency. This explainer has some nice graphic demos

https://bymuno.com/post/rollback

Re: Show HN: Server-rendered multiplayer games with Lua (no client code)

#33
post #26
post #22

Cheating with AI will be possible even with server side rendering ; nvidia has released models able to learn to play - it's going to be very difficult to detect whether it's an AI or a human ; very impressive however

That’s a very different kind of cheating though. The kind of cheating this effectively makes impossible is cheating where a player has more information than they’re intended to have. If someone makes an AI that plays the game as a good player, then it’s effectively indistinguishable from a real player who is good. If they make it super-humanly good, then it would probably be detectable anyway. It’s still fair in the…

I’m also curious if an AI could process the screen feed quickly enough to compete in first-person shooter games. Seems like it would be difficult without extremely high end hardware for the foreseeable future?

Re: Show HN: Server-rendered multiplayer games with Lua (no client code)

#34

Reminds me of the cave X11 games. For game play I'd suggest slowing it way down.

good feedback! I'm seeing people really struggly with the control lag + speed.

I'm always biased since I test locally with no delay when developing :)

Re: Show HN: Server-rendered multiplayer games with Lua (no client code)

#35

The latency is a little intense from Australia … but surprisingly not as bad as I thought it would be. It was playable. I wonder if you can use speculative execution to play the game a few frames ahead and then the client picks what to display based on user input, or something like that. Each frame is 16ms, so you’d have to work ahead 6 frames to conquer the nominal latency of around 100ms, which may actually be 200m…

What you’re describing is called “rollback netcode”. It’s a pretty cool chunk of theory, usually used for fighting games which are extremely sensitive to latency. This explainer has some nice graphic demos https://bymuno.com/post/rollback

It's a common misconception that this is only used in fighting games. This technique was developed first in Duke Nukem, and then exploited heavily by Carmack in Quake, and subsequently refined and built upon in other AAA FPS games, specifically for the local player movement and shooting.

Re: Show HN: Server-rendered multiplayer games with Lua (no client code)

#36
post #26

Earlier quoted context omitted.

That’s a very different kind of cheating though. The kind of cheating this effectively makes impossible is cheating where a player has more information than they’re intended to have. If someone makes an AI that plays the game as a good player, then it’s effectively indistinguishable from a real player who is good. If they make it super-humanly good, then it would probably be detectable anyway. It’s still fair in the…

I’m also curious if an AI could process the screen feed quickly enough to compete in first-person shooter games. Seems like it would be difficult without extremely high end hardware for the foreseeable future?

It already exists.

Re: Show HN: Server-rendered multiplayer games with Lua (no client code)

#37
Client-server multiplayer games are already kind of a very specialized type of video playback if you squint a bit (you're transmitting entities rather than pixels).

This method of multiplayer you propose is inferior in basically every way: you can't do client-side prediction to make inputs feel smoother, and non-trivial scenes will surely take up more bandwidth than just transmitting entity deltas.

Re: Show HN: Server-rendered multiplayer games with Lua (no client code)

#38

Earlier quoted context omitted.

What you’re describing is called “rollback netcode”. It’s a pretty cool chunk of theory, usually used for fighting games which are extremely sensitive to latency. This explainer has some nice graphic demos https://bymuno.com/post/rollback

It's a common misconception that this is only used in fighting games. This technique was developed first in Duke Nukem, and then exploited heavily by Carmack in Quake, and subsequently refined and built upon in other AAA FPS games, specifically for the local player movement and shooting.

I don't think it's quite the same. Rollback netcode is like lockstep netcode, where the entire game is simulated locally and only inputs are networked. Since it's still only input being networked, network drops (or slow computers) affect everyone, requiring the simulation to slow down. Not just fighting games, but RTS games would do this. If you've ever played Starcraft/Warcraft 3 where it would freeze when a player disconnected.

With rollback/lockstep, there's no need for a server simulation at all. Most games are not doing that: the client's local simulations are less important than the server's simulation, even missing information (good to prevent wallhacks). Any dropped packets are handled with the server telling the client the exact positions of everything, leading to warping. Dropped packets and latency also only affect the problem player, rather than pausing everyone's simulations.

Re: Show HN: Server-rendered multiplayer games with Lua (no client code)

#39

Reminds me of the cave X11 games. For game play I'd suggest slowing it way down.

good feedback! I'm seeing people really struggly with the control lag + speed. I'm always biased since I test locally with no delay when developing :)

are there any affordances for prediction or replay? you could try to help network latency by having the server resimulate a small period of time roughly equivalent to the client's network delay - it's not perfect without client-side prediction but it could help

Re: Show HN: Server-rendered multiplayer games with Lua (no client code)

#40
post #10

Interesting approach! I've thought about a similar method after reading about the PLATO platform. When playing astro‑maze, the delay is noticeable, and in a 2D action game such delays are especially apparent. Games that don’t rely on tight real‑time input might perform better. (I'm connecting from Europe, though.) If you add support for drawing from images (such as spritesheets or tilesheets) in the future, and the c…

Yeah.. As people are playing and I'm watching their feedbacks it is becoming clear to me that the main source of input delay comes from the distance to the server.. the whole game is running in a single machine in SFO, so it makes total sense this bad exp in europe I think this is inevitable unless I add some optimism/interpolation in the client Also, thanks for the feedback! I will fix the Abstra landing page try ht…

You're running this at the airport?
Post reply on HN