How App Engine helped power Super Mario Run

When Nintendo invited app developer DeNA to collaborate on its release of Super Mario Run last year, both companies knew they had a unique challenge on their hands. It wasn’t just that the game would bring one of Nintendo’s most beloved characters, Mario, to smartphones for the first time. Nintendo was also planning a simultaneous worldwide launch, meaning the game would go live in 150 different countries at the same time. With a launch that massive, both Nintendo and DeNA knew system downtime would be unacceptable. That meant being sure that the game’s back-end could handle the demands of millions of new users on day one.

Here’s a little insight into how Nintendo and DeNA worked together to solve these challenges in advance of the game’s launch.

Super Mario - App Engine

Preparing for the future of game apps by leaving the back-end to a managed service

Nintendo and DeNA had already collaborated on the mobile title, Miitomo, so both knew how critical a strong back-end would be for Super Mario Run. After weighing their options, Kenta Sugahara, team leader for DeNA’s System Development Division, recommended using Google App Engine.

“When Miitomo was released last spring,” explained Sugahara, “the back-end was constructed almost entirely on-premises. This inevitably meant resources were used up on operations, obstructing efficient development in some respects. Although it was working at the time, I knew it would become increasingly difficult to work on more titles without changing our approach. Also, at that time, we learned that projected traffic for Super Mario Run would be massive — even by our standards as experienced smartphone app developers. That’s why we proposed using a managed service like App Engine.”

But using App Engine meant they’d need to rebuild the game’s back-end entirely from scratch. With less than six months before the release date of Super Mario Run, Sugahara and team knew they had their work cut out for them.

Working together towards a “crazy target”

System organization diagram (using Google Cloud Platform)

With a simultaneous launch in 150 countries just months away, the work began.

One major reason DeNA and Nintendo chose App Engine was its ability to implement services demanding high levels of availability. Because they were anticipating a massive traffic spike on launch day, it was important that their cloud platform had the ability to scale quickly. App Engine’s auto scaling can automatically add or remove instances in line with traffic volume, and can be optimized in units of milliseconds. Adding to that, DeNA also compiled and shared estimation sheets with Google so they could anticipate the load on various services on day one. All this helped ensure they wouldn’t risk downtime while the systems where scaling.

With launch day rapidly approaching, load testing also became a major priority. Using Google Cloud Datastore, DeNA was able to complete a test with 3 million accesses per second. This gave both DeNA and Nintendo confidence that Super Mario Run’s back-end would be more than capable of withstanding the projected number of accesses when the game went live.

Looking toward the future

All of DeNa and Nintendo’s hard work paid off when Super Mario Run launched last December. Although there were more than 40 million downloads in the first four days alone, the launch went off without a hitch.

Now the teams are looking forward to tackling new challenges. A system like Super Mario Run generates log data in huge volumes, so plans are already in the works to use Google BigQuery to analyze those logs and apply any learnings to future app development. They’re also using their experiences with Super Mario Run and App Engine for the development of new games, like the recently released Fire Emblem Heroes. We look forward to seeing what they do next.

Super Mario Run is available for iOS and Android.

Source: Google Cloud