frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

A Physics Engine with Incremental Rollback for Multiplayer Games

https://easel.games/blog/2026-rollback-physics
17•BSTRhino•22h ago

Comments

BSTRhino•22h ago
Hi everyone,

I'm making a game engine that uses rollback netcode for its multiplayer architecture. As far as I can tell, no physics engine supports incremental rollback thus far. This means the entire physics engine state has to be snapshotted every frame, which basically means it's infeasible to have large worlds with rollback netcode. I've made a physics engine which only snapshots the changes, and so now I think you can have large worlds, as long as most of the world is static. I think that's true in most cases, like when you're walking around a big spaceship for example, all the walls, tables, control panels etc don't really move. I wrote up a bit of a post to describe some of the cool things I discovered while making my own physics engine.

stephc_int13•37m ago
Have you considered the opportunity of using delta compression on snapshots? Like the internal state of the physics simulation, most of the gamestate itself don't change between frames. Using delta compression on the whole structure is doable.
gafferongames•31m ago
The thing the author is trying to solve for here is reducing the amount of CPU used on the client when it rolls back the simulation and re-simulates to keep server authority.

He does this by only rolling back and re-simulating only a subset of the world, greatly reducing the amount of CPU required. It's cool that he's approaching this from the point of view of adding support for it in the physics engine itself, vs. making it something that the game has to do themselves.

Delta compression is an unrelated technique which reduce the amount of bandwidth sent from server to client, by sending only the differences between the snapshot at baseline frame n and the current snapshot frame m on the server.

Just want to clear this up for anybody trying to follow along. Bringing in delta compression is an unrelated thing (but somewhat similar conceptually). It might confuse people to talk about these things at the same time, if they're really just trying to understand what the author is doing in the article.

cheers

- Glenn

BSTRhino•27m ago
Yes thank you, you understand perfectly and thank you for explaining. Also, I LOVE your series of blog posts, thank you for making them!

Just to add to the general discussion for everyone following along - rollback netcode only sends inputs around, not state, so it doesn't really have much to send. I think I'm doing about 1.5 KB per second. When you point your mouse it sends that data in 10 bytes. There's not a lot to delta compress.

gafferongames•17m ago
One cool trick you could try (although you are probably doing it already) is to include all inputs for some long period (like 1-2 seconds!) in every input packet the client sends to the server.

This way if one input packet gets lost, the very next one getting through will have all the inputs for the last 1-2 seconds, and this greatly improves how well your game will play under packet loss.

When you do this, you can even do an encoding from left -> right for all inputs, and actually, sort of delta encode inputs within the packet! Inputs don't change that much, so you can even get smart with the encoding and optimize it down to basically nothing.

gafferongames•37m ago
I think this is a cool idea. Well done!
BSTRhino•26m ago
Thank you so much!
ornitorrincos•20m ago
How does it compare with deterministic physics engines, given that their appeal for multiplayer is that they can perform rollback?
riidom•1h ago
Can the games only be played on the easel site, or can I upload to e.g. itch.io as well (probably with the limitation of only singleplayer?)
BSTRhino•1h ago
You can upload to itch.io yes: https://easel.games/docs/learn/publishing/export

The export basically creates a page with an HTML IFRAME in it that embeds the hosted version of your game on easel.games so that all the multiplayer and leaderboards continue to work.

Thanks for your interest!

maxbendick•28m ago
As a long-time web/app developer getting into game dev, it feels like I'm entering "the big leagues" of software engineering. Tougher problems, more problems, more _interesting_ problems, and problems without prebuilt solutions. Much more fun than making yet another dashboard.

Combining player control, multiplayer, non-player control, and physics is one of the tougher problems. I got it handled (enough) for my project, but I'd be very interested to read the source if Easel's physics engine gets open-sourced.

VS Code inserting 'Co-Authored-by Copilot' into commits regardless of usage

https://github.com/microsoft/vscode/pull/310226
467•indrora•3h ago•212 comments

Six Years Perfecting Maps on WatchOS

https://www.david-smith.org/blog/2026/04/29/maps-on-watchos/
81•valzevul•1h ago•16 comments

This Month in Ladybird - April 2026

https://ladybird.org/newsletter/2026-04-30/
72•richardboegli•2h ago•13 comments

Dav2d

https://code.videolan.org/videolan/dav2d
277•dabinat•5h ago•95 comments

