• ¿Por qué los videojuegos suelen rendir peor en GNU/Linux?

    por  • 28 octubre, 2016 • MuyLinux • 0 Comentarios

    ¿Por qué los videojuegos suelen rendir peor en GNU/Linux?

    Salvo contadas excepciones, son muchas las pruebas que muestran que los videojuegos rinden mejor en Windows que en GNU/Linux. ¿Por qué ocurre esto? Desde GamingOnLinux han intentado dar respuesta abarcando diversos apartados que hemos intentado resumir.

    Drivers

    Los drivers son una queja constante entre los usuarios de GNU/Linux, y no es para menos, sobre todo si tenemos en cuenta que la solución más potente puede terminar siendo la que da más dolores de cabeza.

    Por su parte, en GamingOnLinux se menciona que los drivers de Windows muchas veces vienen trucados para mejorar el rendimiento de juegos específicos. La etiqueta de “Game Ready” o similar por parte de NVIDIA y AMD hace referencia a una mejora en el rendimiento de un tanto por ciento para un juego determinado.

    Drivers de NVIDIA para juegos específicos de Windows

    Esto pasa debido a que la mayoría de los juegos son lanzados para Windows, que es también el sistema que registra las mayores ventas con diferencia. Esto hace que tanto AMD como NVIDIA hagan versiones de sus drivers destinadas a mejorar el rendimiento de los juegos sobre el sistema operativo de Microsoft. Como se puede apreciar en la imagen de arriba, NVIDIA ha lanzado en los últimos tres meses seis nuevos drivers que mejoran el rendimiento de juegos concretos.

    Tristemente, estos drivers raras veces llegan a GNU/Linux, por lo que no nos queda otra que conformarnos con las versiones “genéricas” de estos, que en sí mismas no son malas, pero que nos dejan al margen de ciertas mejoras que sí llegan a los usuarios de Windows y que en los benchmarks terminan dejando en evidencia al sistema operativo Open Source.

    En GamingOnLinux mencionan el caso de Mad Max, recientemente portado a GNU/Linux y Mac. NVIDIA ha incluido en su driver una serie de mejoras para la versión que utiliza DirectX, mientras que las versiones para Mac y GNU/Linux tienen básicamente las instrucciones DirectX portadas OpenGL, por lo que no se benefician de esas mejoras introducidas en la versión para Windows.

    Posiblemente esas mejoras no hagan una diferencia de 20fps, pero ya sabemos cómo está el mundo del gaming últimamente con los 60fps, aunque sea casi imposible para el ojo humano distinguir esa tasa de imágenes por segundo de otra de 55fps. El mundo del gaming actual está más preocupado de la tasa de imágenes, la resolución y la calidad gráfica que de la calidad jugable.

    Conversiones y no versiones

    Es inevitable pensar que la falta de juegos programados originalmente para GNU/Linux y Mac es otro gran inconveniente. A día de hoy se repite un patrón, primero se programa para DirectX y luego se porta a OpenGL, en lugar de utilizar un motor que solo se apoye en OpenGL.

    En GamingOnLinux culpan al actual modo de negocio por esta situación, ya que sale más barato crear los motores para DirectX y luego portar las instrucciones a OpenGL. Reescribir un motor entero en OpenGL toma mucho tiempo y las ventas potenciales no son ni la mitad que en Windows, por lo que muchas veces la situación termina con la desaparición o la cancelación de la propia conversión.

    Es importante mencionar que esto no pasa en todos los juegos, pero sí es una tendencia y uno de los motivos de por qué empresas como Feral Interactive y Aspyr existen, aunque eso no quita que no tengamos que agradecer sus esfuerzos a la hora de llevar juegos a otros sistemas que no sean Windows.

    OpenGL

    En GamingOnLinux apuntan a una característica de DirectX que termina siendo una pesadilla cuando se realiza la conversión a OpenGL, el multithreading. Mientras que la API de Microsoft sí soporta multithreading, OpenGL no tiene ninguna forma de realizar esto de forma real, lo que puede terminar siendo una pesadilla para los programadores. ¿Os acordáis del cutreport de The Witcher 2? Según apuntan en la fuente, ese aspecto fue uno de los motivos de por qué la conversión a GNU/Linux mostraba graves problemas de rendimiento al principio.

    Sin embargo, ¿tan inferior es OpenGL a DirectX? Yo solo conozco a una de las grandes desarrolladoras que sigue optando por OpenGL en detrimento de DirectX, Id Software, creadora de Doom y Quake. Recientemente esta desarrolladora ha lanzado bajo Bethesda el reboot de la saga Doom, que luce bastante bien a pesar de que algunas texturas cantan un poco. Casi década y media antes, Doom 3 se proclamó como el techo gráfico en videojuegos usando OpenGL, mientras que su rival más directo, Half Life 2, se apoyó en DirectX (eran otros tiempos y desde entonces Valve ha cambiado mucho).

    Vulkan, la gran esperanza

    Muchas personas ponen en Vulkan sus esperanzas para acabar con la desventaja a nivel de rendimiento entre Windows y GNU/Linux, el cual parece haber nacido de un desarrollo más abierto que OpenGL. Los desarrolladores están mostrando aparentemente interés real por esta API, y volviendo a uno de los aspectos que nos han ocupado en este artículo, sí soporta multithreading.

    Vulkan tiene que competir con DirectX 12, la última versión de la API gráfica de Microsoft que es exclusiva Windows 10, y que fue el motivo de la migración masiva de jugadores a dicho sistema. A día de hoy, tanto DirectX 12 como Vulkan tienen poca presencia comercial y es pronto para juzgar. Vulkan cuenta con las ventajas de ser totalmente multiplataforma y además soporta más sistemas operativos y gráficas. Por ejemplo yo, que uso una GTX 650 y Windows 7, tengo soporte de Vulkan tanto en Windows como en GNU/Linux, pero no puedo decir lo mismo de DirectX 12, que no soporto ni por hardware ni por software. Sin embargo, cuando DirectX 12 y Vulkan estén consolidados muy posiblemente Windows 7 y el hardware sobre el que funciona ya esté en desuso, por lo que al final este factor no será tan determinante.

    ¿Mejora mucho Vulkan con respecto a lo ofrecido por OpenGL? Id Software se ha trabajado un gran port de OpenGL a Vukan del reboot de Doom, con resultados realmente sorprendentes. En el vídeo de abajo se puede ver cómo Vulkan parece sacar potencia de donde no la hay, más que doblando la tasa de imágenes por segundo. Disculpen que el vídeo sea sobre Windows, pero lo veo como un buen material demostrativo.

    Pese a que Vulkan mejora mucho lo ofrecido por OpenGL, mientras que DirectX siga siendo la API de referencia de los desarrolladores la tendencia posiblemente no cambie y continuemos con conversiones que la mayoría de las veces quedarán por debajo de las versiones originales para Windows. El único camino real que queda es que los desarrolladores abandonen DirectX como API de referencia en favor de Vulkan.

    Con todo lo dicho, Vulkan sigue dando pequeño pasos y Feral Interactive ha anunciado que hará una implementación de esta tecnología en Deus Ex: Mankind Devided para GNU/Linux, que tendría que ver la luz en la primera mitad de 2017.

    Artículo original: ¿Por qué los videojuegos suelen rendir peor en GNU/Linux?

    Deja un comentario

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *