# BennuGD

BennuGD o simplemente Bennu es un lenguaje de programación, orientado al desarrollo de videojuegos en 2 y 3 dimensiones. Es una continuación de DIV Games Studio y Fénix y se distribuye bajo licencia GNU General Public License. Es ideal para aquellos que quieren iniciarse en el mundo de la programación de videojuegos por su sencillez a la hora de programar, pero también es una herramienta muy completa, que gracias a la posibilidad de importar bibliotecas de enlace dinámico programadas en C prácticamente no tiene límites. BennuGD presenta una gran cantidad de bugs corregidos respecto a Fénix además de una serie de importantes innovaciones. A pesar de esto, se mantiene la compatibilidad entre ambos lenguajes.

## Características

* Lenguaje interpretado basado en el lenguaje DIV, mezcla de C y Pascal, muy sencillo y potente.
* Completamente modular.
* Multiplataforma:
** Windows 9x/ME/2000/XP/Vista/7
** Linux (x86/ARM/PPC/...)
** FreeBSD
** Mac OS X
** Dispositivos IOS (iPhone, iPad, iPod touch)
** Haiku.
** Consolas: GP2X Wiz, Caanoo, XBox, Wii, GP2X, Dreamcast, Playstation 2, PSP
Los programas compilados pueden ser intercambiados entre cualquiera de esas plataformas sin necesidad de recompilación.
* Procesos (programación multihilo).
* Motor de render 2D por software.
* Altamente Portable.
* Expresiones regulares.
* Modos gráficos 8, 16 y 32 bits, entre otras cosas permite rotación de sprites, escalado, alpha blending, blendops, blit aditivo y sustractivo, etc.
* Reproducción de sonidos en formato WAV, PCM y Ogg Vorbis.
* Soporte de librerías DLL en las plataformas que así lo permiten.

## Historia

En la década de 1990, Daniel Navarro Medrano creó una herramienta orientada a la creación de videojuegos de 32 bits bajo MS-DOS. El nuevo lenguaje, de nombre DIV Games Studio, combinaba características de C y Pascal con un entorno completo que permitía la creación y edición de todos los aspectos de los proyectos: programación, edición gráfica y sonora y un largo etc.
Fenix, inicialmente bajo el nombre DIVC y de naturaleza GNU, apareció de la mano de José Luis Cebrián como una herramienta capaz de compilar y ejecutar esos juegos en Linux. El nombre fue cambiado en la versión 0.6 del compilador, que además introducía otras mejoras, como la aparición de un fichero intermedio entre el entorno de compilación y el entorno de ejecución. Ya no era necesario distribuir el código fuente de un juego para poder jugar a los juegos. La ventaja principal de esa práctica (similar en concepto a Java) era clara, compilar en una plataforma y ejecutar en muchas.
En la versión 0.71 el proyecto quedó parado, lo que dio lugar a múltiples versiones derivadas que corregían fallos o añadían nuevas características.
La versión oficial de Fenix fue retomada por Slàinte en el año 2002, viejo conocido de la comunidad DIV por ser el webmaster de una de las páginas web más importantes para la comunidad, quien continuó el proyecto bajo el nombre de Fenix - Proyecto 1.0 al que pronto se reincorporaría su creador y cuyo primer objetivo era limpiar el compilador de errores y estabilizarlo. Desde entonces el compilador ha sufrido numerosos cambios y mejoras, dejando de un lado la compatibilidad con el lenguaje DIV.
Más tarde, tras un largo tiempo sin modificaciones, en el año 2006, Fénix fue retomado por el hacker argentino SplinterGU, el mismo que implementó el primer sistema de dlls. Tras muchas idas y vueltas, Splinter decidió crear un fork de Fénix, con grandes cambios internos como la adopción de un sistema modular, pero que mantendría la compatibilidad con su predecesor. Así nace Bennu, que luego añadiría a su nombre "GD" (Game Development) debido a que ya existía otro proyecto con el nombre original. Si bien todavía no hay un release oficial, las versiones beta ya están disponibles.