Neanderthals ran 'fat factories' 125,000 years ago

https://www.universiteitleiden.nl/en/news/2025/07/neanderthals-ran-fat-factories-125000-years-ago
51•andsoitis•2h ago•11 comments

The agent harness belongs outside the sandbox

https://www.mendral.com/blog/agent-harness-belongs-outside-sandbox
31•shad42•1h ago•25 comments

Do_not_track

https://donottrack.sh/
147•RubyGuy•5h ago•55 comments

Clojurists Together – Q2 2026 Open Source Funding Announcement

https://www.clojuriststogether.org/news/q2-2026-funding-announcement/
17•dragandj•1h ago•2 comments

Inventions for battery reuse and recycling increase seven-fold in last decade

https://www.epo.org/en/news-events/news/inventions-battery-reuse-and-recycling-increase-more-seve...
134•JeanKage•2d ago•6 comments

Little Magazines Are Back

https://wsjfreeexpression.substack.com/p/little-magazines-are-back
58•prismatic•2d ago•10 comments

Show HN: State of the Art of Coding Models, According to Hacker News Commenters

https://hnup.date/hn-sota
17•yunusabd•1h ago•10 comments

NetHack 5.0.0

https://nethack.org/v500/release.html
325•rsaarelm•5h ago•94 comments

Why does it take so long to release black fan versions?

https://www.noctua.at/en/expertise/blog/how-can-it-take-so-long-to-release-black-fan-versions
679•buildbot•18h ago•281 comments

How fast is a macOS VM, and how small could it be?

https://eclecticlight.co/2026/05/02/how-fast-is-a-macos-vm-and-how-small-could-it-be/
216•moosia•13h ago•77 comments

California to begin ticketing driverless cars that violate traffic laws

https://www.bbc.com/news/articles/clypjx3rg2go
202•geox•5h ago•213 comments

A Physics Engine with Incremental Rollback for Multiplayer Games

https://easel.games/blog/2026-rollback-physics
17•BSTRhino•22h ago•11 comments

Barman – Backup and Recovery Manager for PostgreSQL

https://github.com/EnterpriseDB/barman
131•nateb2022•3d ago•22 comments

Welcome to Hell Developer

https://noahclements.com/Wahoo-Bolt-Hidden-Debug-Mode/
44•denysvitali•5h ago•20 comments

Roblox shares plummet 18% as child safety measures weigh on bookings

https://www.cnbc.com/2026/05/01/roblox-rblx-stock-child-safety-earnings.html
158•1vuio0pswjnm7•5h ago•99 comments

Flue is a TypeScript framework for building the next generation of agents

https://flueframework.com/
75•momentmaker•5h ago•41 comments

Refusal in Language Models Is Mediated by a Single Direction

https://arxiv.org/abs/2406.11717
84•fagnerbrack•9h ago•32 comments

Modern C++ Programming: Busato

https://github.com/federico-busato/Modern-CPP-Programming
42•KnuthIsGod•6h ago•4 comments

The USB Situation

https://randsinrepose.com/archives/the-usb-situation/
74•herbertl•3d ago•85 comments

Uber wants to turn its drivers into a sensor grid for self-driving companies

https://techcrunch.com/2026/05/01/uber-wants-to-turn-its-millions-of-drivers-into-a-sensor-grid-f...
112•nickvec•7h ago•122 comments

Why are there both TMP and TEMP environment variables? (2015)

https://devblogs.microsoft.com/oldnewthing/20150417-00/?p=44213
185•ankitg12•14h ago•85 comments

Open Design: Use Your Coding Agent as a Design Engine

https://github.com/nexu-io/open-design
157•steveharing1•10h ago•82 comments

Dotcl: Common Lisp Implementation on .NET

https://github.com/dotcl/dotcl
143•reikonomusha•2d ago•32 comments

Using group theory to explore the space of positional encodings for attention

https://blog.janestreet.com/using-group-theory-to-explore-positional-encodings-attention/
5•jxmorris12•1d ago•0 comments

Show HN: Pollen – distributed WASM runtime, no control plane, single binary

https://github.com/sambigeara/pollen
104•sambigeara•2d ago•42 comments

Artemis II Photo Timeline

https://artemistimeline.com/#artemis-ii-walkout-nhq202604010003
353•geerlingguy•3d ago•26 comments