Server-authoritative multiplayer without a netcode plugin: Gessa vs Unity vs Unreal
Last verified 2026-09-06 against engine v1.0.232. Competitor sources were accessed 2026-09-06; every Gessa cell binds to the generated engine reference and the build fails if a bound surface disappears.
Gessa's multiplayer is server-authoritative in the engine itself: one authority per room owns simulation, clients predict locally and reconcile against the server, the server rewinds bounded history for lag compensation, and a session can be replayed. None of that is a plugin a creator installs and wires. The honest tradeoff is that Gessa deliberately does not adopt rollback, runs a single region in this release, and ships first-generation, room-scoped interest management. Unity reaches this model through the Netcode for GameObjects package; Unreal reaches it through its built-in networking and the Iris replication system.
The authority and interest boundaries are described in the netcode model explanation; the pinned numeric policy (rewind default and clamp, fairness ceiling, tick and input policy) lives in the netcode contract reference and is not restated here.
Where Gessa stands
| Capability | Gessa | Unity | Unreal |
|---|---|---|---|
| Server-authoritative rooms, one authority per room | Supportedcheck:runtime-single-authority | Supported unity com.unity.netcode.gameobjects 2.13 | Supported unreal 5.8 |
| Client-side prediction and reconciliation | Supportedcheck:runtime-netcode-prediction-hardgates | Partial unity com.unity.netcode.gameobjects 2.13 | Supported unreal 5.8 |
| Server-rewind lag compensation | Supportedcheck:netcode-timing-literals | Not first-party unity com.unity.netcode.gameobjects 2.13 | Not first-party in overview unreal 5.8 |
| Replication with delta snapshots and acknowledgements | Supportedcheck:netcode-replication-fanout-boundary | Supported unity com.unity.netcode.gameobjects 2.13 | Supported unreal 5.8 |
| Interest management and relevancy filtering | PartialNetworkProfileComponent | Supported unity com.unity.netcode.gameobjects 2.13 | Supported unreal 5.8 |
| Reconnect and resume into a running room | Supportedcheck:reconnect-policy | Supported unity com.unity.netcode.gameobjects 2.13 | Supported unreal 5.8 |
| Deterministic replay of a session | Partialcheck:runtime-replay-release-gate | Not first-party unity com.unity.netcode.gameobjects 2.13 | Not first-party unreal 5.8 |
| Rollback / lockstep netcode | Not yetnetcode.rollback | Third-party unity com.unity.netcode.gameobjects 2.13 | Third-party unreal 5.8 |
| Matchmaking as a production-closed service | Unknownnetcode.matchmaking | Separate service unity com.unity.netcode.gameobjects 2.13 | Separate service unreal 5.8 |
| Multi-region distributed transport | Not yetnetcode.multi_region | Supported unity com.unity.netcode.gameobjects 2.13 | Supported unreal 5.8 |
The NetworkProfileComponent surface carries the per-entity interest and interpolation intent behind the interest-management row; the authority, prediction, lag-compensation, replication, and replay rows are backed by the check:runtime-single-authority, check:runtime-netcode-prediction-hardgates, check:netcode-timing-literals, check:netcode-replication-fanout-boundary, and check:runtime-replay-release-gate gates in the build.
The gaps, named here
- No rollback, by design. Gessa is a state-synchronising, server-authoritative engine, not a lockstep one; it does not adopt rollback. The row reads not_yet because rollback is a family the engine deliberately does not carry, not a feature in progress.
- Interest management is first-generation. It is expressed per entity through the
NetworkProfileComponentinterest fields and is room-scoped; cross-room relevancy is still a release-blocking item, so the cell reads partial rather than supported. - Single region, this release. Multi-region distributed transport is not shipped, so that row reads not_yet.
- Matchmaking is not proven production-closed. Matchmaking rooms and a worker exist in the codebase, but there is no passing service-level gate to bind a supported or partial claim to, so the cell reads unknown rather than overstating it.
- Replay is single-machine stable, not a cross-platform guarantee. The replay row reads partial: the release gate proves replay stability for a session, not bit-identical determinism across every platform.
Where Unity and Unreal are ahead
- Unreal's Iris replication system is built to scale to higher player counts and larger, more interactive worlds, and Unreal ships mature dedicated-server hosting and multi-region deployment. See the Unreal networking and Iris documentation cited in the table.
- Unity's Netcode for GameObjects plus Unity Gaming Services provides a matchmaking service, relay, and multi-region hosting as a supported ecosystem. See the Netcode for GameObjects documentation cited in the table.
- Both ecosystems have third-party rollback netcode options for the lockstep, fighting-game class of title that Gessa does not target.
Gessa's answer is not to match that hosting-and-services breadth. It is to ship authority, prediction, lag compensation, replication, and replay in the engine, with no plugin to install, and to be explicit that it does not adopt rollback and runs a single region today. The other comparison axes are in the compare index.