Pedí a los desarrolladores que explicaran por qué los puertos de PC en 2023 funcionan como basura

Al observar el estado de los lanzamientos de PC en 2023, es fácil comenzar a señalar con el dedo. El juego no está optimizado (lo que sea que eso signifique), o el editor lo lanzó demasiado rápido, o las tarjetas gráficas que Nvidia nos ha estado vendiendo vienen con muy poca VRAM . Pero estas acusaciones, en la mayoría de los casos, son a medias y presuntuosas, y aunque insinúan la realidad, no cuentan la historia completa.

Quería saber qué estaba pasando realmente, así que me senté con algunos desarrolladores para entender el estado de los juegos de PC y por qué tantos lanzamientos han llegado con problemas tan grandes. Más importante aún, quería saber qué podían hacer los desarrolladores y editores para resolver estos problemas y, aunque el camino a seguir no está claro, se está volviendo obvio que los desarrolladores saben que hay un problema.

¿Cuál es el problema?

Una pequeña PC para juegos junto a la PS5.

Primero, necesitamos identificar el problema central con la PC, especialmente cuando los juegos se envían en estados jugables (si no perfectos) en las consolas pero llegan terriblemente dañados a la PC. A un alto nivel, el problema con la PC como plataforma es exactamente lo que la hace tan atractiva en primer lugar: flexibilidad.

Marc Whitten, vicepresidente senior y gerente general de Unity Create, dice que "la gran diversidad y variabilidad de las configuraciones de PC en las que se jugarán los juegos… definitivamente pueden exponer problemas inesperados". Whitten también señala "diferentes sistemas operativos y nuevas actualizaciones de controladores, calor y latencia, y personalización del usuario" como factores que pueden influir en el problema.

Esa es la respuesta, estoy seguro, que la mayoría de la gente supone que es la explicación.

Pero el problema, según Whitten, no es la falta de pruebas en sí. Afirma que los juegos "generalmente se prueban exhaustivamente a lo largo del desarrollo". El problema se reduce a la escala de las diferentes configuraciones que los desarrolladores deben probar, así como a las variables que no pueden tener en cuenta.

Como experimento mental, supongamos que un desarrollador fijó 100 configuraciones de PC diferentes para probar, variando la CPU, la GPU, la RAM y el disco duro entre ellas. Para que conste, este es un número que solo estoy sacando, no algo que un desarrollador realmente haya mencionado como un objetivo realista. Ahora, tome todas esas configuraciones y multiplíquelas por docenas de factores adicionales: ¿Qué sistema operativo está usando? ¿Qué versión de ese sistema operativo? ¿Qué hay de la versión del controlador? ¿Qué configuraciones de BIOS están habilitadas? ¿Tiene algún software ejecutándose en segundo plano como Razer Synapse o Corsair iCue?

El RTX 4080 en un banco de pruebas en funcionamiento.
Jacob Roach / Tendencias digitales

El alcance de las posibles configuraciones va mucho más allá de la CPU y la GPU que tiene en su sistema, y ​​estos factores pueden multiplicarse fácilmente en decenas de miles de escenarios que los desarrolladores simplemente no pueden tener en cuenta. En un mundo ideal, los desarrolladores pueden solucionar los problemas más grandes para las configuraciones de PC más populares con las actualizaciones más recientes de controladores y SO, dejando solo problemas pequeños y específicos para abordar después del lanzamiento.

Whitten tampoco está solo en este sentimiento. John Johanas, director de juegos de Hi-Fi Rush y The Evil Within 2, dice que "es bastante poco realista pensar que puedes hacer un producto que funcione perfectamente en lo que parece una configuración ilimitada de CPU, GPU, memoria y más". probablemente, lo que se está ejecutando en segundo plano”.

Hideyuki Miyashita, programador de sistemas en Hi-Fi Rush, estuvo de acuerdo, pero señaló específicamente el costo de optimizar un juego para cada configuración posible: “En términos de rendimiento de la PC, lo ideal sería hacer que cada característica gráfica sea escalable para diferentes configuraciones; sin embargo, los costos de desarrollo imponen un techo superior al soporte de escalabilidad realista”.

Esta no es una historia nueva. La gran cantidad de configuraciones de PC es el culpable común de todo, desde lo difícil que es optimizar los juegos en la PC hasta por qué no hemos visto aparecer Quick Resume de Xbox en Windows . La pregunta es qué pueden hacer los desarrolladores a pesar del tiempo y el dinero limitados que tienen. Porque las PC no se vuelven más simples y los juegos siguen llegando a la plataforma rotos.

