Cómo adaptamos Tetris para la nube


Lo recuerdo bien … largos viajes por carretera con mi familia y horas en el coche, con Tetris haciéndonos compañía en la Game Boy de mi hermano. Aclarar línea por línea, clavar un Tetris siempre que pueda, mantener ese bucle musical icónico en mente durante horas hasta que se agoten las baterías … para muchos de nosotros esta fue nuestra primera experiencia con Tetris. Debido a esto, Tetris se reconoce instantáneamente como una experiencia móvil para toda una generación de jugadores.

Recientemente, N3twork pudo trabajar con The Tetris Company para llevar Tetris a una nueva generación de jugadores. Para muchos de nosotros en el equipo, esta oportunidad significó mucho para nosotros. Significó que tuvimos la oportunidad de mostrar este juego por el que teníamos una inmensa cantidad de amor y nostalgia a los jugadores por primera vez. También significó que nos enfrentamos al emocionante desafío de modernizar este clásico con nuevas características que los jugadores de hoy en día esperan. Queríamos introducir nuevas funciones y modos que agreguen elementos sociales a los jugadores y les brinden la capacidad de interactuar, competir y conectarse entre sí.

Dado su uso generalizado, Tetris siempre se ha sentido como en casa como un juego móvil en Game Boy. Llevarlo de vuelta a los dispositivos móviles se sintió como un ajuste natural que despertó instantáneamente la nostalgia entre los jugadores que crecieron con él en la computadora de mano de Nintendo y se mezcló perfectamente con el estilo de vida de los jugadores de hoy que quieren jugar un juego sobre la marcha cuando pueden. en sus teléfonos inteligentes.

Conectando un nuevo mundo de jugadores

Queríamos hacer Tetris más social y no solo llevar la franquicia al mundo de los teléfonos inteligentes con la ayuda de funciones sociales como tablas de clasificación o chats. Hemos desarrollado varios modos competitivos para el juego, como Tetris Royale, donde 100 personas de todo el mundo juegan una ronda con el último jugador en el mismo tablero. En Tetris Together creas salas en las que puedes jugar con amigos. Dimos un paso más para permitir que los jugadores se hablen entre ellos mientras juegan, por lo que se siente más como una reunión. También puede personalizar cualquier juego de Tetris Together para que se adapte a un juego casual o un juego altamente competitivo.

A menudo es más laborioso hacer que todo parezca perfecto. Al desarrollar Tetris Together, descubrimos que establecer nuestra fecha límite para la función significa usar nuestra infraestructura multijugador existente de manera eficiente y adaptarla a las necesidades del nuevo modo. Queríamos que la gente pudiera invitar a sus amigos a sus juegos mediante mensajes de texto que les indicaran a los jugadores que descargaran el juego y luego se conectaran a través de un lobby con un chat de voz funcional. Para obtener todo esto a tiempo para la fecha de lanzamiento global, tuvimos que hacer mucho trabajo técnico para usar la funcionalidad multijugador del modo Tetris Royale pero omitir el emparejamiento. La reutilización eficiente de nuestros recursos existentes para una experiencia multijugador más grande nos ha preparado para un modo multijugador aún más ambicioso.

Como una batalla real real, la integración del nuevo modo BR se asoció con una multitud de desafíos. Como modo de 100 jugadores, teníamos que asegurarnos de que cada jugador tuviera una experiencia de juego constante independientemente de su dispositivo y a pesar de las innumerables condiciones de red en los teléfonos móviles. Pudimos refinar el juego basándonos en las pruebas de los desarrolladores, pero para asegurarnos de que fuera estable a mayor escala, usamos pruebas automatizadas. Hemos desarrollado herramientas para probar nuestro juego con cientos de miles de jugadores jugando al mismo tiempo e imitando el comportamiento del jugador registrado en las pruebas de personal y XP. Estos resultados de estas pruebas nos aseguraron que nuestros servidores estaban a la altura de la próxima gran función que queríamos revelar.

Hay un modo que nos entusiasma especialmente y es Tetris Primetime. Es un programa de juegos en vivo que se presenta todas las noches. En Tetris Primetime juegas contra cientos de miles de competidores en todo el mundo al mismo tiempo. Juegas en rondas, cada una con un nuevo objetivo, y los ganadores participan en el sorteo de premios en dinero real cada noche.

Lograr que el modo de horario estelar se sincronizara correctamente en miles de dispositivos fue difícil. Crear una tabla de clasificación de ciudad a ciudad que muestre a los jugadores cómo les fue contra sus compañeros cercanos. ¿Cómo sincronizamos constantemente la clasificación de cada ciudad importante y cómo recopilamos estos jugadores para obtener resultados comparativos? Para hacer esto, el equipo tuvo que usar AWS Elasticache para crear una tabla de clasificación escalable dinámicamente para mantener los resultados actualizados.

Obtener ayuda de la nube

