Linux ha sido desde siempre un sistema operativo muy alejando del mundo de los juegos. Siempre han existido juegos para Linux, pero en general han sido creaciones de baja calidad técnica y artística. Eso ha hecho que Linux como plataforma para desarrollar juegos este muy verde y un desarrollador de Valve ha dado su opinión.
Es lógico pensar que cuando un sistema operativo no se usa para una tarea concreta, todo lo que rodea a esa tarea no se cuide. Y eso parece que es lo que le ha pasado a Linux con OpenGL y sus controladores gráficos.
Desde hace unos meses, el árido escenario del juego en Linux ha ido cambiando y, de seguir así, el sistema operativo de GNU promete convertirse en una plataforma seria de juegos, lo cual beneficiaría a todo el software que le rodea.
Rich Geldreich ha expresado su opinión sobre el estado de todos esos componentes fundamentales necesarios para tener una plataforma para juegos: la API gráfica (OpenGL en nuestro caso) y los controladores para las tarjetas gráficas. Deja claro que lo que comenta es sólo su opinión y no la de sus compañeros de trabajo ni la de Valve.
Según comenta en su blog, OpenGL tiene una serie de problemas que, de no solucionarse, podrían hacer que DirectX 12 y Mantle se merendaran a la API libre. Dichos problema se enumeran a continuación:
· El código de OpenGL es viejo; tiene 20 años. Necesita un lavado de cara, una simplificación y un «reinicio» ya que no está sufriendo la modernización de DirectX y Mantle. Eso lo hace ser menos apetecible para los desarrolladores.
· Crear contextos moderlos con con GL es un proceso propenso a errores cuando se usan las APIs glX y wgl entre otras.
· Las especificaciones oficiales no están completamente definidas.
· No existe un equivalente a la biblioteca lib+tool de DirectX.
· La documentación es deficiente. La que hay disponible no vale para novatos ya que se encuentran con información obsoleta.
· Existen complicaciones con la transición desde OpenGL 3.x.
El autor de la entrada da muchas más explicaciones, todas ellas con un alto grado técnico. Pero deja claro que no le gusta lo que hay y que de seguir así, Linux nunca podrá competir con Windows en este aspecto.
Unas horas después de publicar esta entrada, ha publicado otra despotricando de los controladores gráficos para Linux. Y la verdad es que no le falta razón. Describe el panorama usando seudónimos: fabricante de tarjetas gráficas A, B y C. Una vez que describe la situación de cada una, es imposible no saber de quien habla:
Fabricante A:
Es el que más desarrolladores usa porque es el que tiene las mayores funciones en OpenGL. Desde que Valve ha portado Source, el controlador ha sufrido numerosas mejoras; se le han incorporado nuevas extensiones que en mayor o menor medida funcionan. Pero cuando las usas, ya no está dentro de lo que se puede considerar una zona segura del controlador y empieza a ser inestable.
A este fabricante se le conoce como «la mafia de los gráficos».
Fabricante B:
Controladores con rendimiento poco consistente, llenos de fallos y difícil de usar por un desarrollador.
Este fabricante es incapaz de actualizar un controlador sin romper algo; sacará una actualización que arregla un problema y provocará otros dos fallos.
Curiosamente este fabricante ofrece utilidades de depuración bastante buenas, sin las cuales Source hubiera tardado bastante más en salir para Linux.
Puede que sea una situación temporal, pero los controladores de este desarrollador van cuesta abajo y sin frenos en cuanto a fiabilidad se refiere.
Fabricante C (controlador nº1):
Resulta difícil enfadarse con el fabricante C. En realidad no quieren hacer nada relacionado con los gráficos. Tan solo es una distracción de su histórico negocio de procesadores. Son unos maestros del hardware pero no tienen demasiado interés en el software.
Los controladores funcionan más o menos, siempre que no te importen los FPS. Y si no funciona, puedes meterle mano tú mismo; si consigues solucionar problemas puede que te contraten.
Pero el controlador #1 está muy atrasado con OpenGL: puede que 1 o 2 años. Y encima no puedes ignorar este controlador porque su cuota de mercado está creciendo.
Este fabricante no ofrece utilidades de depuración.
Fabricante C (controlador nº2):
Un completo desastre. El equipo de desarrollo de este controlador no se preocupa lo más mínimo por dar un soporte decente a OpenGL.
Esto es sólo un resumen así que si queréis saber todo lo que dice, podéis visitar sus entradas.
Lo que queda claro es que la comunidad de desarrolladores anda bastante mosqueada con la decrépita infraestructura que se han encontrado. Pero se están quejando, están haciendo sugerencias y eso es positivo porque, una vez detectado el problema, se puede solucionar.
Y para los que no os haya quedado claro: el fabricante A es Nvidia, el B es AMD/Ati y el C es Intel con sus controladores libres para Linux y sus controladores propietarios para Windows. Por otra parte, el autor se refiere a OpenGL en general, no a Linux en particular, pero queda claro que un juego desarrollado en OpenGL tiene como objetivo funcionar en Linux (o Mac).