Multiplayer Backend- Beginner's Guide
I have a fairly simple routine. I wake up, work, go home, switch on my PlayStation, boot up Warzone and start finding a game. Soon a notification pops up, my best friend enters the party, all the way from Toronto, Canada.
I’ll admit, I was pretty sad when he moved away, but multiplayer games have helped shorten the distance considerably. Honestly, it still feels like he’s next to me hurling insults at the players far better than him. Most of us take it for granted how easily we can connect to each other while we’re gaming.
I’ll admit, I was pretty sad when he moved there. But multiplayer games make me feel like he’s still sitting right next to me, cursing at the players that are far better than he is.
It might seem simple, but on the backend, there are loads of things that work together to optimize this multiplayer experience for us. From the development to the servers, you need a proper well-oiled team for it to work perfectly. Task Force 141 I’m looking at “you”!
Today, we’re gonna set our sights on the servers used for these games, but before we get into that let’s talk about the different types of multiplayer games at our disposal.
Types of Multiplayer Games
Broadly speaking, there are two kinds of Multiplayer Games.
Firstly, and probably the more well-known of the two, uses real-time communication. Or in layman’s terms, a game where every player is sending commands to the server at the same time. A good example of this would be games like Maelstorm or Minecraft.
The second one, usually for the more niche audience, is turn-based multiplayer games. Where only a single communication relay is working at a given time. This is the case for most Collectible Card Games such as Hearthstone or the magnificent game of chess.
One thing to note here is that turn-based doesn’t mean that only one side of communication is going on. The players take turns, but the server does not. It instead will keep relaying the information to every player, like in a game of Zynga Poker.
Each style of game has its own unique server requirements. You wouldn’t fill your gasoline-running car up with diesel now, would you?
Types of Multiplayer Servers
Now if you are unaware of what a server is, let’s bring you up to speed.
In simple terms, the server is the base where all the multiplayer communication is held. The player inputs the command. The server receives commands. The server executes the commands accordingly.
Just like the games we talked about, there are also two different types of servers available.
The first one is Player Hosted. Here, the server authority is given to a player, usually the creator of the multiplayer lobby. All the communication load is directed to the player. Hence, the server doesn’t have much to do. Which, in turn, leads to the server requirements being far lower than usual.
Moreover, you don’t need a separate server for such games, the player is one. Result? The costs keep dropping.
But sadly, everything can’t be perfect.
A major problem with it is that such a server is far more susceptible to cheating. Because the player who’s hosting the game can essentially do anything they want.
Plus Lag, the bane of the existence of every gamer. The server quality and speed are dependent on the host and well, you know the rest.
The other type of servers we deal with are known as Authoritarian. Which are the complete opposite of the Player Hosted Servers.
The game and the controls are hosted on the server itself. This greatly reduces the ease of cheating in games. Subsequently, it is mostly used in Massive Multiplayer Online games.
But everything comes at a price. And in the case of Authoritarian, this is literally the case.
Hosting such a vast amount of players on a server requires a lot of firepower, something that isn’t usually available that easily. And well if we’re talking about how high the price can go, just think Snoop Dogg.
Now we have a predicament.
What if your game falls into a wide range of categories? Are you gonna build a separate server for every single thing?
If you can, I really envy you.
But if you’re like us and the vast majority of game dev studios out there, the more reasonable option would be getting the services of a server stack.
Now, everyone can’t afford to have their server stack. It’s expensive and hard to maintain. It’s not something people make just for the fun of it.
To tackle this, companies such as Unreal and Playfab started providing server services, hence the birth of 3rd Party Servers.
3rd Party Servers are a God-Send. It’s like having a puppy, but you don’t have to walk it, feed it or take care of it. It’s self-sufficient. If it’s sick it’ll fix itself, all you have to do is pay.
And you don’t have to worry about fixing it if it goes wrong, that’s the job of the service providers.
Then why do more and more servers keep coming into the market? It can’t be because of money, the maintenance alone costs a lot to make it slightly unfavorable. Moreover, coming into an already populated market is not the easiest task.
Let’s talk about that in the next section.
Problems with 3rd-Party Servers
One problem with each of these servers is their rigidity. Mostly because of the fact that they mostly have pre-defined use cases.
Although this isn’t necessarily a bad thing, this does take away some of the flexibility and creativity of the developer. You have a set of rules you’re bound to now and if you want a different function you will have to look elsewhere.
Now because of this, you’ll have to integrate multiple servers just to get it working the way you want. This may sound easy but let’s say servers usually don’t tend to play well on a team. Think Captain Price and Makarov.
I think we’ll call it a day for now. Let’s continue the discussion in the next blog post, where we’ll talk about our very own backend server stack, FBOMB!
Meanwhile, reach out to us at firstname.lastname@example.org, and let’s have a chat about the backend!