Si eres un desarrollador de juegos, conoces este problema … dedicamos una cantidad significativa de esfuerzo para brindar a los jugadores la experiencia multijugador perfecta. Al realizar operaciones en vivo para un juego multijugador, los jugadores esperan una experiencia perfecta y no se quedarán con ella si tartamudea. Ofrecer la misma acción dura que los jugadores disfrutarían en la consola o la PC plantea desafíos únicos para los desarrolladores de dispositivos móviles. Las consolas y las PC suelen tener conexiones estables con acceso a Internet confiable. Para los dispositivos móviles, las condiciones de la red pueden ser mucho más difíciles. Móvil significa movimiento, por lo que debe considerar una mayor latencia y conexiones inconsistentes de los jugadores que juegan sobre la marcha.

En empresas anteriores, algunos de nosotros construíamos y operamos nuestra propia infraestructura de servidores. Pero cuando comenzamos N3twork nos comprometimos a no volver a hacer eso nunca más. Para Tetris, creamos el juego en la nube de Amazon Web Services (AWS). Esto nos brinda algunas formas inteligentes de reducir la latencia causada por los dispositivos móviles.

Con Gamelift FleetIQ, podemos aprovisionar rápidamente grandes cantidades de capacidad de servidor para el horario estelar justo antes de que comience el juego para asegurarnos de tener servidores listos para todos en todo el mundo. En Tetris Royale, puedes jugar con cualquier persona del mundo. Entonces, cuando cada jugador envía datos del juego a nuestros servidores, nos sincronizamos rápidamente con Elasticache y, en última instancia, con Amazon DynamoDB para mantener a todos sincronizados. Si un jugador se desconecta por cualquier motivo, podemos mantener el juego en sincronía para los otros jugadores y el jugador afectado, sabiendo dónde están evolucionando todos en el tablero.

Arriba: N3twork usa la nube para ayudar a Tetris a ejecutar varios modos.

Crédito de la foto: N3twork

Hay un tema más que todos los desarrolladores de juegos pueden abordar: cómo escalar cuando su juego lo necesita. Con Tetris Prime Time sabemos exactamente cuándo llegará una ola de jugadores. Todas las noches hay una gran cantidad de personas que se presentan a la misma hora para el programa de juegos en vivo. Vemos que el 80% de los jugadores llegan en los primeros 30 segundos. Tenemos que acceder y proporcionar suficiente capacidad de servidor muy rápidamente para satisfacer constantemente esta demanda y ofrecer a los jugadores una buena experiencia. Aquí es donde entra la nube nuevamente.

Amazon Web Services y su servicio Amazon GameLift nos resolvieron este gran problema. Al acceder a la potencia informática a través de la nube, podemos obtener la capacidad de servidor requerida con la suficiente rapidez sin tener que proporcionar y administrar servidores. Dado que los juegos en horario estelar solo duran unos 30 minutos, podemos obtener rápidamente la capacidad del servidor que necesitamos y luego devolverla cuando hayamos terminado. Habría sido una gran cantidad tener suficientes servidores para manejar la carga de potencialmente cientos de miles de jugadores. Al trabajar con la nube, no tenemos que agregar personal adicional para administrar la infraestructura. Esto ayuda a mejorar los resultados no solo en términos de gastos generales, sino también de alojamiento de servidores al aprovechar las instancias de EC2 Spot no utilizadas con un descuento en comparación con los precios bajo demanda. Tenemos menos de qué preocuparnos y podemos centrarnos más en Tetris y nuestros jugadores a medida que escalamos a medida que crece el juego. Otro beneficio de la nube es la capacidad de asignar completamente la capacidad para ejecutar pruebas de carga, lo que nos permite simular cientos de miles de reproductores viendo simultáneamente para garantizar que toda nuestra arquitectura se escale al mismo tiempo para manejar la carga. . AWS nos facilitó hacer que estas pruebas de carga fueran parte de nuestro proceso de control de calidad normal. Esto es muy útil cuando se prueban nuevos modos o contenido que suponemos será accedido por una gran cantidad de jugadores al mismo tiempo.

Evolución de una leyenda 19659005] En el futuro, los datos nos ayudarán a descubrir qué quieren los jugadores, y ya estamos trabajando para hacer que Tetris Royale sea más competitivo y agregar nuevas formas de desafiar a los jugadores. El horario estelar también está creciendo para sentirse aún más intenso. La infraestructura de juegos puede ser un sistema complicado. Por lo tanto, menos partes móviles nos facilitan el escalado. Todos nuestros modos de juego se basan en una arquitectura común compatible con AWS para que podamos agregar fácilmente nuevas funciones.

Creemos que Tetris es un gran ejemplo de cómo la nueva tecnología puede dar nueva vida a las franquicias tradicionales. Los equipos grandes y pequeños pueden acceder inmediatamente a los grupos de recursos a través de la nube, que se pueden activar o desactivar según sea necesario. La capacidad de eliminar las preocupaciones de administrar la infraestructura y los recursos del juego de su equipo les da la libertad de enfocarse en lo que a todos nos apasiona: hacer que los juegos amen y los juegos que amamos a los nuevos jugadores. accesible en todo el mundo. [19659002] Stephen Detweiler es cofundador y director de tecnología de N3TWORK. Antes de eso, fue cofundador de ngmoco (un pionero en juegos móviles y gratuitos en la era de los teléfonos inteligentes. DeNA lo adquirió).

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *