Descubre cómo el desarrollador en solitario Billy Basso logra efectos de fondo, efectos fluidos, latencia súper baja y más.
Animal Well es otro juego indie de pixel art 2D, así que ¿por qué se ve y siente… solo un poco diferente? En su resumen del Summer Games Fest, Danny O’Dwyer (Noclip) lo definió mejor cuando llamó a Animal Well “el juego que es más difícil de explicar por qué me gusta”. Definir lo que lo diferencia puede ser elusivo, especialmente cuando tu cerebro te dice que se ve como si viniera de la era de Commodore 64. Hoy pensé en tomarme algo de tiempo para desglosar algo del trabajo que se toma para hacer que un solo cuadro de Animal Well se vea como se ve. Lo que se viene adelante será un tour relativamente breve y de alto nivel – cada una de las características mostradas puede tener una publicación propia en el blog- pero, sin embargo, creo que echar un vistazo resultará interesante.
Para empezar, Animal Well está renderizado en muchas capas diferentes que se componen todas juntas en formas bastante complicadas. Acá puedes dar un vistazo a algunas de esas capas, y cómo se usan juntas para renderizar la iluminación, antes de producir la imagen final.
Esta toma es del principio del juego donde puedes utilizar petardos para desvanecer un fantasma que te persigue. Podemos desglosarla para ver algunos de los pasos de renderizado involucrados.
Para más diversión, también podemos ver cómo se vería la toma con la iluminación deshabilitada.
Cuando se trata de renderizar, Animal Well hace muchas cosas pequeñas que se suman al resultado final que ves. Acá tienes unos cuantos ejemplos.
Mapas Normales
Cuando una luz se mueve a través del escenario de fondo, lo ilumina diferentemente basado en la dirección de donde viene la luz. Para lograr esto, utiliza mapas normales. Los mapas normales son texturas que ayudan a definir pequeños detalles geométricos en una superficie que de otra forma sería perfectamente plana. El color de cada píxel representa la “superficie normal”, la cual es un vector que describe en qué dirección está orientada la superficie. Son una parte muy estándar de la mayoría de las canalizaciones de arte en 3D pero son mucho menos comunes en los juegos en 2D. Dibujé manualmente los mapas normales, junto al resto del arte del juego.
Fuente de luz interactuando con los mapas normales
Efectos de fondo
Animal Well hace muchas cosas divertidas para sus fondos. En este ejemplo vemos un montón de geometría 3D implícita siendo marcada por rayos, que luego también presenta reflejos marcados por rayos. La geometría implícita es cualquier cosa que no esté definida con mallas 3D tradicionales. En el caso de Animal Well, estoy utilizando lo que se conoce como funciones de distancia de signo o SDFs. Esta geometría está iluminada por las fuentes de luz definidas en las capas que tiene delante. Los SDFs pueden ser costosos para renderizar (“costosos” en el sentido de utilizar una valiosa potencia de procesamiento limitada), pero en este caso, el GPU de PS5 hace un trabajo rápido.
Efectos fluidos
Animal Well tiene una capa dedicada a ejecutar constantemente una simulación de fluidos Navier Stokes. Se utiliza para una gran cantidad de efectos a lo largo del juego, más comúnmente para agua y humo. Los sprites se pueden atraer a él como “tinte”, y luego los objetos en el juego también pueden atraer fuerzas al campo, lo que hace que el fluido reacciones de una manera muy realista. Simulaciones como esta pueden ser costosas, necesitando ejecutar muchas iteraciones para computar un resultado preciso. También se tiene cuidado especial en ajustar los colores para que encajen con el resto del pixel art.
Herramientas
Una gran parte del desarrollo no involucra trabajar en el juego en sí, sino en crear herramientas para hacer el juego. Desarrollé el motor del juego y el editor desde cero mientras los usaba para crear el juego al mismo tiempo.
Controlador Midi
Casi cualquier variable en mi motor se puede editar a través de un controlador midi que he conectado a mi computadora. Hace que el proceso de ajuste fino de las variables de gameplay sea mucho más veloz (¡y también más divertido!) Al utilizar un controlador midi literalmente puedo marcar la configuración.
Utilicé una versión modificada del popular programa Aseprite para dibujar y animar los sprites. Puedo hacer cambios en Aseprite, lo que genera un formato de animación binaria personalizada, y luego el motor la recargará automáticamente mientras se ejecuta el juego.
Latencia Super Lenta
De la misma forma en que articular exactamente qué tan diferente Animal Well se ve de otros juegos de pixel art puede ser difícil, es igualmente desafiante decir por qué se siente bien jugar. Después de todo, los controles son muy sencillos: muévete a la izquierda y a la derecha, salta y utiliza objetos. Eso es. Entonces, ¿qué tiene de diferente la forma en que Animal Well lo hace en comparación con cualquier otro juego en la historia de los juegos? Todo se reduce a la latencia de entrada.
Crear un motor personalizado totalmente nuevo requiere de mucho trabajo, por lo que posiblemente mucha gente no lo hace. No hay escasez de motores listos para usar, desde Unreal hasta Unity, GameMaker y más. Los juegos creados con motores listos para usar se ubican en la parte superior de la capa del motor, que actúa como un búfer entre el juego y la CPU y la GPU. En Animal Well, tan pronto como el jugador toca el control, el código del juego puede decirle inmediata y directamente a la GPU qué hacer, lo que significa que el juego puede renderizar utilizando tu entrada del mismo cuadro, sin ningún almacenamiento del búfer. El camino desde el cerebro → los dedos → el control → el juego → la pantalla, se hace casi instantáneo. Por supuesto nadie nota esto en un nivel consciente. El juego solo empieza a sentirse como una extensión de tu mente, y el control parece desaparecer.
Grabado a 240 FPS en una pantalla OLED, por lo que se ralentizó aproximadamente un 400%
Cuando se describe el proceso de desarrollo detrás de Animal Well, usualmente utilizo la frase “juego de plataformas de pixel art 2D de próxima generación”. Espero que este vistazo haya arrojado algo de luz sobre lo que quiero decir con eso.
Los comentarios están cerrados.