La tecnología que ha ayudado a Pokémon Go a ser un éxito de masas

pokemon-go_3afs

Lo reconozco. Estoy un poco viciado a Pokemon Go desde salió en el Google Play. El videojuego ha hecho que me reencuentre con mi yo de hace 16 años. Fuera de debates de si se nos está yendo de las manos o no, hay que reconocer que el videojuego ha sido el fenómeno de este verano y que está arrasando por cualquier parte a la que voy. Todo el mundo habla de ello.

Los que hayáis podido jugar en sus primeras semanas de nacimiento habréis podido comprobar que la aplicación no ha funcionado a nivel de rendimiento tal y como se esperaba. Creo que ni la propia Niantic (empresa encargada del desarrollo de la aplicación) se esperaba este recibimiento y las previsiones de escalado no debieron ser las correctas. Es normal.

Si es cierto que cada vez que el juego me ha dejado tirado en el momento más inoportuno me venía a la mente ese gusanillo informático por saber lo que estaría sufriendo esos desarrolladores por solucionar todos esos problemas y a la vez me corroía una intriga sana por saber qué tecnologías les habían ayudado a conseguir este éxito tan descomunal.

Investigando un poquillo en un rato muerto de las vacaciones he podido hacer una foto a muy alto nivel de qué tecnologías usan y cómo deben tener montado todo el tinglao. ¿Os interesa saberlo? Seguidme:

Como no he encontrado mucho por Internet sobre el tema (en StackShare no se ha detallado mucho al respecto), he ido a la fuente original e intentado ver si Niantic se ha encargado de vender bien la tecnología que usa. Por ahora no es así. Podéis ver noticias en este blog, pero por ahora nada sobre lo que usan o dejan de usar. Lo que sí he podido ver son las ofertas de trabajo que tienen en su web. Y de aquí podemos sacar pequeñas conclusiones:

El backend en Pokémon Go

Captura.PNG

Entiendo que el juego se encuentra constantemente enviando la posición del jugador para determinar si existen Pokemons cerca y así poder dibujarlos en pantalla. Según esta oferta se puede llegar a la conclusión de 3 cosas:

  1. Tienen montada su infraestructura en Google Cloud Engine. Aunque pone que se puede tener experiencia en AWS, apuesto bastante a que GCE es la plataforma cloud que usan. Niantic fue una empresa perteneciente a Google en sus inicios y siempre se ha encontrada muy vinculada. Aún comparten un pequeño accionariado. Por lo que no me extrañaría que tengan una gran experiencia en estas plataformas.
  2. Desarrollan su sistema en Java. Imagino que funcionará con una API REST pero no he encontrado nada de las herramientas que utilizan con Java, ni frameworks, ni entornos, ni librerías.
  3. Guardan los datos en una base de datos NoSQL. Tiene sentido que indexen la información en bases de datos no relacionales. Guardar datos como documentos donde toda la información de un usuario se encuentre en ciertas colecciones puede ser una gran forma de escalar. No se si usarán algún sistema de cacheo, pero yo noto que la aplicación funciona algo más rápida y llevan sin darnos nueva versión de la app. Imagino que también estén trabajando por ahí.

En resumen, un back convencional, pero muy robusto y escalable.

El frontend en Pokémon Go

De otras dos ofertas podemos sacar el resto de tecnologías:

Captura1

  1. En cuanto a la app móvil nada nuevo. C++ como la gran mayoría de juegos que existen. Android e iOS al final pueden ser desarrollados con C++ dentro de un moto de videojuegos como veremos a continuación. Tiene pinta que ciertos módulos o librerías no han podido ser portadas en Android y de ahí el uso de Java. O puede que desarrollen en Java y hagan algún tipo de migración a C++ para que el juego se pueda usar en iOS. Mis pocos conocimientos en desarrollo de videojuegos aquí hace que no pueda opinar.

En la otra oferta:

Captura2

  1. El motor de videojuegos multiplataforma que utilizan es Unity. Todo el modelado de los Pokémons, la interacción del personaje con los mapas y las físicas y texturas de nuestras pokeballs son obra de esta gran herramienta.

Conclusión

Como podéis ver un stack tecnológico bastante convencional y usado por una gran mayoría del sector, pero que les están dando un gran rendimiento. Estaría bien que la propia Niantic nos explicase cómo están escalando y qué problemas han sufrido durante su desarrollo como ya han hecho empresas como Netflix. Por ahora solo podremos ‘cotillearles’ las ofertas de trabajo :).

Si alguno de vosotros habéis podido investigar o sabeis algo sobre este caso de éxito, no dudéis en usar los comentarios para aportar vuestros descubrimientos o para detallar algo de lo que yo haya comentado.

Nos leemos 🙂

 

Imagen portada | Latam IGN

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s