Sie sind auf Seite 1von 4

DESARROLLO RÁPIDO DE VIDEOJUEGOS

Alvaro López Ortega

alvaro@alobbs.com

1. INTRODUCCIÓN En primer lugar se trata de aplicaciones grandes. Un


videojuego, aunque se suela presentar como una apli-
Un videojuego es básicamente un programa para el en- cación agradable y sencilla de utilizar, esconde una
tretenimiento. En los últimos años, esta clase de pogramas gran cantidad de trabajo.
ha sufrido grandes cambios, aunque todos ellos siguen man-
teniendo en común una caracteristica que no ha variado en Se trata de desarrollo multidisciplinar. Al contrario
decenas de años: buscan ser lo más espectaculares posibles, que con los demás tipos de aplicaciones, el desarrollo
tanto en el aspecto gráfico como en el sonoro. de un videojuego no sólo implica conocimientos de
Se ha avanzado mucho en este aspecto. Los ordenadores programación. En el desarrollo de uno de estos pro-
sobre los que se ejecutan son radicalmente más potentes, y gramas intervienen papeles como los de un diseñador
por lo tanto se han creado progresivamente videojuegos más gráfico y un músico. Es lógico pensar que en el desa-
y más complejos. rrollo de un videojuego se verán involucradas perso-
Por otro lado, este aumento de capacidad en los orde- nas con perfiles profesionales bastante dispares.
nadores ha permitido un nuevo enfoque del desarrollo de
videojuegos. Hace ocho años, prácticamente la totalidad de La razón anterior causa muchas dependencias entre
los videojuegos eran desarrollados por completo en lengua- los módulos a la hora de desarrollar el programa. Es
je ensamblador. Necesidades de eficiencia y acceso a bajo mucho más probable que se produzcan retrasos por-
nivel a dispositivos tales como la tarjeta de video o la de so- que una de las dependencias se ha retrasado.
nido hacian que este tipo de programación fuese el estándar
para el desarrollo de videojuegos.
La situación actual nada tiene que ver con el anterior 3. DESARROLLO DE UN VIDEOJUEGO LIBRE
tipo de programación. Hoy en dı́a los videojuegos normal-
mente se desarrollan en lenguajes C/C++, basándose en APIs Para desarrollar un videojuego libre es necesarı́o tener
existentes para este tipo de programas. Actualmente la ma- en cuenta todos y cada uno de los aspectos implicados en él.
yorı́a de los juegos se basan en librerı́as como OpenGL, Di- Por ejemlo, de nada sirve tener un motor gráfico excelente
rect X o SDL, las cuales facilitan mucho el trabajo de desa- si el juego carece de un material gráfico con una calidad
rrollo, ası́ como la estandarización de los mismos. suficiente.
A continuación se expondrán las partes principales:

