frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Show HN: I built the first scripting language for multiplayer game dev

https://docs.allout.game/scripting/syntax
5•joshuamanton•5h ago
Hi HN,

I'm one of the engine programmers at All Out Games (https://allout.game/), a multiplayer-first gaming UGC platform where creators can make and play games with their friends. For scripting we wanted our creators to be able to jump in and create game mechanics without having to think about networking. If a developer had to manually send packets to/from client/server to get things to happen then we have failed. It is particularly bad if you are using AI tools because they struggle to keep in mind what code is meant to run where (client, server, or both) and remembering to manually sync pieces of data when needed.

To this end, in our networking layer the server will automatically send binary diffs of its game state to all the clients every few frames; then clients would roll back their game state to the last "server-approved" game state, apply the diffs, then resimulate forward to get back to the future. The client never has to ask the server for permission, it can just do whatever action and if it turns out that action was invalid (maybe your character got stunned by another player and your client didn't know it yet) it would automatically be corrected on receipt of a game state update from the server. In delay-based netcode you would have to make every little feature be rollback/resimmable to get this behavior, but we just rollback/resim everything all the time so you don't have to think about it. The engine allocates one large block of memory from the OS for the game state and we have custom heap and arena allocators to divvy that chunk up.

The main requirement here is that the we have to be in control of the memory, and it has to be easily diffable. We can't be manually traversing trees of objects individually allocated from the OS, jumping through tons of pointers. In fact pointers are especially bad because of ASLR; the address space of the server differs from that of the client, so pointers have to be manually patched after applying game state diffs. We also want the language to be typesafe, and it has to be able to run interpreted because on iOS you aren't allowed to download code and run it (again, we are a UGC platform so downloading and running games is what we do) unless it is interpreted.

For these reasons, all the usual scripting languages are out of the running. Maybe there is one out there that satisfies our needs but I couldn't find one. So, I made a custom scripting language. There are tons of other cool things I was able to do because I was making the language for this specific use-case, and I'd like to go into those in a blog post or something in the future.

If you want to try it out visit https://allout.game/create and use code `KHNGJP` to download the All Out Editor. We can also add you to the #game-devs channel in our Discord (https://discord.gg/QCFVZP99) where you can have direct access to the team and other creators, DM me (shwa) for access.

Comments

MCProMatt•5h ago
How do you handle sandboxing? e.g. can I as a developer write arbitrary memory that gets replicated? Can I access other server memory and steal your secrets?
joshuamanton•5h ago
All pointer reads/writes are sandboxed. The game state is a power of two number of bytes (64MB right now, might have to bump this up as people make more complex games), so we can use masking to quickly clamp any pointer to the sandbox by computing `game_state_base + (<pointer> & (game_state_size-1))` before doing the access. That masking makes sure you can't access anything outside the game state, but you can corrupt your own game state if you'd like!

Fosdemflix

https://fosdemflix.netlify.app/
1•todsacerdoti•23s ago•0 comments

Game about Data of America

https://americaindata.com/
1•fidicen•29s ago•0 comments

New ThinkPad T14 is a repairable laptop with LPCAMM2 RAM

https://liliputing.com/lenovo-thinkpad-t14-gen-7-is-a-repairable-laptop-with-lpcamm2-memory/
1•heresie-dabord•1m ago•0 comments

Ion Drift is an Asteroids-style roguelite web game using assets from Endless Sky

https://iondrift.net/
1•meub•1m ago•1 comments

Show HN: OpenEHR-CLI – CLI and MCP server for working with openEHR artifacts

https://github.com/CaboLabs/openEHR-CLI
1•ppazos•3m ago•0 comments

Looking for testers for a location-based AI experiment

1•sharkgil•7m ago•0 comments

We're Training Students to Write Worse and to Use AI to Prove They're Not Robots

https://www.techdirt.com/2026/03/06/were-training-students-to-write-worse-to-prove-theyre-not-rob...
1•hn_acker•7m ago•2 comments

Show HN: We're on Women's Day Sale. Sign Up to Playtest Shop Crush

https://store.steampowered.com/app/2961120/Shop_Crush/
1•hollowlimb•8m ago•0 comments

Huawei PanguLM [pdf]

https://support.huaweicloud.com/intl/en-us/productdesc-pangulm/PanguLM%20Service_Service%20Overvi...
1•zlu•9m ago•0 comments

What's the deal with "age verification" and computers?

https://rudd-o.com/linux-and-free-software/what-is-going-on-with-age-verification-in-computers
1•Magnusmaster•11m ago•0 comments

Show HN: BottomUp- Translate Your Thoughts So AI Can Work For Your Neurotype

https://www.bottomuptool.com/
1•claythedesigner•11m ago•0 comments

SPA vs. Hypermedia: Real-World Performance Under Load

https://zweiundeins.gmbh/en/methodology/spa-vs-hypermedia-real-world-performance-under-load
1•todsacerdoti•12m ago•0 comments

Steve Jobs predicted "vibe coding" in 1997 [video]

https://twitter.com/musaabHQ/status/1582671928271118337
2•mba_lmh•12m ago•0 comments

Brain Computer Interfaces Are Now Giving Sight Back to the Blind

https://garryslist.org/posts/brain-computer-interfaces-are-now-giving-sight-back-to-the-blind
2•magoghm•13m ago•0 comments

Show HN: Hatice – Autonomous Issue Orchestration with Claude Code Agent SDK

https://github.com/mksglu/hatice/tree/main
1•mksglu2•13m ago•0 comments

Show HN: Free salary converter with 3,400 neighborhood comparisons in 182 cities

https://salary-converter.com/
2•jay7gr•14m ago•0 comments

[Removed]

https://mystudentfailedtheirmid.substack.com/p/if-muslims-accept-noahs-950-years
1•darkhorse13•16m ago•0 comments

More Is Different for Intelligence

https://fulcrumresearch.ai/2026/03/05/more-is-different-for-intelligence.html
2•etherio•17m ago•0 comments

What if CLIs exposed machine-readable contracts for AI agents?

https://github.com/sonde-sh/sonde
1•valentinprgnd•20m ago•1 comments

The Monk at the Cocktail Party

https://www.sebs.website/the-monk-at-the-cocktail-party
1•Incerto•20m ago•0 comments

Weather Report #1

https://at-news.leaflet.pub/3mgg7ie7tdk2o
2•Kye•21m ago•0 comments

A Million Simulated Seasons [video]

https://www.youtube.com/watch?v=Vv9wpQIGZDw
1•carlos-menezes•21m ago•0 comments

Incrementally parsing LLM Markdown streams on server/client

https://github.com/nimeshnayaju/markdown-parser
1•nayajunimesh•21m ago•1 comments

Show HN: Kula – Lightweight, self-contained Linux server monitoring tool

https://github.com/c0m4r/kula
2•c0m4r•22m ago•0 comments

Show HN: Cross-Claude MCP – Let multiple Claude instances talk to each other

https://github.com/rblank9/cross-claude-mcp
2•rblank9•22m ago•0 comments

Poll

2•consumer451•23m ago•1 comments

I'm 60 years old. Claude Code has ignited a passion again

7•shannoncc•24m ago•1 comments

SYNX – a config format that parses 67× faster than YAML, built for AI pipelines

https://github.com/kaiserrberg/synx-format
2•Kaiserrberg•24m ago•0 comments

All of this refugee case's filings should be online

https://www.lawdork.com/p/law-dork-objection-refugee-case
1•hn_acker•25m ago•1 comments

Plasma Bigscreen – 10-foot interface for KDE plasma

https://plasma-bigscreen.org
25•PaulHoule•30m ago•6 comments