2 puntos por GN⁺ 2023-11-08 | 1 comentarios | Compartir por WhatsApp
  • El equipo Northlight de Remedy creó desde cero o renovó en gran medida tecnologías clave para Alan Wake 2, desde la arquitectura del motor hasta el renderizado, sentando las bases para manejar mundos más grandes y complejos
  • El nuevo modelo de objetos de juego basado en ECS mejora la eficiencia de memoria y la ejecución paralela segura, lo que permite crear mundos más dinámicos en hardware con distintos números de núcleos de CPU
  • El controlador de personajes basado en vóxeles y el movimiento de NPC basado en animaciones ayudan a que los personajes se muevan con naturalidad incluso en espacios estrechos y complejos, mientras que la herramienta Scattering permite crear vegetación densa
  • El renderizado maneja más geometría y efectos de niebla y transparencia mediante una pipeline impulsada por GPU, mesh shaders, culling de meshlets, animación de vegetación basada en GPU, HDR y renderizado transparente MBOIT
  • La versión para PC aprovecha DLSS Frame Generation, DLSS Ray Reconstruction y Path Traced Indirect Lighting cuando la configuración de hardware lo permite, ofreciendo ray tracing más preciso y robusto que Control

Motor Northlight y tecnologías base de gameplay

  • Durante el desarrollo de Alan Wake 2, Northlight pasó a un framework de objetos de juego orientado a datos completamente nuevo
    • El nuevo modelo se basa en un sistema entidad-componente (ECS)
    • ECS permite almacenamiento eficiente en memoria y una ejecución paralela eficiente y segura
    • Al soportar de forma eficiente distintas cantidades de núcleos en el hardware objetivo, permite crear mundos más grandes, dinámicos y ricos
  • La herramienta Scattering para colocar vegetación a gran escala también aprovecha las ventajas de ECS
    • Permite colocar más entidades en el mundo
    • Reduce la necesidad de crear una solución personalizada separada para la dispersión de objetos
  • ECS también acelera la iteración en la implementación de gameplay
    • Se usó para implementar el Case Board, el storyboard visual donde Saga reúne evidencias
    • Facilita agregar o modificar nuevos sistemas u objetos de juego
    • Se observaron mejoras de rendimiento al guardar y cargar el Case Board

Control de personajes y movimiento de NPC

  • Alan Wake 2 llevó a rediseñar el control de personajes de Northlight
    • El nuevo controlador de personajes basado en vóxeles permite una navegación fluida en entornos estrechos, complejos y dinámicos
    • El movimiento de los personajes se vuelve más natural y fluido
    • Se enfocó en reducir los problemas de personajes chocando con objetos o quedándose atorados en espacios reducidos
  • El movimiento de los NPC también se renovó de forma importante
    • Todos los NPC usan movimiento basado en animaciones junto con el nuevo Motion Matching basado en distancia
    • Mejora la calidad del movimiento y permite controlar mejor cuándo y cómo se usan las animaciones

Viento, vegetación y herramientas de scripting

  • El viento realista de Alan Wake 2 afecta la física, las partículas y las telas
    • Los diseñadores del juego pueden definir fácilmente distintas velocidades de viento para zonas interiores y exteriores
    • La transición entre ambas zonas ocurre de forma suave y sin guardar estado
    • En el auto donde viajan Saga y Casey se aplica una wind box móvil para definir el interior del vehículo como una zona interior sin viento
  • El sistema de viento está construido sobre Signed Distance Fields (SDF)
    • Una wind box se usa como primitiva que define un campo suave de intensidad de viento global
    • Funciona como un bloque base que determina la intensidad del viento de cada zona, haciendo más suaves los patrones de viento entre interiores y exteriores
  • La nueva herramienta Scattering se desarrolló para crear vegetación y props ambientales a gran escala
    • Se usó para crear los entornos más densos, ricos y vivos de Alan Wake 2
    • Se aprovecha junto con una distancia de dibujado (draw distance) más larga que antes, para que el jugador pueda ver objetos y detalles más lejanos
  • El lenguaje de scripting pasó de un lenguaje propio a Luau, un lenguaje de scripting embebido derivado de Lua por Roblox
    • Luau expone amplias funciones del motor y permite edición en vivo
    • Se usa en varios sistemas de gameplay, como el scripting de niveles y el sistema de mejoras de armas
    • El equipo del juego pudo prototipar e implementar diversas funciones de juego y efectos VFX sin ayuda de programadores del motor
    • Remedy creó su propia extensión de servidor de lenguaje para VS Code y la integró en la pipeline de desarrollo
    • La adopción de Luau permitió eliminar alrededor de 80,000 líneas de código que ya no hacía falta mantener