2. ESTADO DE LOS JUEGOS LIBRES Gráficos : El apartado gráfico del videojuego es el más vis-
toso de todos. Cómo basar este apartado es una de las
En un principio, los sistemas libres fueron creados por y decisiones crı́ticas para el resultado final del juego.
para desarrolladores. Esta es una situación que se está corri- Hoy en dı́a existen un gran número de motores gráfi-
giendo progresivamente para que se extiendan a toda clase cos y librerı́as que facilitan mucho el trabajo en este
de usuarios de ordenador. punto. La elección de uno u otro condicionarán el ren-
Si realizasemos una encuesta sobre los programas más dimiento y la portabilidad de nuestra aplicación. Más
demandados en el mundo del software libre, uno de los gran- adelante se expondrán las opciones más importantes
des puntos destacados serı́an, sin lugar a duda, los videojue- hoy en dı́a en el mundo del software libre.
gos.
En algunos de los sistemas libres, es posible ejecutar fa- Sonoro : También es un punto a tener en cuenta, aunque en
mosos juegos como la saga de Quake, Unreal o Civilization; esta ocasión no existe una posibilidad de elección tan
ahora bien, en general no se trata de software libre. grande como en el punto anterior. Existen una gran
Existen una serie de razones que pueden ayudar a expli- variedad de librerı́as que permiten que el videojuego
car esta pequeña carencia dentro del software libre: pueda leer una gran variedad de formatos de sonido,
incluso de librerı́as que dan un paso más y nos brin- Crystal Space : Se trata de un motor 3D libre. Su desarro-
dan la posibilidad de dotar de caracteristicas avanza- llo comenzó en 1998 y actualmente es bastante cono-
das y bastantes novedosas al videojuego; por ejemplo, cido y usado en el desarrollo de juegos ’Open Sour-
sonido cuadrafónico. ce’. Las principales caracteristicas de Crystal Space
son: 1. Se trata de un motor con seis grados de liber-
Lógica : El juego ha de tener un motor de lógica, más o tad. Esto quiere decir que la cámara se puede mover
menos complejo, que haga que el juego presente una y rotar en cualquier dirección en el mundo virtual que
cierta complicación a los ojos del jugador. Hoy en dı́a se está renderizando para el juego. Este es un aspec-
los motores lógicos de los juegos se basan en técnicas to que se da por supuesto en los dos anteriores en-
de inteligencia artificial: algoritmos de caminos mı́ni- gines, pero que no cumplen todos. Hace unos años,
mos, máquinas de estado para implementar el com- la potencia de las máquinas no era suficiente como
portamiento de los oponentes, etc. para esta clase de render en tiempo real. Ante este
problema, la solución que se adopto por regla gene-
Media : Los gráficos, sonidos, modelos o texturas que se
ral fué restringir los grados de libertad. Gracias es-
van a utilizar en el juego también son un punto a te-
ta optimización, juegos tan famosos como Quake son
ner en cuenta. En este punto es probable que se vea
ejecutables en máquinas con una potencia reducidad
involucrada una persona con un perfil fuera del cam-
(desde el punto de vista de las máquinas actuales). En
po de la informática, lo que en algunas ocasiones no
Quake, por ejemplo, no es posible girar el punto del
es fácil encontrar en el mundo del software libre.
espectador de lado (giro con la misma Z y distinto X
e Y). 2. Se trata de un motor muy portable: Actual-
4. LIBRERÍAS LIBRES mente soporta plataformas tales como: GNU/Linux,
GNU/HURD, FreeBSD, NetBSD, DOS, win32 (Win-
Como ya se ha expuesto anteriormente, existen una se- dows 9x/NT/ME/2000/XP), MacOS/X, MacOS/X Ser-
rie de librerı́as libres que facilitan mucho el desarrollo de ver 1.0, etc.
videojuegos. En el presente apartado se van a exponer algu-
nas de ellas: Open Inventor : OpenInventor es un entorno de desarrollo
creado por Sillicon Graphics. Se basa por completo
en OpenGL y proporciona un entorno de trabajo para
4.1. 3D
C++ sobre el que desarrollar aplicaciones 3D. Presen-
OpenGL : Se trata un API para desarrollar aplicaciones ta un modelo de programación basado en el manejo
gráficas. Fue creado inicialmente por Silicon Grap- de escenas tridimensionales que simplifican de una
hics en 1992 y actualmente es uno de los estanda- forma drástica la programación de esta clase de apli-
res más importantes en la programación de aplica- caciones. Incluye un gran conjunto de objetos sobre
ciones con capacidades 3D. Silicon Graphics en un los que trabajar: cubos, polı́gonos, texto, materiales,
principio desarrolló una librerı́a para que las aplica- cámaras, luces, etc. Actualmente, Open Inventor es
ciones de sus estaciones gráficas Iris fuesen porta- un producto libre, ya que SGI liberó su código poco
bles entre unos modelos y otros. El nombre de esta después de hacer lo mismo con una implementación
librerı́a era ”Iris GLτ fué la predecesora de lo que ac- de OpenGL. En este momento, las tres plataformas en
tualemente es OpenGL. Una de las grandes ventajas las que tiene más fuerza Open Inventor son: estacio-
de OpenGL es que se trata de una tecnologia abier- nes gráficas de SGI, GNU/Linux y Windows.
ta, y por lo tanto no esta controlada por una única
compañia. En este caso, existe un comité de estan- 4.2. 2D
darización, el OpenGL ARB (OpenGL Architecture
Review Board). Los miembros de fundadores de es- SDL : es una librerı́a libre y multiplataforma enfocada a
te comité son empresas tan importantes como: SGI, servir de base en el desarrollo de videojuegos. Actual-
Digital Equipament Corporation, IBM, Intel y Micro- mente SDL está siendo usada en varios juegos comer-
soft. Actualmente 3Dfx (hoy NVidia), 3DLabs, ATI, ciales (Civilization: ’Call To Power’, Myth II ’Soul-
Evans & Sutherland, Hewlett-Packard, NVidia o Sun blighter’, Railroad Tycoon II o Hopkins F.B.I., entre
Microsystems. Otra de las ventajas de este sistema es otros).
la gigantesca base de conocimientos que existe a su Esta librerı́a es el resultado de una empresa que se
alrededor. A lo largo de sus nueve años de vida se dedicaba a portar juegos a GNU/Linux. Desde el pri-
han escrito cientos de artı́culos, libros y programas li- mer momento SDL ha sido libre y Loky Games, su
bres con los que cualquiera puede aprender a utilizar creadores, han desarrollado juegos comerciales ba-
este motor gráfico. sados en ella. Al contrario que otras librerı́as, SDL
no sólo tiene en cuenta el punto de vista gráfico de un tiempo record. En el momento de comenzar el proyecto
la aplicación, si no también otros aspectos importan- hubo que valorar cada una de las opciones en cada uno de
tes en un videojuego, como el Sonido, el acceso al los puntos implicados en el videojuego para tomar una op-
CD-ROM, la posibilidad de usar Joysticks, etc. Otro ción sobre cómo se iba a realizar el planteamiento o con que
de los puntos fuertes de SDL es su simplicidad. Un herramientas se iba a desarrollar.
programador que quiera comenzar a usar esta librerı́a El tipo de juego y su funcionamiento era un requisito
únicamente tiene que estar familiarizado con la pro- del proyecto: Un juego de estrategia con un gran peso en la
gramación gráfica, el API de la librerı́a es simple e inteligencia y comportamiento global de los personajes. Al-
intuitivo, por lo que la curva de aprendizaje hasta do- go parecido a juegos tan famosos como Civilization o Star-
minar SDL será muy suave. Desde el punto de vis- Craft.
ta de las aplicaciones gráficas y en concreto juegos, Se realizó un estudio de sobre todos los puntos anterior-
la portabilidad es un aspecto que tiene cierta impor- mente expuestos, y como resultado de sopesar cada uno de
tancia, y que en muchas ocasiones se ha descuidado. los puntos se tomó la siguiente decisión:
SDL es una solución parcial para este problema, pero Como librerı́as básica sobre la que desarrollar los gráfi-
desde cualquier punto de vista, muy interesante. Aun cos se optó por SDL. Esta elección se vió condicionada por
tratándose de una librerı́a de bajo nivel, proporciona el background de la gente implicada en el proyecto, aun-
una portabilidad asombrosa. que desde un punto objetivo SDL es una de las dos mejores
librerı́as libres de esta clase.
Allegro : Se trata de una librerı́a parecida a SDL en sus Para el apartado sonoro se optó por SDL Mixer, un uso
objetivos, pero muy anterior en el tiempo. La prime- mucho más simple que OpenAL y que el manejo raw”del
ra versión de Allegro funcionaba sobre MS-DOS, y sonido fueron las principales razones para este elección.
desde ahı́ se ha portado y mejorando durante años.
Una vez tomadas estas dos elecciones técnicas, quedaba
Al igual que SDL proporciona herramientas para tra-
aun una por tomar: el lenguaje del programación sobre el
bajar con imágenes, sonido y periféricos. A lo largo
que se iba a realizar el desarrollo. En princio parecia lógico
de su extenso desarrollo se han incluido funcionalida-
optar por C: es el lenguaje por excelencia, y para el desarro-
des: trabajar con números en coma flotante, cálculos
llo de un juego es el más adecuado por razones de eficiencia.
para programas con gráficos tridimensionales, mane-
Esta última decisión era una de las que más podı́an con-
jo de la entrada/salida de ficheros, compresión, etc.
dicionar que el desarrollo del videojuego llegase a buen puer-
Una vez más se trata de software libre, y hay dispo-
to. El desarrollo en C no es rápido, y la restricción más fuer-
nible un grandisimo número de programas que hacen
te del proyecto era el tiempo de desarrollo. Llegados a este
uso de esta librerı́a, ası́ como documentación y recur-
punto era necesario buscar un lenguaje de alto nivel sobre
sos.
el que desarrollar el juego, de otra forma, no serı́a posible
terminarlo en el plazo fijado.
4.3. Sonido La mejor opción como lenguaje de muy alto nivel que
OpenAL : Una librerı́a tiene dos puntos fuertes. En primer encontramos fue Python. Un lenguaje potente, simple y ex-
tendido con una gran base de conocimientos disponible. Pyt-
lugar es una plataforma neutra para el trabajo con so-
nido. Por otro lado, se trata de la opción más exten- hon permitı́a desarrollar la lógica del juego de una forma
dida a la hora de dotar a los videojuegos de sonido ágil: con primitivas y tipos abstractos de datos de alto nivel
y sin preocupaciones con el manejo de memoria.
cuadrafónico.
Ahora bien, la opción por Python podı́a hacer que el de-
SDL mixer : Quizá una de las librerı́as mas usadas para sarrollo fuese muy rápido, pero al ser un lenguaje interpre-
dotar de sonido a videojuegos libres. Al igual que tado, la ejecución fuese realmente lenta. Este era un tema
SDL es altamente portable y muy potente. Es posible peliagudo que habı́a que probar. Para ello se utilizó PyGa-
utilizar, de forma transparente para el programador, me, un wrapper para Python de SDL. Los resultados fueron
librerı́as como libogg/libvorbis, mikmod ó libsmpeg. algo decepcionantes, realizando una simulación del juego
Esto proporciona al desarrollador un amplio abanico a una resolución considerable los resultados visuales eran
de posibilidades sobre qué formatos de sonido utilizar algo pobres por problemas de eficiencia.
en el videojuego.
6. UNA APORTACIÓN AL DESARROLLO DE
5. MÁS RÁPIDO TODAVIA VIDEOJUEGOS LIBRES

