Content delivery platform
Client SDK, editor tooling and cloud functions
2024
- Unity
- C#
- Addressables
- BrainCloud
- Laravel
- MongoDB
- Redis
- RabbitMQ
- Angular
- Google Cloud
A dynamic content delivery platform for live mobile games. The client was large and the work is under NDA, so this describes the shape of the system and what I did in it, never their product.
The scale it ran at
- Audiences in the millions, tens of thousands of players a day, tens of thousands at once.
- Other studios’ developers built against it as a framework. It was infrastructure, not a feature.
How the system works
- The client is downloaded, not shipped. Unity pulls ZIP archives of Addressable bundles straight from a CDN.
- A JSON registry travels with them, saying what each asset is and how it relates to the server.
- The boundary is zero-trust. A production build carries read-only keys, and those expire.
- Content is requested by type, version and user. Cloud functions answer with a JSON describing what that specific player should see.
- I wrote the dependency injection that parses that answer and pushes it into the content, which binds itself to actions from there.
- What the player does posts back. The server is the source of truth.
What was mine
- I owned the CDN.
- I rewrote every editor window, in particular the ones talking to it.
- I built the automated packaging and upload of Addressable bundles across platforms and environments, with version checking so anyone could see what was live where.
- The developer experience of that tooling was mine to design, and I kept improving it after it worked.
- I mentored the two developers on the web and backend side while writing parts of it myself.
I joined a system that already ran. The work was extending it hard and rewriting the legacy underneath, at every architectural level.
Credit: Nvizzio Creations