finds.dev← search

// the find

pond3r/ggpo

★ 3,597 · C++ · MIT · updated Jun 2024

Good Game, Peace Out Rollback Network SDK

GGPO is the original rollback networking SDK that popularized rollback netcode in fighting games — it handles input prediction, state rollback, and resync so two players feel like they're playing locally despite real network latency. It's for game developers building real-time multiplayer (fighting games especially) who need deterministic simulation and don't want to write a rollback protocol from scratch.

The core algorithm is split into readable, focused files (sync.cpp for save/rollback, udp_proto.cpp for the wire protocol, timesync.cpp, input_queue.cpp) rather than one monolithic blob, so you can actually trace how prediction and resync work. It ships a full working sample (VectorWar) that demonstrates 2-4 player synchronization end to end, not just a stub. It's genuinely battle-tested — this is the reference implementation most modern fighting-game netcode (and clones like GGRS) trace their lineage to. MIT licensed with no attribution requirement.

Build is documented and supported for Windows only (VS2019 + CMake), even though platform_linux.cpp exists in the tree — porting is acknowledged as in-progress, not done, so cross-platform use means doing that work yourself. No visible unit tests anywhere in the repo, which is a real gap for something whose entire value proposition is deterministic rollback correctness. CI is a single Appveyor badge, nothing indicating active test coverage or regression protection. Last push was mid-2024 with no sign of active issue triage, so integrating it into your own engine (outside the VectorWar pattern) means you're mostly reverse-engineering the API from one sample and the dev guide.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →