Making video games is hard. Making online multiplayer games is even harder. This is a fact of life that’s obvious to developers, but sadly is often lost on players and some members of the press.
This tweet went a bit viral two days ago, and it shows the gulf between developers and those that play their games.
The claim is that Hello Games, the developers of No Man’s Sky could easily support multiplayer if they wanted to. The implicit statement is that they’re either lazy, or unwilling to add the feature.
The other reaction has been that developers should be more transparent about what it takes to make games, and the press should do a better job of showing the reality of this business. In that spirit, I present ...
Developers explain why online play is really hard to do
"Underneath your favorite multiplayer game there lies a myriad of underlying mechanics you don't see — or even think about — as a player," Neema Teymory, senior network engineer at Piranha Games, told Polygon. "How do players find each other? How do we persist information about their progress? How do we deliver updates to players? How do we take payments? How do you service thousands of users? And what about the age old lag problem? These are just some of the questions that need answers before you even begin development on the actual gameplay."
Pirahna Games created Mechwarrior Online, and the team knows a bit about what it takes to create online interactions and combat.
"As part of a team that underwent years of development on a strictly multiplayer game, I've seen the labyrinth of challenges that come with incredibly complex multiplayer systems," he explained. "And here's the kicker: There is no finish line. Persistent worlds will always be there and that data needs to be accessible in thousands of different ways. So how do you make it work?"
Eve Online is another game that has had to deal with a galaxy that spans a huge amount space while dealing with large numbers of players.
"I think space itself invites people to imagine things on a huge scale," Andie Nordgren, Eve Online’s executive producer, told Polygon.
"Surely space can’t run out of space right?" she continued. "And then coupled with that, I think we just expect a lot from computers today, so people can’t see why we shouldn’t be able to have a game give them that huge experience they can so easily imagine. I wish people understood that there are still real limitations to what computers can do, and that rendering for example hundreds or thousands of space ships in the same scene is not trivial either for game client side software or for a game server. We do it in Eve Online — and we tackle technical problems and design limitations related to it all the time!"
Nordgren also pointed out that games that operate their own online infrastructure have entire teams dedicated to such prosaic things as sign-in systems and account management.
"I think space itself invites people to imagine things on a huge scale"
"There are ways to solve these things, like letting people run their own servers and deal with it, like with Minecraft — or launching through a platform like PlayStation or Steam that take care of some of this stuff," she told Polygon. "But if you really want people in a world with one shared state, playing together in real time, you often need to build your own solutions to some degree. And then we haven’t even discussed the game server code, which of course is its own chapter if you need anything outside what out-of-the-box engines offer today in terms of multiplayer support — which is mostly on an FPS-type scale."
And this complexity, which is often not discussed with players on a broad scale, impacts everything.
"We have a silly thing with Eve which is that you need to restart the game client to change which character — out of the three on your account — you are logged into," Nordgren said. "Players new to Eve can’t imagine why it would have to be this way, and this should be an easy fix! But some old decisions about how the client starts and connects to the game's backend mean that assumptions are made all over our code base that are linked to the character choice you make, and this makes it such an effort to change that we can’t justify the development time compared to other things we want to add to Eve. Seems simple, but for various reasons it’s not."
No Man’s Sky uses its own engine, and the game takes place inside a huge galaxy with a high number of players spread across a distance that’s hard to imagine. Multiplayer isn’t the sort of thing that can be added in a week, and certainly not by a single member of the team.
"I think a general rule of thumb we could try to teach is that any serious online component at least doubles development time for a game," Nordgren told us.
This complexity impacts everything
"Perhaps reporting more on what goes on behind the scenes as well, we publish some very technical blogs on what goes on with for example moving to a new server for Eve, and they are always appreciated. I think people are interested in general, but I also think people love imagining grand things and this will be hard to educate away," she continued. "And perhaps this is what also drives game developers to strive for cool new things! There just needs to be a pinch of realism, so that people for example don’t back obviously impossible game projects on crowd funding platforms where tiny teams claim they will deliver huge online games. This stuff just takes time and effort."
The question of what was promised before No Man’s Sky was released, and whether the game should have let you see other players from the outset, is a bit outside of the scope of this article. What I’m trying to show is that adding any kind of multiplayer functionality isn’t a trivial thing, and it’s certainly more work than can be done by one developer in a single week.
"The next time you fire up that game and things don't work quite the way you want them to, take a minute to think about the thousands of mechanics at work under the hood you don't see," Teymory said. "It is easy to take for granted the difficulty and effort that goes into creating what sometimes appears to be a simple experience for a multiplayer game. So, if you want to make — or play — a multiplayer game, don’t forget that there is more to it than meets the eye."