Why Sega's latest games required a move to the cloud

Sonic Forces and classic re-releases force Sega to evolve its infrastructure

When Sega re-released console classic Crazy Taxi as a mobile app in 2014, the developer didn't expect eight million people to sign up within a single week to play it.

With Sega's database and gaming servers sitting inside its own data centre, it couldn't scale to meet this surging demand, meaning users experienced crashing features and login issues.

"When they opened up the app, for example, they had a little 30-second wait; a call to the database waiting for the servers to time out," explained Dawid Esterhuizen, who joined shortly after Crazy Taxi's mobile launch as a senior server engineer to help address these problems.

With Sega used to relying on its data centre for games supporting offline play, these server-side problems - including logging into the game and trouble accessing features like the leaderboard - pushed up the app's churn rate.

So when Esterhuizen started a new project, mobile game Kingdom Conquest: Dark Empire, he looked into using a more scalable option, and recommended that everything needed to be horizontally scalable, including the database.

Crazy Taxi's 2014 reincarnation

Moving it into the cloud

The engineer checked out a few NoSQL options including Couchbase, but eventually settled on MongoDB because he had used it at a previous company, but also because its document structure proved to be a lot more applicable to the use case.

Sega chose Node.js combined with MongoDB for its data centre, which Esterhuizen says has been working very well.

But when Sega started its next project, Sonic Forces, which came out last week, Esterhuizen realised the game developer's data centre wouldn't cut it. Sega had projected numbers of about five million daily active users on Forces, of whom 100,000 would be playing concurrently.

As a result, Esterhuizen decided to run MongoDB's database on the vendor's new cloud platform, Atlas.

"We have a very small DevOps team - it's just me and another person - and we have to maintain all the other five games including other services and also this pretty big game that's just gone out," Esterhuizen explains.

"Managing a MongoDB cluster of the size we needed is quite resource intensive," he adds. So much so that without leaving database maintenance to Atlas, Sega would've needed to hire another DevOps engineer.

When he compared the price for using the database on Atlas with running it on Amazon Web Services (AWS), though, Esterhuizen found the cost to be quite high.

"Then we contacted [MongoDB's] enterprise team and worked with them over a couple of months to identify our needs and then they came back with a very reasonable quote which was much more in line with what we had in AWS," he says.

MongoDB Atlas gives Sega scale, and skills

Dawid Esterhuizen, Sega's senior server engineer

"What MongoDB gives us is the opportunity to scale up and meet that need to scale back down again so we can maintain the project long-term but without having a very big price tag on top of the database," Esterhuizen explains, saying he'll use it again in future projects.

"When we started the move towards it, we knew it would be an intensive and expensive investment because people have to be trained, people have to gather the knowledge. At that time, considering all the tools out there, I think it was the best fit for us," he says.

"There's quite a few developers who enjoy working with MongoDB because of the document structures. It makes it simpler and it's more applicable to how we use it at the application level," he adds.

But Sega's developers have given Esterhuizen a "mixed" response to MongoDB overall, he admits, with one common complaint being the database's lack of transactions.

Because of this, he wants to see transactions in the next MongoDB update. "The query retries [in version 3.6, launched this week] are already a big plus but if we have transactions it will make it even better," he said, acknowledging that this might make the database run slower, even in the cloud.

For Esterhuizen, he is looking forward to the new backup query option in 3.6. "It's absolutely amazing for us," he says. "For example, when we do analysis of data in the game we have to run quite big aggregations and slowish queries.

"Rather than running that on a production environment where it can impact users we can just click a button and we can run our query."

Pictures: Sega

Featured Resources

Unlocking collaboration: Making software work better together

How to improve collaboration and agility with the right tech

Download now

Four steps to field service excellence

How to thrive in the experience economy

Download now

Six things a developer should know about Postgres

Why enterprises are choosing PostgreSQL

Download now

The path to CX excellence for B2B services

The four stages to thrive in the experience economy

Download now

Most Popular

Microsoft is submerging servers in boiling liquid to prevent Teams outages
data centres

Microsoft is submerging servers in boiling liquid to prevent Teams outages

7 Apr 2021
Hackers are using fake messages to break into WhatsApp accounts
instant messaging (IM)

Hackers are using fake messages to break into WhatsApp accounts

8 Apr 2021
How to find RAM speed, size and type

How to find RAM speed, size and type

8 Apr 2021