Linux vs Windows: ¿Quién presenta un mejor rendimiento en juegos?


Muchos podrán estar de acuerdo con que uno de los aspectos clave en el mundo de los videojuegos en PC es la plataforma en la que se ejecutarán los videojuegos, teniendo como las tres principales plataformas Windows, Linux y Mac OS. Relacionado con ello, existe la creencia en la sociedad que la plataforma Windows es mejor para jugar videojuegos que Linux, ya que los videojuegos se ejecutan típicamente en computadoras con Windows. Adicionalmente, en la plataforma de venta de juegos Steam, existen alrededor de 52,340 títulos para Windows y alrededor de 11,777 títulos para Linux, con lo que se puede apreciar una mayor existencia de juegos para la primera plataforma. Así mismo, otro aspecto clave en este contexto es la tecnología utilizada por los desarrolladores de videojuegos para poderse comunicar con el hardware desde cada sistema operativo, siendo DirectX la API preferida para Windows y hasta hace unos años, OpenGL la plataforma preferida para Linux. 


Este aspecto es, tal vez, el más significativo al momento de hacer comparaciones entre ambas plataformas con relación al rendimiento en videojuegos, ya que, en diversas pruebas, DirectX 12 (la última versión de DirectX) provee un mejor rendimiento en juegos que la última versión de OpenGL. Con ello, surge la duda si en realidad las diferencias en rendimiento surgen a raíz del sistema operativo o bien, de las APIs utilizadas por los desarrolladores. Con el surgimiento de la nueva API Vulkan para ambas plataformas, se otorga a los desarrolladores una API capaz de comunicarse más a bajo nivel, que a su vez les proporciona más control y provee las herramientas para utilizar de forma correcta la creación de diversos threads para realizar renderizados en paralelo, algo que OpenGL no proporcionaba, además de incrementar el rendimiento y optimización de los videojuegos, de forma mínima. En otras pruebas realizadas, se ha identificado además que al ejecutar el mismo juego en ambas plataformas con OpenGL se obtiene un mejor rendimiento en Windows y al ejecutarlo con Vulkan, el rendimiento es bastante similar.

El objetivo el día de hoy es dar un recorrido por las APIs descritas anteriormente en ambas plataformas, con el fin de poder responder la siguiente interrogante: ¿las diferencias en el rendimiento en videojuegos en distintas plataformas (sistemas operativos), se deben en sí a dichas plataformas o a las optimizaciones que los desarrolladores realizan con las APIs con las que trabajan para el desarrollo del juego?


Vamos a jugar algunos juegos.

La metodología en sí, será jugar algunos juegos para comparar ambos sistemas operativos. Primero lo primero, la PC en la que se se harán las pruebas. Se utilizó una computadora personal con las siguientes características: procesador Intel Core i7-7700k Overclocked 4.5GHz, 16 GB de memoria RAM a 3000MHz, tarjeta de video NVIDIA GeForce GTX 1080 Ti, tarjeta madre Asus ROG Strix Z270E y disco sólido Samsung 850 EVO de 500Gb. Se instalaron además dos sistemas operativos: Windows 10 y Ubuntu LTS 18.04. Asimismo, se utilizó Steam para descargar e instalar tres videojuegos en cada sistema operativo: Rise of the Tomb Raider, Dota 2 y Bioshock Infinite. Para cada juego, se realizó la configuración de gráficos, estableciendo las mismas características en los dos sistemas operativos. Los presets utilizados para cada juego fueron: Very High, Ultra y Ultra, respectivamente. 

Para cada uno de los juegos, se obtuvo los datos de fotogramas por segundo (FPS) promedio, porcentaje de uso del CPU, porcentaje de uso del GPU y RAM. Para Windows se utilizó MSI Afterburner para medir el uso de CPU y GPU, y se utilizó el administrador de tareas de Windows para medir la RAM. Por otro lado, en Linux se utilizó el administrador de tareas de Ubuntu para medir el porcentaje de uso de CPU y el RAM, y se utilizó el monitor de NVIDIA incluido en los drivers para medir el uso GPU. Para todos los juegos, y ambos sistemas operativos, se utilizaron los benchmarks incluidos en cada juego para medir el número de FPS. El único juego que presentó un desafío fue Dota 2 debido a la naturaleza de su jugabilidad, y fue tener un mismo escenario para realizar un benchmark justo. Esto requirió buscar una partida en específico con un minuto en específico donde el juego iba a ser más demandante, lo que se logró gracias a la consola incluida dentro del juego, la cual permite realizar este tipo de demo.

Posteriormente, se tomó el tiempo que le tomaba a cada juego, en cada sistema operativo, realizar el siguiente conjunto específico de tareas: cargar el juego y cargar el último juego guardado. La primera tarea consistía en seleccionar el juego desde la librería en Steam e iniciarlo, para lo cual se tomó el tiempo que le tomaba al juego llegar al menú principal. La segunda tarea consistía en seleccionar el último archivo de progreso del juego y cargarlo. Se tomó el tiempo desde que se presentó la pantalla de “loading” hasta que el juego cargara con todos sus elementos y el jugador se pudiera controlar.

Los resultados
Las siguientes ilustraciones y tablas resumen los resultados encontrados:






















CPU (%)
GPU(%)
RAM(Gb)
Tiempo de carga del juego (s)
Tiempo de carga de progreso (s)
Windows
67
91
3.3
13.41
13.35
Ubuntu (Linux)
53
85
2.3
8.78
16.94
Porcentajes en contra de Windows  
14.0 ↑
6.0 ↑
30.3 ↑
34.5 ↑

Porcentajes en contra de Linux




22.0 ↑





CPU (%)
GPU (%)
RAM (Gb)
Tiempo de carga del juego (s)
Windows
55
62
1.3
6.95
Ubuntu (Linux)
42
60
1.4
6.88
Porcentajes en contra de Windows
13.0 ↑
2.0 ↑


Porcentajes en contra de Linux


7.14 ↑
1.02 ↑




CPU (%)
GPU(%)
RAM(Gb)
Tiempo de carga del juego (s)
Tiempo de carga de progreso (s)
Windows
36
97
0.46
9.87
8.06
Ubuntu (Linux)
27
97
0.456
11.08
8.35
Porcentajes en contra de Windows
9.0 ↑
0.0 ↑



Porcentajes en contra de Linux

0.0 ↑
0.88 ↑
10.9 ↑
3.47 ↑




Claramente, podemos observar que en todas las pruebas de FPS, Windows sobrepasó en rendimiento a Linux. Sin embargo, las diferencias son mínimas según la API que se esté utilizado. Si vemos el caso de Bioshock Infinite, la diferencia sí es elevada, pero se debe a que se utilizó la API OpenGL. En las pruebas con Vulkan, como se puede observar con Dota por ejemplo, el rendimiento es mucho más similar.

En cuanto al rendimiento de GPU y Procesador, Linux es más eficiente, pero en RAM gana Windows, aunque por poco.

Entonces podemos decir que realmente los juegos en Linux van por muy buen camino. En algunos años no me sorprendería ver resultados más idénticos, pero ojo, que la API de Vulkan es la respuesta.

- Brolius
- Agradecimiento especial a Alejandro Chaclán y Diego Castañeda, co-autores de esta publicación.




No hay comentarios:

Con la tecnología de Blogger.