Renderizado centrado en GPU y animación de vegetación

  • Alan Wake 2 muestra la nueva pipeline de renderizado impulsada por GPU de Northlight
    • Permite incluir más geometría en el mundo sin sacrificar rendimiento
    • El renderizado impulsado por GPU que usa mesh shaders permite culling por oclusión con precisión de un solo píxel
    • Todos los elementos de la escena pueden usarse como oclusores
    • Gracias a la capacidad de dibujar solo lo visible, el mundo de Alan Wake 2 tiene más detalle geométrico que lanzamientos anteriores
  • La pipeline de renderizado hace culling no solo de meshes, sino también de meshlets
    • Un meshlet es un grupo de triángulos más pequeño y optimizado extraído de un mesh
    • En el ejemplo de la tienda de conveniencia de Cauldron Lake puede verse la estructura de meshlets
  • Los enormes entornos de bosque primario se implementan con un nuevo sistema de vegetación basado en shaders
    • Este sistema se basa en un nuevo sistema de skinning que se ejecuta por completo en la GPU
    • Soporta animación de bone shaders dirigida por el arte
    • En Alan Wake 2 permite usar rigs de estilo personaje para toda la vegetación visible en el entorno
  • El bone shader expone una API para que los artistas escriban directamente código de shader y lo conecten al sistema base
    • Técnicamente puede aplicarse no solo a vegetación, sino también a objetos que se balancean sobre el agua o cables que se mueven con el viento
    • En Cauldron Lake se procesan casi 300,000 huesos por frame

HDR, renderizado transparente, VFX y ray tracing

  • Alan Wake 2 soporta completamente HDR
    • Está ajustado para verse bien tanto en pantallas SDR como HDR con la configuración predeterminada
    • El soporte HDR requirió un nuevo enfoque para el tone mapping
    • La corrección de color fue realizada por un colorista real tomando HDR como referencia, para preservar el estilo artístico, la atmósfera y el storytelling propios tanto en HDR como en SDR
  • Las escenas de niebla densa se basan en mejoras del renderizado transparente
    • Northlight renovó por completo el renderizado transparente durante el desarrollo de Alan Wake 2
    • Usa MBOIT (Moment-Based Order-Independent Transparency) para que las superficies transparentes con distintos niveles de detalle también se mezclen suavemente
    • Dibuja los elementos transparentes con MBOIT en tres resoluciones
    • Permite mezclar sin cortes niebla, geometría transparente y efectos
    • También se mejoró la pipeline para controlar con más detalle la ubicación de la niebla dentro del mundo
    • Al combinar iluminación transparente por píxel y reflejos afectados por la niebla, los elementos opacos y transparentes encajan mejor que en proyectos anteriores
    • La niebla aproxima la dispersión múltiple de la luz para crear una atmósfera densa y realista
  • La herramienta VFX basada en nodos de Northlight avanzó mucho en funciones soportadas y rendimiento en tiempo de ejecución
    • Permite a los artistas VFX crear efectos complejos y dinámicos como lluvia, humedad, simulación de agua y heridas en personajes
    • La herramienta VFX también aprovecha el renderizado impulsado por GPU, pudiendo procesar mucha geometría mediante la GPU
    • Por ejemplo, se usa al renderizar objetos rain blocker en máscaras dinámicas para que la lluvia no se vea en interiores o bajo cubiertas
  • El ray tracing soporta ray-traced direct lighting completo
    • Junto con Nvidia, combina eliminación de ruido mejorada y algoritmos de iluminación indirecta
    • El ray tracing de Alan Wake 2 es más preciso y robusto que el visto en Control
    • Como toda la animación de geometría de vegetación se crea y simula mediante skinning, el ray tracing hace que la vegetación animada se vea mejor
  • Los jugadores de PC pueden usar las tecnologías Nvidia DLSS más recientes si la configuración de GPU y CPU lo permite
    • DLSS Frame Generation

    • DLSS Ray Reconstruction

      • Path Traced Indirect Lighting

