Live data from Hacker News

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

cleoselene.com

11–20 of 62 posts

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

#11
BYOND/Space Station 13 is built upon this model.

Sprite sheets are png with ztxt blocks with meta/frame info and a list of drawing operations to be done to construct vsprites based on any runtime server side operations done on the sprites.

There is limited client coding via popup Web view windows and a few js apis back to the client but nothing you can build too much off of.

(SS14 brings this model to an open source c# framework called The Robust Engine but has some limitations related to maintainer power tripping over who should be allowed to use their open source project.)

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

#12
post #8

Earlier quoted context omitted.

Amazing! hahaha.. Tip: Arrows + Z (shoot)

In my case, Z for shooting works only rarely. Usually nothing happens. How does the game code query the key?

i think, after shooting, it has to recharge. When recharged, the ship momentarily blink-expands in yellow. This means it is ready to fire again.

But sometimes, i been left without a recharge, and without shooting, and I don't know why.

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

#14

"We stream drawing primitives instead of heavy pixels or complex state objects." This is cool ... but I suspect just pushing video frames like Stadia etc did is just as efficient these days and a lot less complicated to implement and no special client really needed. Decent compression, and hardware decode on almost every machine, hardware encode possible on the server side, and excellent browser support.

On the other hand, you could take a list of primitives from, say, the JS Canvas API, come up with a format that can encode all of them and use that as your protocol. Bam, with that you get one client for any game that uses JS Canvas.

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

#15
post #8

Earlier quoted context omitted.

Amazing! hahaha.. Tip: Arrows + Z (shoot)

In my case, Z for shooting works only rarely. Usually nothing happens. How does the game code query the key?

exactly as @iku commented.. there is a cooldown time between shots.. it pulses when you're ready and resets when you try before it's loaded!

It seems that I should add a better visual feedback haha

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

#16
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 https://www.abstra.io/en instead

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

#17
post #13

"Impossible to Cheat" Let me tell you that there is cheating in cloud rendering solution ( Stadia, AWS Luna ect ... ) So 100% there is cheating in your solution. It's trivial to read the screen.

You're right

Especially with today's computer vision

The cheating I'm more protected (just as stadia, etc..) is regarded to client/code exploitation

which we don't have to worry about in this approach

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

#18
post #9

Cool! Besides the productizing or making a framework, I’m trying to understand if this is different than the elementary idea (which probably every game dev who worked on game networking has tinkered with) of sending inputs to the server and then sending player positions back to all the clients…? I think even smaller footprint would be position: two or three floats x,y(,z) instead of shapes too? Anyway this is always…

You're correct

My approach lives in some place between video streaming and data streaming in terms of performance

It's not intended to be faster than a proper client that brings a lot of logic and information that diminish the amount of information required to be transfered

My proof of concept is more about: Can my dev exp be much better without relying on the video streaming approach? (which is havier)

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

#19

BYOND/Space Station 13 is built upon this model. Sprite sheets are png with ztxt blocks with meta/frame info and a list of drawing operations to be done to construct vsprites based on any runtime server side operations done on the sprites. There is limited client coding via popup Web view windows and a few js apis back to the client but nothing you can build too much off of. (SS14 brings this model to an open source…

Amazing! Never heard of this byond/ss13/14

Thank you for the reference!

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

#20
post #3

IMO eliminating as much client side authority as possible is a very good foundation for MMOs where the latency is acceptable or factored into all aspects of the game (looking at old school runescape as an example). Very cool project!

Thank you!
Post reply on HN