Ghost of Yōtei ha sido un trabajo de amor para Sucker Punch y estamos felices de tenerlo disponible en el mundo para que todos puedan jugar. Ahora que los jugadores han probado el juego, pensamos que era una buena oportunidad para hablar un poco sobre la tecnología que nos ayudó a llegar hasta aquí.
A partir de lo que logramos con Ghost of Tsushima, la visión del proyecto para Ghost of Yōtei puso un mayor énfasis en la sensación de libertad del jugador en una naturaleza salvaje. Esto significó esforzarse por encontrar formas menos intrusivas de guiar a los jugadores, hermosos entornos con líneas de visión más largas, combates con armas más flexibles, personajes memorables con personalidad y momentos emotivos de la historia. Intentar hacer todo esto manteniendo una buena velocidad de fotogramas es claramente un desafío.
Entonces, ¡profundicemos en algunos aspectos de la tecnología que utilizamos para crear Ghost of Yōtei!
Vagando por un mundo salvaje
Al crear un prototipo de nuestra visión de la exploración libre, encontramos que sería más efectivo si los jugadores pudieran contemplar un hermoso paisaje y seguir su curiosidad para encontrar el juego. Desde una perspectiva técnica, conseguir esa sensación requirió líneas de visión más largas, lo que significa una mejor representación del césped, el terreno y las montañas en la distancia.
Mejoramos la apariencia de montañas distantes horneando modelos y materiales detallados del terreno en texturas que pudimos mostrar con mayor detalle. También duplicamos la cantidad de césped y elementos renderizables que nuestro procesador de procesamiento GPU puede producir. En esta toma, las montañas distantes con más de un millón de árboles, rocas y arbustos se reducen a unos sesenta mil elementos individuales que renderizamos para generar nuestros G-buffers para construir la imagen final.
Utilizamos técnicas de creación asistida por procedimientos y nos apoyamos en gran medida en la computación GPU para procesar todas estas instancias de manera eficiente sin la participación de la CPU. Esto implica secuencias de trabajos de cómputo para realizar selección de oclusiones, asignación de memoria y completar registros de extracción antes de leer esa información en la CPU para unirla a las listas de comandos finales para el marco. Aquí hay una animación de una toma similar con toda la geometría dibujada por GPU animándose en su lugar para darle una idea de la escala involucrada. Usamos estas técnicas para datos generados en tiempo de ejecución, así como para nuestros amplios campos de flores, e incluso ocasionalmente para cosas como cuerdas y cadenas.
Para darle a cada área del mundo un sabor único, creamos sistemas de interacción que ayudan a enfatizar sus temas. Gran parte del mundo tiene pasto o plantas pequeñas, y además de deformarse con el viento y el movimiento de los personajes, agregamos un sistema que convierte los barridos de armas en un “amortiguador de corte”. Luego, este búfer se muestrea mediante geometría cortable y se utiliza para generar partículas con la geometría por encima del corte. Esto le permite a Atsu cortar la mayoría del césped, flores y plantas pequeñas del juego.
Hokkaido tiene los inviernos más extremos de Japón, por lo que queríamos retratar de manera realista la interacción de los personajes con la nieve profunda. Para respaldar eso, construimos un sistema de teselación de terreno que aumenta la cantidad de detalles que puede representar el terreno y que puede deformarse dinámicamente en tiempo de ejecución. Para lograr esto, las partículas y la geometría se representan en un amortiguador de desplazamiento mientras los personajes caminan, ruedan y luchan a través de él. Esto era lo suficientemente flexible como para ampliarlo para permitir que los personajes quitaran la nieve de los árboles y arbustos, generando partículas de nieve en el proceso. Cuando combinamos eso con un nuevo efecto de brillo de nieve usando ruido estable en el espacio de la pantalla, termina luciendo así.
Las montañas altas como el monte Yōtei a menudo están cubiertas por nubes, por lo que tuvimos que encontrar una forma de representar las nubes frente a la geometría del mundo, lo cual no era posible en el motor de Ghost of Tsushima. También queríamos dar la impresión de un clima tormentoso e inestable aumentando la velocidad a la que podían moverse las nubes. Para permitir un movimiento más rápido de las nubes sin artefactos objetables, almacenamos la profundidad visible promedio de cada texel en el mapa de nubes (medido desde la cámara), lo que nos permite usar técnicas de mapeo de paralaje mientras nos desplazamos por cada cuadro de nube. (También combinamos tres cuadros de nubes en lugar de solo dos, lo que da como resultado un movimiento aún más suave). Al almacenar también la profundidad cuadrada visible promedio en el mapa de nubes, podemos reconstruir una distribución estadística simple de la opacidad de las nubes a lo largo de cada rayo, y esto nos permite calcular cuánto deberían oscurecer las nubes la geometría del mundo, como las montañas.
La niebla y la dispersión atmosférica fueron un enfoque importante al establecer el estilo artístico de Ghost of Tsushima, y para Ghost of Yōtei queríamos aprovechar eso agregando soporte para los volúmenes de niebla locales. Estos se calculan de manera eficiente utilizando las instrucciones GPU expandidas de punto flotante de 16 bits de la PS5. Como efecto secundario de nuestras optimizaciones de nubes, calculamos un mapa de sombras de nubes en el espacio de luz, y esto permite que los rayos crepusculares (“rayos divinos”) sean visibles en nuestra niebla volumétrica, incluso lejos de la cámara. También permitimos que los artistas coloquen “objetivos de rayos divinos” en el mundo para que sean iluminados con mayor frecuencia por un agujero en las nubes.
Carácter y movimiento
Uno de nuestros principales objetivos era hacer que el mundo de Ghost of Yōtei pareciera vivo. Queremos que todo en la pantalla se mueva con el viento, incluida toda la ropa que usan los personajes, las borlas de las armas y toda la tela que cuelga en los asentamientos. Cuando te revolcas y peleas, queremos levantar polvo y hojas mientras te dejas embarrado y ensangrentado, para realmente anclarte en el mundo.
Los complejos trajes de Atsu solo pueden moverse de manera realista gracias al nuevo soporte de capas que incorporamos en nuestro sistema de tela informática GPU de alto rendimiento. Además de agregar soporte para múltiples capas de tela simulada (como se ve a continuación), admitimos colisiones de tela y utilizamos un conjunto de heurísticas cuidadosamente ajustadas para simular una gran cantidad de simulaciones de tela individuales de manera eficiente. Aquí hay un ejemplo de Atsu con uno de sus trajes más complejos, rodeada de tela en movimiento.
Las partículas de GPU han sido un punto fuerte para Sucker Punch desde Infamous Second Son. En Ghost of Yōtei seguimos agregando trucos a nuestra bolsa, permitiendo que las partículas tomen muestras del material del terreno, la deformación y el flujo de agua. Por ejemplo, esta toma muestra partículas que aterrizan y fluyen río abajo.
Además de afectar al mundo, anclamos a los personajes haciendo que el mundo devuelva el golpe. Hacemos esto esparciendo información en una cuadrícula direccional deformada alrededor del personaje que luego usamos para aplicar capas de efectos de textura para hacer que el personaje esté mojado, ensangrentado, embarrado o nevado.
También aprovechamos nuestros sistemas de partículas para permitir al jugador viajar al pasado para explorar la historia familiar de Atsu. Para intercambiar entre el pasado y el presente, cambiamos el esqueleto y la geometría de Atsu mientras mantenemos el estado y la animación de su personaje consistentes. Los elementos del fondo y la iluminación también cambian instantáneamente gracias a la velocidad del SSD con una captación previa cuidadosamente elegida. Esto se hace detrás de una cortina de partículas animadas que muestrean una copia del búfer de cuadros justo antes de la transición.
Mejoras en Ray Tracing y PS5 Pro
Como juego nativo de PS5, sabíamos que queríamos mejorar la calidad de la imagen aprovechando algunas de las tecnologías más nuevas de la plataforma. Con el lanzamiento de la PS5 Pro, también queríamos avanzar en una dirección que nos ayudara con juegos futuros. Basándonos en el sólido apoyo de los equipos tecnológicos centrales de PlayStation, invertimos en dos grandes áreas: trazado de rayos y muestreo superior de imágenes con PSSR.
Dado que Ghost of Yōtei tiene lugar en el desierto de Hokkaido del siglo XVII, hay pocas superficies parecidas a espejos que se presten a reflejos con trazado de rayos. En cambio, decidimos utilizar el trazado de rayos para mejorar la fidelidad de nuestra solución de iluminación global. Atacamos esto desde dos direcciones: primero con un modelo de iluminación horneado mejorado y más automatizado, que luego podríamos aumentar con iluminación global con trazado de rayos (RTGI) de corto alcance. Esto requirió cambios significativos en nuestro formato de transmisión en malla, lo que nos permitió descomprimir dinámicamente las estructuras de aceleración utilizadas por el hardware de trazado de rayos. Al utilizar el hardware de trazado de rayos más eficiente de la PS5 Pro, los jugadores pueden habilitar RTGI dirigido a 60 fotogramas por segundo en las consolas Pro.
Para Ghost of Yōtei reconstruimos nuestro marco para usar un algoritmo de resolución dinámica más general, con muestreo superior, en parte para poder aprovechar PSSR. PSSR funciona muy bien para nosotros con solo unos pocos ajustes, incluida la ejecución de una rasterización conservadora para partículas pequeñas. En comparación, nuestro algoritmo de muestreo ascendente estándar requiere muchas más sugerencias y ayuda de creación para lograr buenos resultados. Aquí hay una mirada de lado a lado. Si hace un acercamiento muy cercano (16x antes de la compresión del gif), puede ver que PSSR hace un mejor trabajo al reconstruir detalles finos de la arquitectura y el follaje. También es más estable en movimiento.
Velocidad de carga
Durante mucho tiempo, Sucker Punch se ha enorgullecido de lograr que los jugadores accedan a nuestros juegos lo más rápido posible. En Ghost of Yōtei continuamos esta tradición duplicando los tiempos de carga rápidos.
Optimizamos la carga mediante el preprocesamiento de datos para que solo requiera un puñado de lecturas de SSD y operaciones de parcheo por ubicación o mosaico de terreno para cargar datos relevantes para el juego. Luego calculamos y cargamos solo los mips de textura y los LOD de malla necesarios para representar el primer fotograma, con una lectura por elemento. Así es como se ve la carga desde el extremo sur hasta el extremo norte sin que la pantalla se apague. (Tenga en cuenta que esto es algo más lento de lo que sería si no tuviéramos que renderizar el mundo todo el tiempo).
A lo largo del desarrollo, utilizamos estos sistemas como “comida para perros” en lugar de utilizar un modelo de carga diferente para el envío de construcciones. La comida para perros es un lenguaje de programador para cada programador, artista y diseñador que prueba lo que enviamos para mejorar su calidad.
Conclusión
Este es un pequeño vistazo a parte del trabajo técnico que realizamos en Sucker Punch. Sin embargo, crear juegos es más que eso: es un gran esfuerzo de equipo con tecnología que informa al arte y tecnología que informa al arte en todas partes.
Cuando comenzamos este proyecto hace cinco años, nuestro objetivo era construir un mundo de juego en el que a los jugadores les encantaría perderse. Muchas de nuestras decisiones técnicas se basaron en la fantasía central de Ghost of Yōtei: la de una guerrera errante que acepta eventos de su pasado. Estamos encantados de ver cómo esta visión cobra vida cuando los jugadores comparten sus experiencias y publican increíbles capturas de pantalla y videos del juego usando el Modo Foto.
Ciertamente estamos orgullosos del resultado y esperamos que todos disfruten deambulando por la naturaleza en Ghost of Yōtei.
Si está interesado en obtener más información sobre la tecnología y el proceso de desarrollo de Sucker Punch, eche un vistazo a nuestras presentaciones anteriores en conferencias como GDC y SIGGRAPH. Esperamos compartir más en 2026.
Un agradecimiento especial a Jasmin Patry, Doug Davis y Eric Wohllaib, quienes me ayudaron a editar y preparar el contenido para esta publicación, así como a toda la gente de Sucker Punch cuyo trabajo represento aquí.