October 20, 2017

Life on the server side

Backend Lead Vinicius Suarez plays an integral role in creating PlayRaven’s server infrastructure. Most recently he has been working on Project Aurora, an original F2P mobile game made in collaboration with CCP Games and set in the EVE universe.

What does a typical day at PlayRaven look like for you?

PlayRaven Backend Lead Vinicius Suarez

We start the day with a daily sync where we discuss what our game team is working on. Usually mornings are the times I can focus best, so after the daily it is time to crack any problems or bugs we are having or develop some complex game features. We usually go for lunch together with the team members, because the PlayRaven office is in downtown Helsinki and we have numerous food options. In the afternoon we may have some meetings (planning, design or backend team meetings) or more coding. The backend team is also responsible for the operations of live games, so sometimes I spend time checking if all games and services are running smoothly. Sometimes we stay in the office in the evening, so we can play board games or watch a movie together with the other staff members.

How did you end up as a coder? What was the first thing you ever created?

It sounds a bit cliché but since I was a kid i liked to understand how things work. I was all the time disassembling my toys just to see how they function (and almost aways I could not assemble them back). I grew up surrounded by games too. My family had an Atari 2600 when I was 2 and I got my first computer from my dad when I was 11 – I was fascinated with all the cool stuff you could do with it. That was when my first programming adventure with html and javascript started. I have always wanted to work with games. I started creating all sorts of small games and websites back in elementary school. The first thing I can recall was creating a website together with another boy, where the readers could comment of what was going on in the school.

What tools and software do you use on a daily basis here at PlayRaven?

Our games architecture is based on Akka actors. One of the programming languages we use is Scala because it is a perfect fit to work with Akka. We also use Akka http and no-sql MongoDB. Most of our operations are running under Amazon AWS and we have automated deployment pipelines using Jenkins. The tools that I personally use for developing are a Mac with terminal (for running the server locally and git), Intellij Idea as IDE, and Unity3D.

Since we develop everything in house and from scratch, we build a lot of different modules that support our games. We have in-app purchase receipt verification, push notification services, an admin tool where the player support can check the player’s status and manage it if they need any help. We also have a base module for in-game guilds and server cluster management.

PlayRaven and CCP arranged a playtest of Project Aurora for the attendees of EVE Vegas this October, with hundreds of players populating the game server. How did you prepare for the playtest?

Project Aurora is to a large extent an MMO, which means the game is really heavy on the backend side. I decided to start from scratch with the Project Aurora server and reworked our cluster management code in order to easily scale the server as much as this kind of game demands. For the EVE Vegas playtest we decided to focus on solving all the bugs we could find and load testing the server to find the sweet spot, where people could enjoy the game without any lag. The playtest was a success, and now we are working even harder to add new features and support an even larger playerbase in time for soft launch!

Any tips for fellow backend developers looking for jobs in the games industry?

In my opinion, if you want a job anywhere, the first step is to meet the right people. For the game industry there are plenty of options to network in gatherings or social events like IGDA, game conventions and meetups. If you want to apply to a specific company, try to get as much information as possible about it. This will help you both to see whether the position is really what you are looking for, and to show that you are interested during interviews. Talking about interviews, I rather value the person being excited and passionate to join the company and the personal attitudes, than some specific programming language skills. That said, it is also a good idea to have at least some notion of all the technologies the company works with. So if you have never worked with X before, try to check what it is and how fast you would learn it.