Estamos acostumbrados a tratar con tres sistemas operativos. El más popular y con el que más se suele trabajar es Windows, un sistema operativo creado por Microsoft. Siguiendo el orden de popularidad, encontramos el sistema de los ordenadores de Apple: Mac OS X. Por último, GNU/Linux está haciéndose un hueco en los ordenadores personales.
Pero no sólo existen estos tres sistemas operativos, tenemos una infinidad en el mercado, no sólo para PC, también para teléfonos móviles, videoconsolas y demás dispositivos electrónicos avanzados.
Microsoft
Windows.
Es el sistema operativo por excelencia en la mayoría de los hogares. Sus orígenes se remontan a 1985, cuando Microsoft publicó la primera versión de un gestor de ventanas para su sistema operativo MS-DOS.
A partir de entonces fue evolucionando y se crearon dos ramas diferentes que merecen ser nombradas. Por un lado, en 1991 fue presentado Microsoft Windows NT y en 1992 Microsoft Windows 3.1. La evolución de estas dos ramas se ha mantenido paralela presentando diferentes versiones de Windows NT (4.0, Windows 2000) y de Windows 3.1 (3.11, 95, 98, Millenium Edition). A finales del 2001 estas dos ramas se unieron en Microsoft Windows XP y, a partir de aquí, se comercializan versiones para hogar y empresa con un núcleo común y un grupo de aplicaciones para cada mercado (no se pueden considerar sistemas operativos diferentes).
Para programar siempre se han tenido que tener en cuenta estas dos ramas, ya que el software de Microsoft ha dado muchas facilidades para hacer aplicaciones para las dos. La programación para Windows XP ha heredado la API de la rama NT.
En cuanto a la programación de videojuegos, Microsoft creó la colección de API DirectX en 1995. En el año 2000, Microsoft presentó su videoconsola Xbox que se programaba con la DirectX versión 8.0 y en 2004 la versión 9.0c para su XBox 360.
Esta colección se compone de diferentes API para controlar todos los dispositivos necesarios para la programación de videojuegos:
•
DirectDraw: dibujar en 2D.
•
Direct3D: dibujar en 3D.
•
DirectSound: reproducir y grabar sonidos.
•
DirectInput: controlar dispositivos de entrada (teclado, ratón, joystick,...)
• DirectPlay: controlar comunicaciones de red.
Además de la propuesta de Microsoft, también existen otras librerías con las que se puede programar un videojuego para Microsoft Windows. La más importante es OpenGL, que nos permite aprovechar la aceleración 3D de las tarjetas gráficas para renderizar espacios 3D. Para todo lo demás (sonido, dispositivos de entrada, red...) tenemos que utilizar otro tipo de librerías.
A la hora de programar para un sistema Windows se tiene que tener en cuenta que el hardware de cada usuario puede ser diferente, cada uno con sus propias características: tarjeta gráfica, sonido, memoria, procesador, disco duro... Esto se debe tener en cuenta a la hora de programar un juego, ofreciendo al usuario la posibilidad de escoger diferentes niveles de detalle gráfico para que el juego se pueda disfrutar en cualquier hardware, aunque siempre se acaban estableciendo unos requisitos mínimos.
Mac OS X.
En 1976 Steve Jobs y Steve Wozniak crearon la empresa Apple Computers con el objetivo de fabricar ordenadores. Paralelamente al desarrollo de los ordenadores, Apple también desarrolló los sistemas operativos con los que se equipararían. A los sistemas operativos de las máquinas Macintosh los llamaron Mac OS y llegaron hasta la versión nueve.
Steve Jobs se marchó de Apple en 1985 y fundó una nueva empresa llamada NeXT. En esta nueva empresa creó un nuevo ordenador con un sistema operativo nuevo al que llamó NextStep. En 1996, NeXT se fusionó con Apple Computers y en 1997 Steve pasó a ser el nuevo CEO de Apple.
Al volver Steve, dejó de lado las versiones anteriores de Mac OS y, utilizando NextStep, Apple presentó Mac OS X en 1999, siendo la X la representación en numeración romana de la décima versión del sistema operativo (hasta entonces se usaba la numeración arábiga).
El sistema operativo Mac OS X pertenece a la familia Unix y, como tal, toda la programación es compatible con los estándares de Unix (Posix). Por otro lado, Apple creó un nuevo sistema de ventanas al que llamó Aqua y que sustituye al servidor X de Unix.
Por eso, las aplicaciones para Apple deben utilizar una API compatible con Aqua para presentar gráficos. La API gráfica se basa en PostScript, un lenguaje de programación utilizado inicialmente para la definición de páginas por parte de los controladores de impresión.
Para programar gráficos 3D en un Apple es necesario utilizar la API OpenGL. Para los demás componentes, se tienen que utilizar varias librerías.
GNU/Linux.
En 1983, Richard Stallman publicó su intención de crear desde cero un sistema operativo Unix que todo el mundo pudiese modificar. A este nuevo sistema operativo se le llamó GNU (GNU Not Unix). A principios de los noventa ya se tenían programados varios elementos indispensables, pero todavía se carecía del núcleo (en inglés, kernel). En 1992 Linus Torvalds presentó su núcleo al que llamó Linux y se unió al trabajo de GNU.
Actualmente, existen más núcleos para el sistema GNU. Por ejemplo, el de FreeBSD o el HURD (que todavía no está finalizado). Por eso, se suelen llamar sistemas GNU/Linux o GNU/Hurd según el núcleo que se utilice.
Para la programación de videojuegos para GNU/Linux, se utiliza el compilador GCC (GNU C Compiler) y diferentes librerías (OpenGL, OpenAL, ODE...). Cabe mencionar la librería Cedega, de Transgaming Technologies, que permite ejecutar código diseñado para Microsoft Windows (incluso que utilice DirectX) sobre GNU/Linux.
Jordi Duch Gavaldá & Heliodoro Tejedor Navarro, “Introducción a los videojuegos”, Ed. Universitat Oberta de Catalunya, p. 68 – 71.
Comentarios
Publicar un comentario