martes, enero 10, 2006

Lenguaje y herramientas.

El lenguaje con el que vamos a programar el juego es Fenix.

¿Por qué Fenix y no C + Allegro o SDL, DarkBasic, o cualquier otro? Sin entrar a profundizar demasiado, básicamente Fenix tiene un equilibrio entre sencillez de uso y potencia enorme, comparativamente hablando, para crear cualquier juego rápidamente. Lógicamente tiene sus inconvenientes, como puede ser el trabajar como lenguaje interpretado, con lo que supone en carga de máquina; la falta de un entorno de desarrollo avanzado integrado y alguna cosilla más que iremos descubriendo sobre la marcha. Que quede claro que Fenix no es la panacea, pero para lo que queremos desarrollar sobra (y para juegos mucho más avanzados). Además cuento con la ventaja de que ya creé otro juego bajo este lenguaje: el remake del Babaliba. Y esto va a hacer que gran parte del trabajo lo tengamos realizado de antemano, y que la experiencia esté de nuestro lado.

Otra ventaja, quizá la que más me ayudó a inclinarme por este lenguaje, es la posibilidad de compilarlo para diferentes plataformas sin necesidad de modificar el código escrito. Así pues podemos hacer versiones de nuestro juego para Linux, Windows, BeOS, Power PC o Mac OS x.

No esperéis encontrar un estilo de programación “de libro”, seguro que hay varias formas de programar lo mismo, algunas mejores y otras peores.. No soy un programador profesional ni pretendo que sirva como ejemplo para enseñar en una universidad. La única meta que persigo es que el juego funcione bien, que cumpla su cometido de divertir y el mío de aprender cada vez más y de rendir un pequeño homenaje a los programadores que nos hicieron pasar buenos ratos en nuestra niñez.

Tampoco es un curso de programación desde cero. Doy por supuesto que el lector que desee seguir el curso tendrá nociones sobre ello, en el lenguaje que sea, aunque Fenix se parece bastante a C a la hora de programar. Solo se van a resolver determinadas situaciones que se darán a la hora de programar el juego. No se va a explicar que es un entero, un puntero, o un proceso. Para cualquier referencia específica sobre las funciones del lenguaje os remito al manual en formato PDF que trae el propio Fenix y que, aunque la versión es del año 2000, es lo bastante completo y detallado como para poder progresar con él.

Dejado sentado el lenguaje a emplear, vamos a ver con que editor escribiré el código. Anteriormente dije que Fenix no trae un entorno integrado, y es cierto. Pero existen varios proyectos, por desgracia parece que parados desde hace tiempo y solo ejecutables desde Windows, para crear un IDE. En concreto yo he utilizado dos de ellos: Fénix Desktop y Firebird, el primero más profusamente que el segundo, aunque este parece más completo. La instalación de cualquiera de ellos es muy sencilla y la configuración es tan simple, básicamente, como indicar al programa el PATH de los ejecutables de Fenix. Estos entornos están disponibles en la misma WEB de Fenix.

Yo particularmente no voy a utilizar ninguno de ellos. Para escribir el código usaré el editor VIM y compilaré invocando a Fenix desde la línea de comandos. Para mi es más cómodo y servirá de guía tanto para los que trabajen en Windows (yo habitualmente programo en Linux) como para los usuarios de otros sistemas operativos en los que no están disponibles estos IDE’s.

Respecto al tema gráfico voy a emplear GIMP para lo poco que tenga que retocar, ya que el trabajo artístico recae sobre Davit y él emplea sus herramientas favoritas.

Como podéis ver todo el software que se utiliza es libre o gratuito. No tendremos que realizar ningún desembolso monetario para programar nuestro juego, cosa que no sucedería si deseáramos emplear otros lenguajes de programación orientados a juegos como DIV, Dark o BlitzBasic. Además, si el curso lo sigues desde otros sistemas operativos, estos programas tienen versiones para muchos de ellos, y en el peor de los casos está disponible el código fuente para que los compiles para ellos.

Los enlaces a cada programa que utilicemos o domentación a la que hagamos referencia estarán en su correspondiente columna de “herramientas” en el lateral. Así mismo intentaré colgar el documento en formato PDF para facilitar su descarga.

Quiero aclarar que no empezamos de cero, aunque en este blog si lo hagamos. Los gráficos del juego están terminados en un 90% aproximadamente, y el programa va bastante avanzado.

En la siguiente entrega nos meteremos de lleno en la programación, explicando cómo es el mapeado del juego, introduciéndolo y programando las funciones que van a hacer uso de él.

7 Comments:

Blogger falvarez said...

Juas, ¿pero no quedamos en que se iba a hacer en C y SDL?

Entiendo que tirar del código del Babaliba te ahorrará prácticamente el 90% del trabajo, pero el que dijo que iba a aprender C y SDL fuiste tú xD

10:36 a. m.  
Blogger Miguel said...

Pues sí, me gustaría aprender a usar SDL, pero quizá con el siguiente proyecto. Total el Saimazoom tiene mucho código en común con el Babaliba, y es tontería empezar de cero ¿o no?

Es decir, prefiero invertir el tiempo de aprendizaje para hacer el Saimazoom en SDL en escribir los avances en este blog, que puede quedar una cosa curiosa.

Además, ponte con la música y deja de tocar las narices :D

10:41 a. m.  
Blogger zyloj said...

Pues si lo hacéis en fenix, podéis portarlo fácilmente a Dreamcast y GP32. Por lo que me dicen, sale de tirón.
Hay información sobre el tema en diversas páginas:
http://fenixonfire.gp32x.de/
http://chui.dcemu.co.uk/fenix.html

En http://dcemu.co.uk podéis preguntar sobre el tema a Wraggster, y chui también podría echaros un cable (que además es de mañolandia)

10:54 a. m.  
Blogger Miguel said...

Hola Zyloj.

Gracias por la información, la verdad es que no tenía ni idea de que fuera posible portarlo a esas plataformas.

Una buena noticia.

Un saludete.

11:09 a. m.  
Blogger zyloj said...

Un poco más de soporte sobre el tema de fenix en Dreamcast y Gp32:
- Foros de GP32X/Fenix zone:
http://www.gp32x.com/board/

- Foros de DCemu.co.uk/ Dreamcast fenix forum
http://www.dcemu.co.uk/vbulletin/

7:30 p. m.  
Blogger Siew said...

Fenix? joder, no lo habia oido en mi vida. Tengo curiosidad por ver la pinta que tiene :) Es una lastima que no vayas a empezar de cero, pero supongo que si vas explicando en detalle todo aquello que ya esté hecho será casi lo mismo...

6:34 p. m.  
Blogger Miguel said...

Hola Siew.

En FENIX hicimos el Babaliba, que lo debiste ver en la pasada MadriSX. Lo cierto es que el lenguaje no es muy conocido, nació como una "evolución" de un lenguaje comercial llamado DIV games studio.

Y sí, la creación la voy a explicar desde cero, de hecho estoy escribiendo el próximo artículo, con su código correspondiente, que habla sobre el mapeado del juego.

Un saludete.

6:44 p. m.  

Publicar un comentario

<< Home