1 comentarios

 
GN⁺ 2023-11-08
Opiniones de Hacker News
  • Remedy es una empresa que siempre rinde por encima de su peso en gráficos, considerando que todo el estudio tiene apenas unos cientos de personas.
    Entre los estudios que se me vienen a la mente, solo Remedy y CD Projekt Red parecen capaces de competir con motores grandes como Unreal, Unity o EA Frostbite en calidad de imagen y rendimiento.
    Si te interesan los gráficos por computadora o el arte técnico, sus presentaciones en GDC/SIGGRAPH son excelentes.
    Alan Wake 2 es, técnicamente, uno de los juegos más hermosos de la historia y, en lo personal, también lo considero así artísticamente. Que siga viéndose bien incluso con todos los ajustes al mínimo es un verdadero logro, porque es difícil hacer que algo escale hasta hardware antiguo y aun así se vea bien.
    Dicho eso, como señalaron analistas como Digital Foundry, si la GPU no soporta mesh shaders, el rendimiento es muy malo. En este artículo también se menciona que usan mesh shaders para el culling, lo que permite hacer objetos como tazas de café o llantas completamente redondos y, al mismo tiempo, evitar problemas del estilo “cada NPC tiene dientes de 10 mil polígonos dentro de la boca” que arruinan el rendimiento de Cities Skylines 2. Una de las grandes ventajas que ofrece Nanite de Unreal 5 también está en esta área.

    • Remedy fue fundada por hackers de la demoscene, incluidos exintegrantes de Future Crew.
      Se puede trazar una línea bastante clara desde la asombrosa demo Second Reality de 1993 hasta Alan Wake 2, 30 años después.
      https://www.youtube.com/watch?v=iw17c70uJes
    • Es una lástima que un buen comentario terminara en un malentendido por la parte de “cada NPC tiene dientes de 10 mil polígonos dentro de la boca y eso arruina el rendimiento de Cities Skylines 2”.
      El problema de rendimiento es mucho más grande que simplemente “renderizar dientes que no se ven”: https://blog.paavo.me/cities-skylines-2-performance/
      Como ejemplo es fácil de entender, pero el problema mayor es la falta de LOD y el culling insuficiente.
    • En Finlandia hay desarrolladores de GPU realmente excelentes, y es muy probable que la demoscene haya tenido una gran influencia. Remedy es impresionante.
      ¿CD Projekt Red no está migrando sus próximos trabajos a UE5? Qué lástima. Cyberpunk era realmente hermoso, y me habría gustado ver un juego multijugador hecho con ese motor.
    • Remedy tiene 360 empleados.
      CDPR tiene 1236, DICE, que creó Frostbite, tiene 714, y Epic tenía 2200 antes de sus despidos recientes.
      Todas son cifras según Wikipedia.
    • Remedy puede verse, en la práctica, como parte del linaje de Future Crew, famoso por las demos Unreal/Second Reality.
      Si no son las personas que definieron y popularizaron los gráficos por computadora modernos, ¿quién más llevaría las GPU hasta el límite?
  • Incluso en el primer ejemplo molesta bastante ver cómo los pies se deslizan sobre el piso, o cómo el personaje no puede avanzar porque algo lo bloquea pero sigue resbalando como si caminara en el lugar.
    Me pregunto cuándo se resolverá este tipo de problema.
    Claro que el motor en sí es sorprendente, y los efectos visuales y los sistemas están entre los mejores que he visto.

    • Siempre hay una negociación entre movimiento responsivo y movimiento realista.
      RDR2 tiene animaciones muy realistas, pero a cambio el control se siente un poco “flotante”.
      Personalmente prefiero un movimiento ágil, donde si presiono izquierda el personaje en pantalla se mueve de inmediato hacia la izquierda. Un sistema de animación que se vea más realista termina introduciendo retraso hasta que la animación de los pies “alcanza” la entrada del jugador.
    • En realidad es un problema que ya está resuelto. Varios sistemas de IK pueden manejarlo bien, y algunos juegos hacen que la IK de los pies siga el terreno o que la IK de las manos empuje contra superficies.
      Pero el raycasting continuo y los cálculos de IK no son gratis, así que también implican un intercambio con el rendimiento, y además chocan con la responsividad.
      Muchos juegos eligen movimiento más rápido y respuesta de control. Al final, técnicamente es un problema resuelto desde hace años, pero como todo en el diseño de juegos, es una elección y una serie de compromisos.
    • Alan Wake II sí usa motion matching, que hasta donde sé es el mejor enfoque para este problema de animación, y también se menciona en el artículo del blog.
      Es un método que usan muchos estudios, incluido Naughty Dog. Pero, como dicen otros comentarios, la tensión fundamental entre responsividad y precisión de la animación sigue existiendo.
    • Puede ser un factor bastante importante. Normalmente el ángulo de cámara se elige para que no se vean mucho los pies del personaje [1].
      En Control, la obra anterior de Northlight, esto era menos marcado [2].
      [1] https://youtu.be/jQb07FHJ-bQ?t=628
      [2] https://youtu.be/fcDK6tnx4vM?t=6700
    • Recuerdo haber visto una demostración de una solución en el canal de YouTube Two Minute Papers.
      En realidad trataba sobre un algoritmo que mezcla animaciones para que las transiciones se vean naturales.
  • Es refrescante ver algo que no sea otro juego basado en Unreal Engine.
    Tener un motor interno propio debe ser tremendamente difícil; el motor en sí ya es un problema, pero quizá las herramientas para crear niveles, animaciones y demás sean aún más difíciles.
    Aun así, también debe tener ventajas. Si se tiene más control sobre la arquitectura de bajo nivel, hay más oportunidades de optimización. Eso es más difícil en un motor de propósito general como Unreal.
    Tengo muchas ganas de probar este juego.

    • Es como si el legado de la demoscene siguiera vivo.
    • Por eso me da pena que Cyberpunk se esté mudando a Unreal. El motor anterior era sólido y, a diferencia de Unreal, aprovechaba bien todos los núcleos de CPU.
      Todavía no entiendo por qué la compilación de shaders provoca tirones, y la mayoría de los otros motores internos no tienen ese problema. Tampoco sé por qué aún no lo han mejorado. Incluso si mañana saliera una actualización que lo mejorara, pasarían años antes de que los juegos pudieran aprovecharla.
    • Estoy de acuerdo en que un motor interno propio es tremendamente difícil.
      Con tantos motores listos para usar y con grandes comunidades alrededor, para hacerlo uno mismo realmente tendría que necesitar control total.
  • Me gusta el tono del texto
    Por ejemplo, me gustó la parte donde dice que el equipo de marketing diría “los personajes son más responsivos y están más vivos que nunca”, pero en las notas internas de desarrollo estaría escrito “los personajes no chocan contra objetos ni se quedan atorados en espacios estrechos”

    • El problema crónico del lenguaje de marketing parece ser que hay que reformular todo para que sea “entendible” incluso para alguien que no sabe nada del producto que se está promocionando
    • La segunda parte de esa frase también sigue siendo totalmente lenguaje de marketing
      Toda la frase es marketing, y la comedia dentro de ella también es marketing
  • Me da curiosidad qué piensa Remedy hoy sobre usar el lenguaje D en su ecosistema. Si todavía lo usan, también me gustaría ver qué dificultades tuvieron durante el desarrollo de AW2
    Material de referencia: Using an Emerging Language in Quantum Break (https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdceurope201...)
    DConf 2016: Quantum Break: AAA Gaming With Some D Code -- Ethan Watson (https://www.youtube.com/watch?v=7YjLW7anNfc)

    • Creo que no hubo confirmación oficial, pero se dice que después de Quantum Break eliminaron por completo D de la base de código
      Lo que sí es seguro es que ahora no están buscando programadores de D
      Si quieres escarbar en las fuentes, este enlace puede servir como punto de partida: https://forum.dlang.org/post/lymybpygzfalbdgoaizr@forum.dlan...
    • También me gustaría saber más
      La persona que dio esa charla ya no trabaja ahí, y viendo que empresas grandes como Facebook también dejaron de usar D, no creo que lo sigan usando. Aun así, me gustaría que se demostrara que estoy equivocado
    • En los estudios de videojuegos, el uso de otros lenguajes o tecnologías poco comunes suele moverse por el impulso de una sola persona
      Cuando esa persona se va o deja de estar en una posición desde la que pueda contribuir o mantenerlo, empieza a ser reemplazado gradualmente, salvo que cuente con el apoyo y la adopción del resto del equipo y del estudio
      Por lo que escuché, hubo una persona que impulsó escribirlo en D, pero no sé si todavía sigue ahí
  • Recuerdo que parte del equipo que hacía contenido de primer nivel en Unreal Marketplace también participó en este juego
    https://mawiunited.com/
    Es contenido excelente. Ojalá salgan más estudios que hagan contenido para UE5 de esta forma

  • Es interesante que hayan pasado a usar Luau de Roblox como entorno de scripting
    Siempre me he preguntado por qué tantos en la tecnología de videojuegos usan Lua para scripting. Especialmente cuando diseñan algo desde cero

    • Hoy, el costo de integrar Lua en un juego es prácticamente gratis
      Cualquier cosa que pueda usar el runtime de C puede incorporar scripting con Lua
      Por eso se ha usado casi como opción predeterminada, desde Baldur’s Gate 1 hasta Warcraft III y títulos modernos como Roblox
    • No tiene dependencias adicionales, permite controlar por completo qué bibliotecas incluir y no impone requisitos absurdos de estructura de carpetas
    • Lua es rápido en comparación con otros lenguajes de scripting, resulta familiar y es absurdamente fácil de embeber en un programa C++
  • El movimiento de los personajes todavía se siente bastante como valle inquietante
    En el video del “controlador de personajes basado en vóxeles”, la caminata parece como si se deslizaran, y en los primeros segundos de “movimiento de NPC” también se ve rara la forma de caminar
    Creo que es porque cada paso es exactamente igual y todos usan la misma zancada. Por eso los personajes se mueven de una manera incómodamente sincronizada
    En la segunda mitad del video, cuando los personajes cambian individualmente entre caminar y correr, se ve una mayor variedad de movimiento y resulta mucho más realista. Me pregunto por qué es tan difícil incorporar más variaciones sutiles de movimiento en general

    • Cuando estás en medio de la acción real, la mayor parte de eso no se nota, porque estás ocupado mirando otras cosas
      Dicho eso, para reforzar ese punto, casi todos los NPC amistosos están quietos. Cuando los enemigos te rodean en una zona hostil, no te pones a mirar cómo caminan, y de todos modos están cubiertos por la niebla
      Personalmente, creo que Control fue una demo técnica de todo esto. También explica por qué hay muchos menos enemigos y por qué está construido como una historia de terror
    • Me pregunto si algún día aparecerá algo como WalkGPT, con modo normal y modo zombi
  • Entonces, ¿tienen un motor de juego ECS, un renderer de nivel AAA, una tecnología parecida a Nanite, un motor de scripting basado en Lua y animación facial de nivel Hollywood?
    Deberían lanzar el motor. Podría ser un competidor fuerte de Unreal. Gracias a ECS sería más escalable, y también más fácil de escribir con Luau

    • Epic Games financió el desarrollo de Alan Wake 2, y el juego también es exclusivo de Epic Games Store
      Lo descubrí dolorosamente cuando intenté comprar el juego en Linux. Así que competir con Unreal podría dañar esa relación
    • Hay muchos estudios con esa clase de tecnología
      Pero convertir software interno en un producto que otras personas puedan usar es algo completamente distinto
    • Creo que llamarlo parecido a Nanite es un poco exagerado
      Es cierto que Remedy adoptó un pipeline de meshlets, pero eso ya está cerca de ser la norma en renderizado de punta. No he visto que mencionen el uso de compute shaders para renderizar realmente triángulos pequeños como Nanite, aunque puede que se me haya pasado
    • Cuando compré por primera vez una 3090, estaba emocionado pensando que por fin podría jugar Control con ray tracing activado, pero no se pudo
      Ahora Alan Wake 2 apenas corre en configuración High incluso con ray tracing desactivado
      Visualmente es un motor impresionante, pero personalmente sus requisitos son demasiado altos
  • La arquitectura entidad-componente-sistema (ECS) también se usa en motores de juego open source jóvenes como Bevy[1]
    Aunque hace tiempo que no desarrollo juegos, al escuchar sobre una arquitectura que elimina la orientación a objetos pesada y compleja que solía verse mucho en los juegos, me dieron ganas de volver a meterme en eso
    [1]: https://bevyengine.org/

    • También hay una historia de aplicar ECS a cosas más antiguas
      Empezó a tomar impulso desde principios de los años 2000, y aunque hoy no es universal, se ha usado durante mucho tiempo como una especie de base, y lo mismo ocurre en algunos motores open source
      Por ejemplo, se puede ver https://github.com/Adelost/entity-component-systems-study#re...