El presente artı́culo es parcialmente el resultado de un La elección sobre tecnologı́a estaba tomada, pero existı́an
proyecto en el que se tuvo que desarrollar un videojuego en serios problemas de eficiencia si se basaba el juego en Py-
Game. Para el proyecto SDL y Python seguı́an siendo las
mejores opciones teóricas, aunque en la práctica viesemos
que el resultado no era demasiado bueno.
Este problema estarı́a solucionado si existiese una li-
brerı́a como PyGame pero con nivel de abstracción supe-
rior, en la que los tipos básicos ya fuesen de alto nivel e
implementados nativamente. Existe una librerı́a gráfica lla-
mada Kyra que encajaba perfectamente con estas necesida-
des: dispone de tipos nativos de alto nivel, está bajada en
SDL y es libre.
Para el desarrollo del videojuego serı́a perfecto poder
utilizar Kyra desde Python. Y aquı́ es donde comienza la
aportación. El primer paso para el desarrollo del juego fué el
desarrollo de PyKyra, el binding de Kyra para Python.

7. PYKYRA

Se trata de una librerı́a de muy alto nivel para el desarro-


llo de videojuegos. Disponde de todos los tipos nativos que
proporciona Kyra: Sprite, Image, Canvas, etc.. con lo que el
nivel respecto a PyGame es considerablemente más alto.
El desarrollo de PyKyra no se ha limitado a realizar un
binding. PyKyra incorpora funcionadidades adicionales a
las proporcionadas por Kyra:
Sonido : Por defecto es posible usar sónido, de una for-
ma completamente transparente. Soporta, gracias a
SDL Mixer, formatos tales como MP3, OGG o WAV.

Carga de imagenes : Kyra puede leer imagenes desde ima-


genes desde ficheros de datos propios, pero no desde
un fichero como PNG, JPEG, GIF. PyKyra añade esta
posibilidad con la intención de intentar expandir las
posibilidades del motor.

Soporte de video MPEG : Con PyKyra es posible mostrar


videos MPEG con una carga para la aplicación poco
superior a la generada para descomprimir este forma-
to de forma nativa.
Al margen de estas nuevas funcionalidades, se ha sim-
plificado de una forma drástica la interface de Kyra con el
objetivo de que, a la hora del desarrollo de un videojuego
basado en Kyra, la parte más importante sea la de la lógica
y que los gráficos y el sónido sea algo que se implemente de
una forma rápida y sin complicaciones.

Das könnte Ihnen auch gefallen