Adaptación al ritmo acelerado de un juego en red multijugador en VR con PIGIAMA KASAMA

Fundada en 2022, PIGIAMA KASAMA es una empresa de producción de juegos que crea juegos para sus propias marcas registradas, como Kasama: The Awakening, y ofrece servicios de desarrollo de juegos a otras marcas.
Su título más reciente, PICKABOOM, es una social de próxima generación VR juego construido en torno a la exploración, interacciones caóticas y cooperación en tiempo real en modo multijugador. Los jugadores descienden a sistemas de cuevas impredecibles, sobreviven a desastres naturales absurdos y crean sus propios momentos de comedia, tensión y triunfo.
Hablamos con los cofundadores, Matteo Fanchin y Paride Stella, para hablar sobre cómo abordaron la inestabilidad de la red, los fallos de reconexión, las caídas de rendimiento y los plazos de entrega rápidos del contenido, todo ello mientras creaban su primer juego de VR multijugador en vivo.
¿Cuál era el objetivo principal con PICKABOOM?
Paride Stella: Nuestro objetivo principal era crear un juego social de VR de alta energía que se sintiera vivo, impredecible y con un potencial de rejugabilidad infinito, un mundo donde los jugadores se unan, sobrevivan juntos y generen de forma natural los tipos de momentos que la gente quiere compartir.
Como juego en vivo, PICKABOOM tiene demandas de movimiento rápido: lanzamos actualizaciones semanalmente, solucionamos constantemente los problemas que surgen en la comunidad y agregamos nuevo contenido mientras mantenemos el rendimiento sólido. Esto nos obligó a diseñar sistemas que se escalen, sincronicen la física entre varios jugadores y mantengan el rendimiento en los auriculares independientes.
Queríamos que pareciera una supervivencia caótica en modo cooperativo mezclada con la cultura de creadores, donde el entorno, los desastres y las interacciones físicas sorprendan constantemente a los jugadores y los impulsen a colaborar.

¿Cuál fue el mayor desafío técnico al desarrollar PICKABOOM?
Matteo Fanchin: PICKABOOM es el primer título multijugador de nuestro estudio, y nos obligó a enfrentarnos a la inestabilidad de la red, fallos de reconexión, caídas de rendimiento durante eventos de física caótica y la presión de lanzar actualizaciones semanales mientras mejoramos continuamente la calidad del juego.

¿Qué medidas tomó el equipo para superarlo?
MF: Dividimos el problema en etapas: crear un pipeline de contenido en vivo e implementar un perfilado continuo. Para el pipeline de contenido en vivo, modularizamos herramientas y enemigos, permitimos que se agregue nuevo contenido rápidamente, nos aseguramos de que las actualizaciones no rompieran las compilaciones anteriores y ajustamos el calendario semanal cuando era necesario.
Para el perfilado continuo, realizamos pases de rendimiento regulares, probamos la carga multijugador con jugadores reales de la comunidad y priorizamos la optimización específica de VR para el uso de memoria, la recolección de basura y los picos de GPU. Este enfoque nos permitió enviar actualizaciones semanales estables sin ralentizar el desarrollo.

¿Qué nuevas características y actualizaciones en Unity 6 ayudaron a superar los desafíos técnicos a los que se enfrentó el equipo?
PS: Al escalar el juego, agilizamos el tiempo de iteración y mejoramos el rendimiento con las siguientes características y actualizaciones:
Tiempos de compilación más rápidos: Un juego en vivo requiere compilaciones frecuentes. Dado el carácter multijugador, con hasta 10 jugadores simultáneamente, era fundamental realizar pruebas con equipos internos y externos. Los tiempos de compilación más rápidos permitieron ahorrar una cantidad significativa de tiempo de desarrollo.
Mejoras en el rendimiento del Universal Render Pipeline (URP): Desarrollar para VR siempre es un desafío debido a las limitaciones de hardware. Mejoras en URP facilitó el desarrollo, ya que las mejoras de rendimiento eran tangibles. Ajustamos la iluminación, las sombras y los materiales para garantizar la claridad y legibilidad en entornos caóticos.
Actualizaciones de Shader Graph: Utilizamos Shader Graph extensivamente para mejorar la velocidad de creación de activos, los efectos procedimentales, la personalización de personajes y la optimización.
Desarrollamos sombreadores de mapa personalizados para pintar de manera procedural materiales complejos con un coste de rendimiento mínimo. Los sombreadores pueden generar múltiples biomas visuales. Permiten crear estilos muy diferentes utilizando muy pocos recursos y manteniendo un bajo impacto en la GPU y la memoria.
Shader Graph también fue fundamental en la creación de nuestro sistema de materiales de avatar. A través de un pipeline personalizado, se puede compartir un solo material en todos los personajes sin depender de las texturas, al mismo tiempo que se permite a los jugadores personalizar casi todos los elementos de su avatar, hasta detalles como el color de las uñas. Este enfoque garantiza un rendimiento máximo incluso cuando se muestran simultáneamente un gran número de personajes y accesorios.

