Coloniser
Senior Unity Developer
Multiplayer game with Photon Fusion 2 netcode — state authority, host/client flow, synchronization
As a founding member of the Coloniser Dev Team, I helped build a live-ops MMORTS from the ground up — a project that demanded versatility across the full multiplayer stack. My primary contribution was the Photon Fusion 2 netcode layer: implementing state authority handling, managing host/client connection flow, and ensuring reliable synchronization across all game clients. The netcode architecture used a hybrid approach — deterministic simulation for unit movement and resource gathering, with state authority interpolation for player actions and combat events. I handled edge cases like late-joining clients, reconnection after network drops, and reconciling client-side prediction with server authority to prevent desyncs.
On the dedicated server side, I co-created the orchestration system that managed game instance lifecycles. This included a lobby service that matched players to available server instances, a heartbeat monitoring system that detected and recycled hung instances, and a scaling layer that spun up additional servers during peak hours. The server binaries were containerized with Docker and deployed on a Kubernetes cluster, with auto-scaling policies tied to player population metrics.
For production monitoring, I built Grafana dashboards that tracked real-time metrics: active player count per server instance, tick rate health, memory and CPU utilization, and network packet loss rates. These dashboards were backed by InfluxDB time-series data and alerted the team via Discord webhooks when metrics crossed thresholds. I also integrated Sentry for client-side error tracking, categorizing crashes by Unity version, platform, and gameplay context to prioritize fixes.
The CI/CD pipeline ran on Jenkins with a multi-stage workflow: Unity build compilation, automated test execution (play mode and edit mode), Docker image packaging, and deployment to the staging Kubernetes namespace. I maintained the custom API layer written in Node.js that handled authentication, matchmaking, and player data persistence, extending it with new endpoints as the game’s feature set grew. This project taught me how to build multiplayer systems that scale — from the netcode fundamentals all the way up to production monitoring and deployment automation.
Interested in This Project?
I bring the same structured approach to every project. Let's discuss how I can help with yours.
Get In Touch →