Cómo Google App Engine ayudó a Super Mario Run

Para poder soportar millones de usuarios en el día del lanzamiento de Super Mario Run, Nintendo confió en App Engine para implementar su back-end.

El lanzamiento de un juego como Super Mario Run no fue una tarea sencilla para Nintendo y la empresa DeNA (encargada del desarrollo). Estamos hablando de uno de los personajes más queridos del mundo de los videojuegos, y un auténtico icono para Nintendo. Si a esto le sumamos que el lanzamiento sería a escala mundial en 150 países al mismo tiempo, vemos como el problema reside realmente en la escalabilidad: desde el día uno tenían que tener un back-end preparado para servir información a millones de nuevos usuarios.

Nintendo y DeNA ya habían colaborado con anterioridad en otro de sus títulos, Miitomo, así que ambos sabían lo crítico que es tener un back-end robusto para un proyecto como Super Mario Run. Tras valorar diferentes opciones, Kenta Sugahara, líder del equipo de Desarrollo de Sistemas de DeNA, recomendó el uso de Google App Engine.

Construyendo el back-end de Super Mario Run en 6 meses

Diagrama del sistema para Super Mario Run usando Google Cloud Platform
Diagrama del sistema para Super Mario Run usando Google Cloud Platform

Una de las razones por las que DeNA y Nintendo utilizaron App Engine fue la alta disponibilidad de sus servicios. Necesitaban escalar rápido en periodos muy cortos de tiempo, y en colaboración con Google pudieron anticipar la carga que estimaban en el día de lanzamiento para poder tenerlo todo listo. En su lanzamiento anterior, Miitomo, utilizaron sus propios datacenters. Funcionaron bien la mayor parte del tiempo, pero a medida que el juego crecía empezaron a experimentar auténticas dificultades para escalarlo todo adecuada y controladamente.

Otro de los aspectos fundamentales fueras las pruebas de stress. A medida que se acercaba el día del lanzamiento, estos tests cobraban cada vez más importancia. Así, y usando Google Cloud Datastore, DeNA fue capaz de completar un test de 3 millones de accesos por segundo (¡casi ná!).

Al final la diferencia entre un proveedor u otro (AWS, Google App Engine, Azure, etc) depende casi más de la experiencia previa del equipo que de un motivo verdaderamente de peso en mi opinión. Se que Google factura por tiempo y por lo general es más barato, pese a que ahora AWS se ha sumado a este tipo de facturación y también la va a ofertar. Sin embargo, AWS oferta una mayor cantidad de tecnologías para utilizar en sus instancias, lo que podría inclinar la balanza en una decisión del calibre de Super Mario Run.

No paro de oir buenas opiniones acerca de Google, y de como poco a poco y con otro tipo de enfoque están comiéndole algo de terreno a AWS. Clientes como Nintendo los hace posicionarse en el punto de mira para otros proyectos similares. ¿Veremos a EA o Bethesda en un futuro próximo?.

Enlaces relacionados

 

test