Eche un vistazo al código detrás del cambio de colores de sombreros en el juego 'Among Us'

Eche un vistazo al código detrás del cambio de colores de sombreros en el juego ‘Among Us’

  • Un Entre nosotros El programador se une a nosotros para explicar una pieza clave del código del juego.
  • Este juego multiplataforma hace que parezca fácil albergar jugadores de una docena de sistemas diferentes.
  • El juego está construido en el popular motor Unity, con código C++ y C# detrás de escena.

    En el juego de éxito Entre nosotros, un grupo de jugadores se sube a una nave espacial y se les asignan pequeñas tareas, como el mantenimiento y la reparación del motor. Pero para un jugador, la “pequeña tarea” es matar a todos los demás. El juego salió en 2018, pero experimentó un éxito meteórico a partir de 2020 como un juego de fiesta en el que los grupos podían jugar juntos de forma virtual. Para empezar, es un juego divertido, pero también ilustra algunas cosas interesantes sobre cómo se hacen y diseñan los juegos de computadora. Hablamos con Shahrin Khan de Innersloth, los creadores de Entre nosotros. Compartió un fragmento de código del juego que nos ayudará a contar la historia.

    Cómo se juega el juego

    Entre nosotros es un juego para hasta 15 jugadores. Todos eligen colores y accesorios, como sombreros o mascotas, en un área de espera principal. Una vez que comienza el partido, se eligen hasta tres jugadores para que sean impostores y el resto son jugadores regulares. Este es un juego de roles asimétrico, porque los impostores tienen un conjunto diferente de movimientos y habilidades que el resto de los jugadores. Es posible que conozcas juegos de supervivencia de terror asimétricos populares como Muerto a la luz del día, donde asesinos y sobrevivientes se enfrentan entre sí. En Entre nosotros, los miembros de la tripulación tratan de sobrevivir. El impostor puede viajar a través de rejillas de ventilación ocultas, con el objetivo de atrapar y matar a los jugadores donde otros no puedan verlos. Luego, todos se reúnen para votar quiénes creen que son los impostores.

    un programador entre nosotros explica un fragmento de código

    Victoria T. (Innersloth)

    Por qué este juego atrae a los usuarios

    Uno de los grandes atractivos de Entre nosotros es que el juego es compatible con el juego multiplataforma, lo que significa que las personas con la aplicación gratuita de Android pueden unirse a juegos con personas en Nintendo Switch, PC y otras consolas. El juego está hecho en Unity, que es un motor de juegos: el software que admite y sustenta el desarrollo de juegos al incluir muchas funciones y bibliotecas existentes que los desarrolladores probablemente usarán.

    Lanzado por primera vez en 2005, Unity se estrenó como un motor de Mac antes de incorporar soporte para casi cualquier otro tipo de plataforma, desde Linux hasta consolas. Incluso es gratis para muchos usuarios, porque hay un mínimo de ingresos anuales de $200 000 antes de que una cuenta cambie a la versión paga de Unity Pro, y los desarrolladores que ganan más de $200 000 al año son raros. Debido a su filosofía de “democratización”, Unity también tiene una gran comunidad de personas que contribuyen con activos para que otros los usen en sus proyectos. Para estudios pequeños e individuos, eso significa ahorrar tiempo y dinero en la creación de activos como modelos de personajes y fondos.

    Los lenguajes de programación que funcionan

    Unity utiliza los lenguajes de programación C++ y C#. La codificación es muy generacional e iterativa, con lenguajes que agregan características y rasgos con el tiempo. C++ y C# se remontan a C, que se introdujo en la década de 1970 pero sigue siendo popular hoy en día como una forma de codificar sistemas operativos y hardware. (Ni siquiera es el lenguaje más antiguo todavía en uso generalizado; COBOL, popular para los sistemas de contabilidad y banca por lotes, se remonta a 1959. ¡Es probable que haya otros!)

    C ++ es la columna vertebral de una gran cantidad de programación de videojuegos, en parte porque fue diseñado para interactuar con el hardware de una manera eficiente desde el punto de vista energético. Eso significa que el software escrito en C ++ puede ejecutarse de manera más eficiente al aprovechar las características del hardware de la computadora, como gráficos y RAM. C#, a su vez, supuestamente fue diseñado en respuesta al lenguaje Java. (La muestra que Shahrin Khan me envió se parece tanto a Java, un lenguaje que he usado más yo mismo, ¡que inicialmente lo confundí con eso!)

    Veamos el código

    Khan escribe código para Entre nosotros en un entorno de desarrollo integrado (IDE), software que facilita la visualización y el trabajo con el código mediante funciones como la codificación por colores. ¡Tendremos que prescindir de esta muestra!

    muestra un bloque de código que cambia el color de un sombrero

    perezoso interior

    Este es un método, que es un bloque de código que solo se ejecuta si alguien en otro lugar lo “llama”. Llamar a SetHat(15) es como escribir 15 en su calculadora y luego presionar la raíz cuadrada, excepto que en lugar de la raíz cuadrada, el método cambia el color de su sombrero. “Se supone que ya sabes cual sombrero para usar, pero el color está cambiando”, explica Khan. Las opciones de color se almacenan en valores enteros, porque eso es mucho más fácil que pedirle a la computadora que analice o interprete el nombre de un color escrito como una palabra.

    Luego, el código convierte el número entero del código de color en algo que hace el cambio en el motor de Unity. Este cambio en realidad aplica la información visual correcta al arte representado en el juego. “Eventualmente inicia una corrutina, básicamente, algo que Unity intenta hacer en segundo plano mientras hace otras cosas para que el juego no parezca congelado, para cargar los ‘datos de vista’ para el sombrero”, dice Khan. “Una vez que cargamos la textura, finalmente usamos la identificación de color que nos pasó para colorear el sombrero apropiadamente”.

    El programador Among Us explica un fragmento de código.

    Victoria T. (Innersloth)

    Los juegos, especialmente los juegos multijugador en línea, siempre equilibran muchos flujos de información al mismo tiempo. Y esto también es cierto para la mayoría de los otros usos de la informática. Vemos todas nuestras aplicaciones o ventanas abiertas y pensamos en ellas como flujos separados que se ejecutan a la vez, pero eso se debe a la programación que escalona el “siguiente paso” de cada proceso para que todo parezca uniforme. En realidad, es más como rasguear una guitarra: técnicamente estás golpeando una cuerda a la vez muy juntas, creando el sonido de un acorde.

    Entre nosotros tiene más de 300 sombreros y representan una gran parte del modelo financiero del juego. La aplicación de Android es gratuita y otras versiones del juego tienen un costo bastante bajo; pero todos los jugadores pueden pagar la moneda del juego que se puede usar para comprar paquetes de cosméticos temáticos para las temporadas, días festivos y otros eventos especiales. “Personalmente, lo más divertido de los sombreros es ver todos los nombres basados ​​en juegos de palabras para ellos”, dice Khan. “Tenía muchas ganas de pensar en un buen juego de palabras para decir eso, pero no pude”. (Un buen juego de palabras es difícil de superar).

    Los sombreros son divertidos, pero hay un gran inconveniente, explica Khan. “Un desafío es la gestión de la memoria. Muchos dispositivos móviles más antiguos no pueden tener demasiados activos cargados en el juego a la vez, lo que ha provocado problemas de bloqueo para algunos usuarios. Esto es algo que debemos tener en cuenta cada vez que agregamos nuevos cosméticos de cualquier tipo, sombrero o no”, dice ella. Y eso tiene sentido, porque cuanto más compleja se vuelve una experiencia de juego, y cuanto más arte diferente se usa y administra durante el juego, más presión hay sobre el procesador de la computadora y la memoria que alimentan el dispositivo.

    Si alguna vez se realizó un cambio en el método SetHat anterior, hay un proceso muy específico para introducir el cambio en el código y, finalmente, en los jugadores. Khan haría el cambio localmente en su propia máquina y luego lo probaría. (La prueba no es solo un paso o una ubicación en el proceso: existen media docena de tipos diferentes de prueba, y algunos se usan varias veces durante el desarrollo). A partir de ahí, el nuevo código se cargaría en archivos compartidos en GitHub de Innersloth, un servicio en línea que rastrea cambios y versiones de software.

    “Todas las noches, tenemos un sistema automatizado que toma nuestra base de código de trabajo y crea un ejecutable o una ‘construcción’ a partir de él para varias plataformas como Steam, Android, etc.”, explica Khan. “A la mañana siguiente, esas construcciones estarán listas para nuestra [quality assurance (QA)] equipo para probarlo. Si pasa sus pruebas, entonces el cambio se considera funcional y está listo para pasar a la próxima actualización”.

    A veces, los cambios son urgentes, como un nuevo código que corrige un error que hace que el juego se bloquee. Otras veces, el código es para mejorar el rendimiento, nuevas funciones o correcciones de errores esotéricos y poco comunes que no tienen la misma urgencia. Los equipos de desarrollo deciden juntos cuándo quieren planificar versiones actualizadas de su software. También puede implementarse en diferentes momentos entre plataformas.

    Khan tuvo algunos trabajos de codificación antes de trabajar en Entre nosotros, incluidos seis años como desarrollador de Unity en una empresa de juegos móviles. Ella dice que se sorprendió de lo genial que es el equipo en Innersloth, lo cual siempre es algo grandioso en un trabajo. “Creo que lo principal que fue sorprendente es lo grandioso que es el equipo y lo divertido que todos nos divertimos trabajando juntos”, dice ella. “Eso suena muy cursi, pero es verdad”.

    Este contenido lo crea y mantiene un tercero, y se importa a esta página para ayudar a los usuarios a proporcionar sus direcciones de correo electrónico. Es posible que pueda encontrar más información sobre este y contenido similar en piano.io


Source link