A menudo, cuando nos encontramos con otros desarrolladores de juegos y decimos que utilizamos OpenGL para nuestro juego sobrecrecimiento , nos encontramos con miradas de incredulidad - ¿por qué usaría alguien OpenGL? DirectX es el futuro. Cuando le decimos a los representantes de la tarjeta gráfica que se utiliza OpenGL, la temperatura de la habitación desciende por los diez grados.
Esto nos desconcierta. Es la sabiduría friki común que sitios web basados en estándares, por ejemplo, trounce Silverlight, Flash o ActiveX. Desarrollo de plataforma cruzada es loable e inteligente . No geek que se precie le gusta tratar con documentos de Word cerrada estándar o servidores de Exchange. ¿Qué clase de mundo es este bizarro donde los ingenieros no sólo va loca por última API propietario de Microsoft, pero denunciando activamente su competidor estándar abierto?
Antes de sumergirse en la historia de por qué apoyamos OpenGL, vamos a empezar con un poco de historia:
Qué es OpenGL?
En 1982, Silicon Graphics comenzó a vender terminales gráficos de alto rendimiento mediante una API propietaria denominada Iris GL (GL es la abreviatura de "biblioteca de gráficos"
. Con los años, Iris GL creció hinchado y duro para mantener, hasta Silicon Graphics dio un nuevo paso radical: que completamente rediseñado Iris GL y hizo un estándar abierto . Sus competidores podrían utilizar el nuevo Open Graphics Library (OpenGL), pero en cambio, tuvo que ayudar a mantener y mantenerlo actualizado.
En la actualidad, OpenGL es administrado por el Grupo Khronos - una organización sin fines de lucro con representantes de muchas empresas que están interesadas en el mantenimiento de APIs multimedia de alta calidad. En un nivel inferior, que está gestionado por el OpenGL Architecture Review Board (ARB) . OpenGL es compatible con todas las plataformas de juego, incluyendo Mac, Windows, Linux, PS3 (como envoltorio GCM), Wii, iPhone, PSP y DS. Bueno, toda plataforma de juego a excepción de la XBox - que nos lleva a nuestro siguiente tema:
¿Por qué todo el mundo utilizan DirectX?
Todo el mundo utiliza DirectX porque la elección API en el desarrollo del juego es un bucle de retroalimentación positiva, y se inclinó a favor de DirectX en 2005.
Es un circuito de retroalimentación positiva, porque cada vez que una API se vuelve más popular, sigue siendo cada vez más popular debido a los efectos de red . Los efectos de las redes más importantes son los siguientes: el API más populares se mejora el apoyo de los fabricantes de tarjetas gráficas, y los programadores gráficos es más probable que ya sabe cómo usarlo.
Uso API se inclinó a favor de DirectX por dos puntas de la campaña de Microsoft DirectX alrededor del lanzamiento de Xbox 360 y Windows Vista, incluyendo la propagación de FUD (miedo, incertidumbre y duda) sobre el futuro de OpenGL, y la exageración de los méritos de DirectX. Desde entonces, los efectos de red han ampliado esta discrepancia hasta OpenGL casi ha desaparecido por completo de juegos de PC convencional.
1. Los efectos de red y ciclos viciosos
que es el open GL
Desde MS-DOS, Microsoft ha entendido que los juegos tienen un papel importante en la elección de los sistemas operativos de los usuarios. Por esta razón, en 1995, se creó un conjunto de propiedad de las bibliotecas con el fin de alentar a juegos exclusivos para su nuevo sistema operativo Windows 95 . Estas bibliotecas incluyen Direct3D, DirectInput y DirectSound, y toda la colección llegó a ser conocido como DirectX. Cuando Microsoft entró en el mercado de los juegos en 2001, se introdujo la caja de DirectX o XBox para abreviar . La Xbox fue un líder de pérdida ( pérdida de más de 4 mil millones de dólares ), destinado a crear las condiciones para dominar el mercado de los juegos de la próxima generación.
En cuanto a la escena de juegos de ahora, está claro que esta estrategia está teniendo éxito. La mayoría de los juegos de PC ahora usan DirectX, y se ejecutan en Windows y Xbox 360. Con pocas excepciones, no funcionan en plataformas de la competencia, tales como Playstation, Mac OS y Wii. Estos son mercados importantes para dejar salir, nos trae a la gran pregunta
En Windows, es un hecho de que los controladores de gráficos DirectX se mantienen mejor que los controladores de gráficos OpenGL. Esto es causado por el círculo vicioso de soporte del proveedor. Como desarrolladores de juegos son expulsados de OpenGL a DirectX por otros factores, los fabricantes de tarjetas gráficas (vendedores) reciben menos informes de error para sus controladores OpenGL, extensiones y documentación. Esto da lugar a los controladores OpenGL más inestables, lo que lleva aún más los desarrolladores de juegos para cambiar de OpenGL a DirectX. El ciclo se repite.
Del mismo modo, es un hecho que más juegos gráficos programadores saben usar DirectX a OpenGL, por lo que es más barato (menos formación necesaria) para hacer un juego con DirectX a OpenGL. Este es el resultado de otro círculo vicioso: a medida que más proyectos de juegos usan DirectX, más programadores tienen que aprender cómo usarlo. A medida que más programadores a aprender a usarlo, se vuelve más barato para los proyectos de juegos para utilizar DirectX que usar OpenGL.
Campañas de marketing engañosas
Las estrategias de lanzamiento de Windows Vista y Windows 7 fueron acompañadas de una inmensa campaña de marketing por parte de Microsoft para DirectX, en la que se mostraron "antes" y "después" de imágenes de las diferentes versiones de DirectX. Muchos jugadores piensan ahora que el cambio de DirectX 9 a DirectX 10 se transforma mágicamente gráficos de estúpidamente oscuro a lo normal (como en la comparación anterior), o de halo 1 a Crysis . Periodistas del juego demostró que no había ninguna diferencia entre DX9 y DX10 Crysis , y que sus características "DX10" trabajó muy bien con DX9 por ajustar un archivo de configuración. Sin embargo, a pesar de su inexactitud obvia, la comercialización ha convencido a muchos jugadores que se actualiza DirectX son la única manera de acceder a las últimas funciones gráficas.
Mientras que muchos juegos de participar en charada de marketing de Microsoft, los programadores gráficos más experimentados como John Carmack se niegan a ser arrastrado por ella. Él lo dijo así : "Personalmente, no me apuntaría a algo así como DX10 ahora. Dejaría que las cosas se asienten un poco y esperar hasta que haya una muy fuerte necesidad de hacerlo."
Así que ¿por qué usar OpenGL?
Dado que OpenGL tiene menos soporte del proveedor, ya no se usa en los juegos, está siendo atacado activamente por Microsoft, y no tiene el impulso de marketing, ¿por qué deberíamos seguir utilizándolo? ¿No sería más rentable para deshacerse de él y utilizar DirectX como todo el mundo? No, porque en realidad, OpenGL es más poderoso que DirectX, es compatible con más plataformas, y es esencial para el futuro de los juegos.
OpenGL es más poderoso que DirectX
Es de conocimiento común que OpenGL tiene más rápido dibujar llamadas que DirectX (ver presentaciones de NVIDIA como éste si no quiere tomar mi palabra para ella), y tiene acceso por primera vez a las nuevas funciones de la GPU a través de extensiones de proveedor . OpenGL que permite el acceso directo a todas las nuevas características de gráficos en todas las plataformas, mientras que DirectX sólo proporciona instantáneas ocasionales de ellos en sus versiones más recientes de Windows. La tecnología tesselation que Microsoft está fuertemente promovido para DirectX 11 ha sido una extensión OpenGL por tres años . Incluso ha sido posible durante años antes de que, utilizando de instancias rápido y vertex-textura-fetch . No sé qué nuevas tecnologías se expondrán en el próximo par de años, sé que estarán disponibles por primera vez en OpenGL.
Microsoft ha trabajado duro para DirectX 10 y 11, y son ahora casi tan rápido como OpenGL, y apoyar casi tantas características. Sin embargo, hay un gran problema: no funcionan en Windows XP! mitad de los jugadores de PC siguen utilizando XP , por lo que el uso de DirectX 10 o 11 no es realmente una opción viable. Si realmente se preocupan por tener los mejores gráficos posibles, y su entrega a tantos jugadores como sea posible, no hay más remedio OpenGL
OpenGL es multiplataforma
Más de la mitad de nuestros Lugaru usuarios utilizan Mac o Linux (como se muestra en esta entrada del blog ), y no me sorprendería si el mismo se podrá decir de nuestro nuevo juego de sobrecrecimiento . Cuando hablamos de los principales desarrolladores de juegos, nos enteramos de que el apoyo a Mac y Linux es una pérdida de tiempo. Sin embargo, nunca he visto ninguna prueba de esta afirmación. Ventisca siempre libera versiones para Mac de sus juegos al mismo tiempo , y son una de las compañías de juegos de mayor éxito en el mundo! Si están haciendo algo de una manera diferente a los demás, entonces el camino es probablemente correcto.
Como John Carmack dijo cuando se le preguntó si Rage es un juego de DirectX , "Todavía es OpenGL, aunque obviamente utilizamos una API D3D-ish [sobre la Xbox 360], y CG en la PS3. Es curioso lo poco que la tecnología le importa lo que la API que está utilizando y lo que la generación de la tecnología que se encuentra. Usted tiene un pequeño puñado de archivos que se preocupan por lo que están en la API, y millones de líneas de código que son agnóstico a la plataforma que son on ". Si usted puede golpear cada plataforma usando OpenGL, ¿por qué disparar en el pie, apoyándose en DirectX?
Incluso si lo único que importa es el de Windows, permítanme recordarles una vez más que la mitad de los usuarios de Windows todavía utilizan Windows XP , y no podrá jugar su juego si utiliza las últimas versiones de DirectX. La única manera de entregar las últimas gráficos para los jugadores de Windows XP (la principal plataforma de videojuegos para ordenador) es a través de OpenGL.
FIN DEL POST
Esto nos desconcierta. Es la sabiduría friki común que sitios web basados en estándares, por ejemplo, trounce Silverlight, Flash o ActiveX. Desarrollo de plataforma cruzada es loable e inteligente . No geek que se precie le gusta tratar con documentos de Word cerrada estándar o servidores de Exchange. ¿Qué clase de mundo es este bizarro donde los ingenieros no sólo va loca por última API propietario de Microsoft, pero denunciando activamente su competidor estándar abierto?
Antes de sumergirse en la historia de por qué apoyamos OpenGL, vamos a empezar con un poco de historia:
Qué es OpenGL?
En 1982, Silicon Graphics comenzó a vender terminales gráficos de alto rendimiento mediante una API propietaria denominada Iris GL (GL es la abreviatura de "biblioteca de gráficos"

. Con los años, Iris GL creció hinchado y duro para mantener, hasta Silicon Graphics dio un nuevo paso radical: que completamente rediseñado Iris GL y hizo un estándar abierto . Sus competidores podrían utilizar el nuevo Open Graphics Library (OpenGL), pero en cambio, tuvo que ayudar a mantener y mantenerlo actualizado.
En la actualidad, OpenGL es administrado por el Grupo Khronos - una organización sin fines de lucro con representantes de muchas empresas que están interesadas en el mantenimiento de APIs multimedia de alta calidad. En un nivel inferior, que está gestionado por el OpenGL Architecture Review Board (ARB) . OpenGL es compatible con todas las plataformas de juego, incluyendo Mac, Windows, Linux, PS3 (como envoltorio GCM), Wii, iPhone, PSP y DS. Bueno, toda plataforma de juego a excepción de la XBox - que nos lleva a nuestro siguiente tema:
¿Por qué todo el mundo utilizan DirectX?
Todo el mundo utiliza DirectX porque la elección API en el desarrollo del juego es un bucle de retroalimentación positiva, y se inclinó a favor de DirectX en 2005.
Es un circuito de retroalimentación positiva, porque cada vez que una API se vuelve más popular, sigue siendo cada vez más popular debido a los efectos de red . Los efectos de las redes más importantes son los siguientes: el API más populares se mejora el apoyo de los fabricantes de tarjetas gráficas, y los programadores gráficos es más probable que ya sabe cómo usarlo.
Uso API se inclinó a favor de DirectX por dos puntas de la campaña de Microsoft DirectX alrededor del lanzamiento de Xbox 360 y Windows Vista, incluyendo la propagación de FUD (miedo, incertidumbre y duda) sobre el futuro de OpenGL, y la exageración de los méritos de DirectX. Desde entonces, los efectos de red han ampliado esta discrepancia hasta OpenGL casi ha desaparecido por completo de juegos de PC convencional.
1. Los efectos de red y ciclos viciosos
que es el open GL
Desde MS-DOS, Microsoft ha entendido que los juegos tienen un papel importante en la elección de los sistemas operativos de los usuarios. Por esta razón, en 1995, se creó un conjunto de propiedad de las bibliotecas con el fin de alentar a juegos exclusivos para su nuevo sistema operativo Windows 95 . Estas bibliotecas incluyen Direct3D, DirectInput y DirectSound, y toda la colección llegó a ser conocido como DirectX. Cuando Microsoft entró en el mercado de los juegos en 2001, se introdujo la caja de DirectX o XBox para abreviar . La Xbox fue un líder de pérdida ( pérdida de más de 4 mil millones de dólares ), destinado a crear las condiciones para dominar el mercado de los juegos de la próxima generación.
En cuanto a la escena de juegos de ahora, está claro que esta estrategia está teniendo éxito. La mayoría de los juegos de PC ahora usan DirectX, y se ejecutan en Windows y Xbox 360. Con pocas excepciones, no funcionan en plataformas de la competencia, tales como Playstation, Mac OS y Wii. Estos son mercados importantes para dejar salir, nos trae a la gran pregunta
En Windows, es un hecho de que los controladores de gráficos DirectX se mantienen mejor que los controladores de gráficos OpenGL. Esto es causado por el círculo vicioso de soporte del proveedor. Como desarrolladores de juegos son expulsados de OpenGL a DirectX por otros factores, los fabricantes de tarjetas gráficas (vendedores) reciben menos informes de error para sus controladores OpenGL, extensiones y documentación. Esto da lugar a los controladores OpenGL más inestables, lo que lleva aún más los desarrolladores de juegos para cambiar de OpenGL a DirectX. El ciclo se repite.
Del mismo modo, es un hecho que más juegos gráficos programadores saben usar DirectX a OpenGL, por lo que es más barato (menos formación necesaria) para hacer un juego con DirectX a OpenGL. Este es el resultado de otro círculo vicioso: a medida que más proyectos de juegos usan DirectX, más programadores tienen que aprender cómo usarlo. A medida que más programadores a aprender a usarlo, se vuelve más barato para los proyectos de juegos para utilizar DirectX que usar OpenGL.
Campañas de marketing engañosas
Las estrategias de lanzamiento de Windows Vista y Windows 7 fueron acompañadas de una inmensa campaña de marketing por parte de Microsoft para DirectX, en la que se mostraron "antes" y "después" de imágenes de las diferentes versiones de DirectX. Muchos jugadores piensan ahora que el cambio de DirectX 9 a DirectX 10 se transforma mágicamente gráficos de estúpidamente oscuro a lo normal (como en la comparación anterior), o de halo 1 a Crysis . Periodistas del juego demostró que no había ninguna diferencia entre DX9 y DX10 Crysis , y que sus características "DX10" trabajó muy bien con DX9 por ajustar un archivo de configuración. Sin embargo, a pesar de su inexactitud obvia, la comercialización ha convencido a muchos jugadores que se actualiza DirectX son la única manera de acceder a las últimas funciones gráficas.
Mientras que muchos juegos de participar en charada de marketing de Microsoft, los programadores gráficos más experimentados como John Carmack se niegan a ser arrastrado por ella. Él lo dijo así : "Personalmente, no me apuntaría a algo así como DX10 ahora. Dejaría que las cosas se asienten un poco y esperar hasta que haya una muy fuerte necesidad de hacerlo."
Así que ¿por qué usar OpenGL?
Dado que OpenGL tiene menos soporte del proveedor, ya no se usa en los juegos, está siendo atacado activamente por Microsoft, y no tiene el impulso de marketing, ¿por qué deberíamos seguir utilizándolo? ¿No sería más rentable para deshacerse de él y utilizar DirectX como todo el mundo? No, porque en realidad, OpenGL es más poderoso que DirectX, es compatible con más plataformas, y es esencial para el futuro de los juegos.
OpenGL es más poderoso que DirectX
Es de conocimiento común que OpenGL tiene más rápido dibujar llamadas que DirectX (ver presentaciones de NVIDIA como éste si no quiere tomar mi palabra para ella), y tiene acceso por primera vez a las nuevas funciones de la GPU a través de extensiones de proveedor . OpenGL que permite el acceso directo a todas las nuevas características de gráficos en todas las plataformas, mientras que DirectX sólo proporciona instantáneas ocasionales de ellos en sus versiones más recientes de Windows. La tecnología tesselation que Microsoft está fuertemente promovido para DirectX 11 ha sido una extensión OpenGL por tres años . Incluso ha sido posible durante años antes de que, utilizando de instancias rápido y vertex-textura-fetch . No sé qué nuevas tecnologías se expondrán en el próximo par de años, sé que estarán disponibles por primera vez en OpenGL.
Microsoft ha trabajado duro para DirectX 10 y 11, y son ahora casi tan rápido como OpenGL, y apoyar casi tantas características. Sin embargo, hay un gran problema: no funcionan en Windows XP! mitad de los jugadores de PC siguen utilizando XP , por lo que el uso de DirectX 10 o 11 no es realmente una opción viable. Si realmente se preocupan por tener los mejores gráficos posibles, y su entrega a tantos jugadores como sea posible, no hay más remedio OpenGL
OpenGL es multiplataforma
Más de la mitad de nuestros Lugaru usuarios utilizan Mac o Linux (como se muestra en esta entrada del blog ), y no me sorprendería si el mismo se podrá decir de nuestro nuevo juego de sobrecrecimiento . Cuando hablamos de los principales desarrolladores de juegos, nos enteramos de que el apoyo a Mac y Linux es una pérdida de tiempo. Sin embargo, nunca he visto ninguna prueba de esta afirmación. Ventisca siempre libera versiones para Mac de sus juegos al mismo tiempo , y son una de las compañías de juegos de mayor éxito en el mundo! Si están haciendo algo de una manera diferente a los demás, entonces el camino es probablemente correcto.
Como John Carmack dijo cuando se le preguntó si Rage es un juego de DirectX , "Todavía es OpenGL, aunque obviamente utilizamos una API D3D-ish [sobre la Xbox 360], y CG en la PS3. Es curioso lo poco que la tecnología le importa lo que la API que está utilizando y lo que la generación de la tecnología que se encuentra. Usted tiene un pequeño puñado de archivos que se preocupan por lo que están en la API, y millones de líneas de código que son agnóstico a la plataforma que son on ". Si usted puede golpear cada plataforma usando OpenGL, ¿por qué disparar en el pie, apoyándose en DirectX?
Incluso si lo único que importa es el de Windows, permítanme recordarles una vez más que la mitad de los usuarios de Windows todavía utilizan Windows XP , y no podrá jugar su juego si utiliza las últimas versiones de DirectX. La única manera de entregar las últimas gráficos para los jugadores de Windows XP (la principal plataforma de videojuegos para ordenador) es a través de OpenGL.
FIN DEL POST