Served: The Server Server Part I

During my senior year at RIT, I finally took a crack at networking in games and it was like love at first semicolon. Let's face it, every fledgling game dev has entertained thoughts of some MMO-scale dreams, usually before reality steps in to crush them utterly. But I managed to stay spoiler-free to wonderful world of back end development until I was fairly skilled and more than a bit weathered. I was so ready to tackle this challenge. Imagine my surprise when I came to the realization that it really wasn't that hard to get a server up and running, connect clients, and just go to town.

Now, that's not to say creating a multiplayer game is a walk in the park. It's certainly a lot of work, with a lot of i's to dot and t's to cross. But half the battle is simply getting into the mindset of separating back and front end functionality. After that, once a solid system for client-server communication is established, development is fairly straightforward. Debugging is its own demon, of course, but that comes with the territory.

During my networking course, I found that back end development suited me just fine. For my final project, I developed a game called Eden, which was (at least the start of) a simple HTML5 multiplayer survival game with a Node.js backend. When working on the game, I actually worked on the server first, while I waited for art from a friend who was helping me out. I ended up coding the majority of the game's back end several weeks before I even started the client. By the time I finally got around to working on the front end of the game, I couldn't even recall most of the work I had previously done. Yet, as I created the hooks for the server's events, the game sprung to life. Turns out the core loop of the game was already done, I was essentially just handling input. It's always nice when everything works as expected before you expect it to work, especially on a project with this level of complexity to it.

Eden was the spark that lit my interest in life on the sever-side. I was barely finished with Eden before I was formulating a shiny, new, ambitious project. I wanted to create a platform agnostic, reusable server framework for peer-to-peer networking. I codenamed the project 'Served,' because I'm so clever and good at naming. I had no idea what I was getting myself into, in more ways than one. We'll talk about all that and more in the next part.