Así es Proton, la tecnología que permite portar videojuegos desde PC a otras plataformas
Uno de los fenómenos recientes que más se están repitiendo es el hecho de ver juegos pensados para PC siendo ejecutados no solo en otros sistemas, sino en otras mucho menos potentes. Una de las tecnologías que han permitido esto es Valve Proton, un intérprete de código que convierte las llamadas a la API de Windows y DirectX en algo que permite prescindir del sistema operativo de Microsoft. No obstante, en este mundo de conversiones, desde el PC a otras plataformas, tampoco nos podemos olvidar el traslado de binarios x86 a otros conjuntos de instrucciones.
Índice de contenidos
Índice de contenidos
Valve Proton, el Santo Grial en portar videojuegos de PC
Una de las piezas fundamentales, en todo el proceso de convertir de forma fácil juegos de PC a otras plataformas, es Valve Proton, este funciona traduciendo las llamadas a la API de Windows a llamadas POSIX de Unix (Portable Operating System Interface) que recrean la estructura de archivos de Windows y proveen implementaciones alternativas a los servicios del sistema. Todo ello les permite a los diferentes videojuegos no tener que depender de ningún archivo propio de Windows para funcionar bajo otros sistemas operativos.
La otra mitad de la ecuación es DXVK, la cual traslada las llamadas a DirectX a Vulkan, y no solo soporta la última versión, DirectX 12 Ultimate, sino también las anteriores hasta DX9. Por lo que la cantidad de juegos que funcionan bajo el intérprete es enorme. Proton es sin duda una de las tecnologías más importantes en los últimos años y está haciendo que muchos títulos para PC estén apareciendo en otras plataformas. Con menor rendimiento, claro está, pero lo suficientemente buenas como para cambiar por completo las reglas de juego.
La gracia de Valve Proton es que es de código abierto, por lo que puede usarse como intérprete no solo de DirectX a Vulkan, sino también a API de plataformas específicas, como Metal de Apple, NVN de Nintendo o GNM/GNMX de PlayStation. Sin embargo, en muchas plataformas la cosa se complica al necesitar una traducción de binarios
Los juegos para PC se prodigan en otras plataformas
De un tiempo a esta parte, hemos visto como los títulos pensados para un PC con Windows, pero pensados para ejecutarse bajo una CPU con conjunto de instrucciones x86, no solo han hecho acto de presencia en SteamOS, la distribución de Linux que utiliza la Steam Deck, sino también en sistemas basados en el set de instrucciones ARM. Todo gracias a la interpretación del código en binario y de aplicaciones como Valve Proton.
Uno de los casos recientes más sonados es producto de la filtración de Insomniac, y es que aprovechando el código fuente, se ha acabado creando una versión no oficial de Spider-Man 2 para PC, lo cual sorprende mucho más, desde el momento en que las librerías utilizadas por Sony no son, en teoría. DirectX, dado que utilizan su misma API. Quizás es por ello que dicha conversión no verá la luz hasta final del año, pero en otros casos los cambios que se han de realizar son menores, dado que Valve Proton y el intérprete de x86 a ARM funcionan en segundo plano realizando buena parte del trabajo.
Ahora bien, si tenemos en cuenta que todo el proceso ocurre en la CPU, la conclusión es que al contrario de lo que muchas personas creen, los juegos de PC no aprovechan todo el rendimiento del microprocesador. Y es aquí donde hemos de dar un toque de atención a cierto bulo. ¿De verdad hemos de acusar a la Xbox Series S de ser un lastre cuando la mayoría de juegos se pensaron para ejecutarse en consolas con una CPU que en 2013 ya eran consideradas paupérrimas?
El rendimiento de la CPU ya no importa en videojuegos
Para sostener nuestra hipótesis, y demostrarla como un hecho, hemos decidido coger la información que nos brinda la gente de TechPowerUp, en concreto uno de sus artículos donde hablan del rendimiento de los diferentes videojuegos en PC al ejecutarse solo en los E-Cores de un i9-12900K.
No olvidemos que la mayoría de títulos se han diseñado para ejecutarse en un número limitado de núcleos, y que los E-Cores tienen la mitad de rendimiento por ciclo de reloj.
Videojuego | 720p | 1080p | 1440p | 2160p (4K) |
Battlefield V | 173,2 FPS | 168.9 FPS | 166.5 FPS | 128.1 FPS |
Borderlands 3 | 70,3 FPS | 72.1 FPS | 72.2 FPS | 71.3 FPS |
Cyberpunk 2077 | 103.2 FPS | 104 FPS | 78.3 FPS | 41.6 FPS |
Counter Strike Go | 329.1 FPS | 344.4 FPS | 364.4 FPS | 325.5 FPS |
Civilization VI | 231,1 FPS | 228.8 FPS | 229.2 FPS | 206.5 FPS |
Doom Eternal | 360.5 FPS | 311.9 FPS | 241.1 FPS | 149 FPS |
Far Cry 5 | 114.5 FPS | 110.2 FPS | 110.1 FPS | 99.8 FPS |
Metro Exodus | 149.2 FPS | 145.5 FPS | 141.3 FPS | 99 FPS |
Red Dead Redemption | 117.8 FPS | 108.7 FPS | 99.2 FPS | 70.4 FPS |
Shadow of the Tomb Raider | 161.8 FPS | 161.8 FPS | 157.3 FPS | 98.1 FPS |
Las pruebas se hicieron con una RTX 3080, para que la tarjeta gráfica no fuese el cuello de botella a la hora de mover los juegos a diferentes resoluciones, sino la CPU. Aunque no es del todo así, dado que es a 4K cuando vemos que la GPU empieza a notar el peso de la resolución en varios juegos. Aunque aquí lo importante es que la carga sobre la CPU en los juegos a día de hoy es muy baja. Es decir, tienen suficiente margen para poder ejecutar Valve Proton y, en algunos casos, el intérprete de x86 a ARM, sin que esto los haga injugables a ojos del usuario final.