
- Role
- Senior Game Developer
- Studio
- Matterless by Auki Labs
- Year
- 2023
- Engine
- Unity
- Platform
- iOS
A multiplayer AR game where the room you're standing in is the arena — several phones, one physical space, and everyone has to agree on where everything is.
The brief
Shared-space AR is two hard problems stacked on each other. The networking has to move a live game's state fast enough to feel instant, and the tracking has to make several devices agree that the same virtual object is sitting on the same real table. Get either wrong and players see different games.
The build
4 notes from inside the codebase
- 01
Every player is an entity on the network
The game runs on a customised entity component system, with each player treated as an entity whose component properties the server broadcasts out to every client. Game state is therefore data on the wire rather than bespoke message types per feature, which is what keeps adding mechanics cheap.
- 02
A network SDK parsed byte by byte
Rather than take a general-purpose transport, the client reads a custom low-level SDK that parses network data byte by byte — full control over the wire format, and no framework overhead in the hot path of a real-time AR session.
- 03
Making several devices agree on one room
Marker tracking anchors the session, and 3D-space position calibration was improved so AR objects land in the same physical spot on every device. That agreement is the whole illusion: if two players see the same object in different places, there is no shared game.
- 04
Profiling for hardware that runs hot
Code and assets were profiled and optimised across a range of AR devices, because an AR session is a camera feed, a tracking solve and a game running at once on a phone that is already thermally throttling.
Key facts
- Custom ECS
- Architecture
- Byte-level SDK
- Netcode
- Marker AR
- Tracking
- 10 months
- Engagement
Stack
- Unity
- C#
- ECS
- Dependency injection
- AR
- Custom netcode