First Dedicated Server Test
Yesterday marked an important milestone for Deepfield; we finally have something which we can demo that resembles a game. There are still lots of bugs, occasional crashes, no quality of life and incomplete features, BUT, we can host a game, multiple people can join, build up an economy and battle each other.
Until this point, our development and testing environments only involved local area networks. We thought it was about time we uploaded a build to Steam and try to play a game over the internet.
Why is playing a game over the internet such a big deal? I’ll take a step back to explain.
One of the core goals of Deepfield is scale; bigger maps, tens of thousands of units and many concurrent players. Off the shelf products wouldn’t cut it here, to achieve the scale we want we needed a greater degree of control over everything.
For this reason we built Fractal from scratch, wrote a custom network protocol which sits on top of UDP and started by making optimisations such as:
- Structuring data and packets for speed.
- Implementing a lean reliability protocol and only using it when necessary.
- Only syncing data that is relevant to each player.
- Setting up the foundation which will allow us to distribute an instance of a game over several servers in the future.
That’s why playing a game over the internet is such a big deal. Nothing had been tested in a production environment; will our reliability protocol work? Will clients stay in sync? Will there be any jitter? Will latency and bandwidth usage be reasonable?
Once we got the client working via Steam, Stefan set up a dedicated server at his residence. From home, I booted up the client and attempted to connect to his server.
The network appeared stable, clients stayed in sync, there was no jitter and we had low latency with reasonable bandwidth consumption. Sure the server crashed when Stefan wiped me off the map but that’s because NO ONE has ever WIPED ANYONE off ANY MAP yet, we’re in new territory here.
At the moment most of my enjoyment comes from watching it all work, we still have a decent way to go before we have a game that other people find fun to play.
Back to the grind.