lo que puedes hacer bien

Cal Kestis empuñando su sable de luz azul y cargando BD-1 en Star Wars Jedi: Survivor.

Tenemos muchos ejemplos de juegos que funcionan mal con el soporte de PC este año. Un buen ejemplo es Star Wars Jedi: Survivor , que actualmente se encuentra en un estado de revisión "Mixto" en Steam a pesar de ser uno de los juegos más aclamados del año. La revisión principal dice: "Un solo bloqueo corrompió mi archivo guardado de 140 horas 99.8% NG +". ¡Ay!

Me comuniqué con el equipo de desarrollo para tener una idea de lo que salió mal y, aunque inicialmente fueron receptivos, EA intervino y dejó de devolver mis correos electrónicos. Entonces, en lugar de ver qué juegos hacen mal en la PC, debemos ver qué hacen bien los desarrolladores.

Hi-Fi Rush es un excelente caso de estudio. Es un juego nuevo de un estudio AAA y usa el infame Unreal Engine 4. Podrías pensar que está comparando manzanas con naranjas entre Hi-Fi Rush y un juego como Star Wars Jedi: Survivor, pero tienen más en común de lo que podrías. sospechar. Como señala Johanas, “… el hecho de que el juego tenga una estética de dibujos animados dará a algunos usuarios la percepción de que el juego no debería ser un problema para ejecutarse en la PC de nadie. Siendo realistas, el juego hace muchas cosas para lograr el aspecto que buscábamos y el mundo en constante movimiento que es muy exigente… Lo sabía al entrar y me aseguré de que intentáramos alcanzar esas expectativas".

Chai acuchilla a un robot en Hi-Fi Rush.

Establecer ese objetivo desde el principio parecía importante para la estabilidad de Hi-Fi Rush . Los desarrolladores señalan que fue un objetivo de diseño desde el principio mantener al menos 60 fotogramas por segundo (fps) debido al hecho de que es tanto un juego de ritmo como un juego de acción, donde no alcanzar esa marca causaría “hipo [que ] podría resultar en una desincronización de la música y una mala experiencia de juego percibida”, según Johanas.

¿Cómo lo logró el equipo de Tango Gameworks? Se reduce ampliamente a tres puntos principales: monitoreo cuidadoso de VRAM, operaciones asincrónicas y almacenamiento en caché de PSO.

Según Kosuke Tanaka, programador de gráficos líder de Hi-Fi Rush, el equipo supervisó el uso de VRAM en cada paso del desarrollo. Eso incluye monitorear cada nivel, por supuesto, pero también el uso de VRAM de cada sección de arte, pidiendo a los artistas que reduzcan el uso de memoria de textura o malla para ajustarse al presupuesto del juego. Esto tampoco es raro en el desarrollo de juegos.

Lo que funciona a favor de Hi-Fi Rush es su sólida dirección artística. Como señala Tanaka: "Nuestro estilo artístico nos ayudó un poco porque no requerimos texturas PBR tradicionales como mapas normales, mapas de rugosidad o mapas metálicos". Es un testimonio de cómo trabajar con limitaciones creativas y cómo eso puede influir en la estabilidad del producto final. Johanas dice que no se trataba de un alcance más pequeño, se trataba de "no tener la necesidad de ir a lo grande sin ningún motivo".

Le pregunté al equipo qué aprendió de Hi-Fi Rush que podría llevar a proyectos más grandes y más amplios, pero no es exactamente así como Tango está tomando lecciones del juego. De hecho, el equipo de desarrollo me dijo que aprendió mucho más sobre la optimización de Ghostwire: Tokyo, que encaja más en el molde AAA tradicional, y llevó esas ideas a Hi-Fi Rush, no al revés.

Akito ataca a los enemigos con magia en Ghostwire: Tokyo.
Ghostwire: Tokyo es una de las primeras muestras de TSR de Unreal Engine, que es muy similar a FSR 2.0.

“Aprendimos mucho de nuestro conocimiento sobre cómo lidiar con la tartamudez en el juego en Hi-Fi Rush a partir de nuestra experiencia optimizando Ghostwire: Tokyo ”, me dijo Miyashita. Una gran parte de eso fue el almacenamiento en caché de Pipeline State Object (PSO) . Esta es una característica disponible en Unreal Engine 4 que ayuda a reducir el tartamudeo al precompilar sombreadores antes de ejecutar el juego.