Mejoras en el rendimiento de Unity Physics: Unity Physicsimpulsa todas las interacciones, incluyendo lanzar, agarrar, reacciones de los enemigos y desastres. Hemos optimizado la configuración de Rigidbody para que siga siendo lo suficientemente determinista para el modo multijugador.
Mejoras en el sistema de Audio de Unity: El sistema de Audio de Unity se utilizó para las indicaciones de posición, las voces de los jugadores, los enemigos y las explosiones, lo que ayudó a los jugadores a coordinarse y comunicarse en tiempo real. Estas mejoras permitieron obtener indicaciones de sonido espacial claras, incluso en momentos caóticos.
Estabilidad de Addressables: Utilizamos Addressables para admitir actualizaciones en tiempo real de personajes, objetos y accesorios, lo que garantiza la máxima flexibilidad y permite la escalabilidad a largo plazo del proyecto.

¿Cómo implementó el equipo efectos optimizados para GPU?
PS: Implementamos efectos optimizados para GPU utilizando en primer lugar la creación de instancias de GPU para la vegetación y las gemas. Esto jugó un papel importante en la reducción del impacto en el rendimiento de los efectos visuales y las partículas. Luego optimizamos cada sombreado para mantenerlo lo más ligero posible, conteniendo solo la lógica estrictamente necesaria para su propósito.
También optimizamos la geometría para mantener el número de polígonos y las llamadas de dibujo lo más bajos posible. Nuestro intrincado sistema de cuevas es extremadamente ligero, lo que permite un rendimiento fluido en hardware VR independiente. Grandes secciones de la PICKABOOM El mapa se puede prototipar, probar e implementar en menos de dos días hábiles gracias a nuestro editor de mapas desarrollado a medida.
Por último, reducimos los costos de iluminación.El estilo visual del juego se diseñó para minimizar el uso de iluminación en tiempo real casi por completo. Las luces en tiempo real solo se utilizan cuando es absolutamente necesario, como para momentos específicos de efectos visuales o la linterna del jugador. Nuestro editor de mapas personalizado incluye un sistema de sonda de luz adaptativa creado específicamente para entornos de cuevas, lo que nos permite lograr una iluminación estable y creíble a una fracción del coste de rendimiento.
Hicimos pruebas de referencia de cada parte de este enfoque para más de 60 fps en Quest 3 y Quest 3S.

¿Cuáles son sus objetivos de flujo de contenido?
MF: Lanzamos nuevas actualizaciones cada semana, que incluyen nuevos elementos, nuevos minijuegos, mejoras de estabilidad y características solicitadas por los jugadores. Planificamos de dos a tres semanas por adelantado, pero mantenemos la flexibilidad en función de los comentarios de los jugadores y los informes de fallos. Podemos crear contenido muy rápidamente utilizando contenido modular, enfoques de prototipado rápido y Addressables.
¿Qué problemas relacionados con el rendimiento encontró el equipo?
PS: Nos enfrentamos a picos de física, explosiones de Rigidbody, fluctuaciones de red y problemas de carga de GPU durante el juego de desastre. Abordamos estos desafíos simplificando la capa física, optimizando los colliders, utilizando la creación de instancias de GPU y sombreado de menor coste, mejorando la frecuencia de sincronización y eliminando las actualizaciones innecesarias de objetos.
El Unity Profiler y el Frame Debugger fueron muy útiles. También contamos con el Deep Profiler para identificar problemas de recolección de basura, así como con Android Logcat para el diagnóstico en tiempo de ejecución.

¿De qué hitos está más orgulloso?
MF: En primer lugar, nos complace haber logrado una velocidad de más de 60 fps en Quest 3 y Quest 3S. También estamos orgullosos de admitir cientos de objetos de física en red sin pérdida de rendimiento y de mantener cero errores "bloqueantes" durante las actualizaciones semanales. Por último, es genial tener un sistema de cámara que capture imágenes de alta calidad sin caídas de fotogramas.
¿Qué consejo le daría a un desarrollador que busque escalar su juego de realidad virtual?
PS: Mi consejo sería prototipar rápidamente y perfeccionar más adelante. También es importante mantener la arquitectura multijugador simple antes de escalar y realizar un perfil constante.
MF: Es esencial crear contenido en piezas modulares y dar prioridad a la estabilidad de los fotogramas en lugar de los elementos visuales. También te recomiendo que realices pruebas con jugadores reales semanalmente y que desarrolles herramientas de forma anticipada.
Para obtener más información sobre los proyectos realizados con Unity, visite el Página de recursos.