El principal problema es que Unreal Engine 4 no hace esto automáticamente, lo que lleva a situaciones en las que los sombreadores deben compilarse mientras juegas, lo que provoca un tartamudeo. Miyashita dice que "esto dio como resultado que algunos procesos posteriores y VFX causaran tartamudeo". El programador también dice que el almacenamiento en caché de PSO es opcional, por lo que debe ser un enfoque específico para el desarrollador.

Sin embargo, el almacenamiento en caché no resuelve todos los problemas, y ahí es donde entran en juego las operaciones asíncronas. El equipo de Hi-Fi Rush usó compilación asíncrona, donde los sombreadores se compilan por separado del hilo del juego, pero también fue un gran enfoque considerando que el juego se ejecutaba en Unreal Engine 4.

Como hemos visto con otros juegos de Unreal Engine 4 como Star Wars Jedi: Survivor y Redfall, el motor no es muy bueno para escalar a los muchos subprocesos disponibles en las CPU modernas. Como explica Miyashita: “Lo difícil que puede ser admitir subprocesos múltiples depende en gran medida de la arquitectura del motor utilizado. Desafortunadamente, UE4 se queda un poco corto en este aspecto”.

En particular, Unreal Engine 4, según el desarrollador, coloca la creación de actores (objetos/personajes) y widgets (interfaz de usuario y superposición) en el mismo subproceso de CPU que el juego. Eso significa que cada vez que el juego quiere, por ejemplo, cargar un nuevo personaje, tiene prioridad en el hilo. Miyashita dice que "esto puede resultar en una creación compleja de actores y widgets que bloquea el hilo del juego durante mucho tiempo". Eso es un tartamudeo.

La solución son las operaciones asíncronas. Miyashita dice que el equipo usa herramientas de análisis para determinar qué está haciendo la CPU a medida que se introducen los objetos, y que se esfuerzan por mover esas tareas a diferentes subprocesos para que el juego no se ralentice. Esta orientación específica también puede ayudar con la carga de recursos. Mover esas operaciones a una estructura paralela puede evitar las trampas de la transmisión intermitente presente en juegos como Dead Space.

El camino a seguir para los puertos de PC

Layla se protege con un paraguas espectral en Redfall.

Los juegos que están saliendo en estados desastrosos hoy comenzaron su desarrollo hace años, por lo que, aunque tengo la esperanza de que los lanzamientos de PC mejoren a medida que avanza el año, pueden pasar varios años antes de que veamos estos problemas centrales resueltos.

Whitten dice que "los desarrolladores están tan preocupados por el rendimiento como los jugadores", y ese es un sentimiento que he escuchado varias veces. Hay formas de optimizar las versiones de PC, desde el almacenamiento previo en caché de los sombreadores hasta las operaciones asincrónicas y la validación en una amplia variedad de hardware. Pero la realidad es que los desarrolladores no pueden dar cuenta de todo, debido al tiempo o al dinero, y generalmente ambos.

El camino a seguir aquí es simple. Primero, informe a los editores de estos juegos que prefiere ver un retraso que un juego roto. Gritar a los desarrolladores no servirá de mucho: ellos ya conocen el problema y probablemente les gustaría que se resolviera tanto como a ti. En segundo lugar, tenga cuidado al elegir un nuevo juego de PC el día del lanzamiento. Es difícil ser paciente cuando esperas algo (créeme, lo sé), pero esperar para comprar un juego hasta que se solucionen los problemas envía una fuerte señal a los editores para que inviertan más tiempo y recursos en asegurarse de que los juegos estén pulidos. en PC

Es fácil olvidar que este es todavía un territorio desconocido. Ahora más que nunca, los juegos llegan a la PC el mismo día que llegan a las consolas, a diferencia de hace unos años, donde los puertos de PC llegaron meses (o incluso años) después. Hace dos generaciones de consolas, la mayoría de los juegos solo se enviaban el mismo día a una plataforma; en la generación anterior, eran dos. Ahora, se espera que los desarrolladores realicen envíos a tres plataformas como mínimo el mismo día y, a veces, a más de cinco si tienen una versión de última generación.

No es difícil ver por qué hay problemas en la PC dado ese contexto, pero esperamos que haya versiones más pulidas en camino.

Este artículo es parte de ReSpec , una columna quincenal continua que incluye discusiones, consejos e informes detallados sobre la tecnología detrás de los juegos de PC.