DIV2, la imaginación al poder
Hace algún tiempo, apareció en los kioscos un programa que pretendía hacer fácil la programación de videojuegos. Sí, ya, ¿y qué más? Bueno, pues resulta que dicho programa sí que cumplía su objetivo, facilitando tareas típicas de la programación que en otros lenguajes había que trabajarse a pelo. Hablemos de su segunda parte.
Hace algún tiempo, apareció en los kioscos un programa que pretendía hacer fácil la programación de videojuegos. Sí, ya, ¿y qué más? Bueno, pues resulta que dicho programa sí que cumplía su objetivo, facilitando tareas típicas de la programación que en otros lenguajes había que trabajarse a pelo. Por mucho menos de lo que valía una licencia de Visual C++ o lenguajes de programación similares, podías comprar en un kiosco el CD-ROM con el programa y el manual del usuario. Esta maravilla se llamaba DIV y estaba totalmente desarrollada en España, por Hammer Technologies, una empresa desconocida hasta entonces. El éxito del programa tuvo como consecuencia la aparición de cientos de páginas web de aficionados al tema, que hacían sus propios programas y publicaban tutoriales para los que querían iniciarse en el tema.
Así, que cuando en Diciembre de 1998, leí en una revista que DIV 2 estaba a punto de salir, me lancé como un loco por toda mi ciudad para comprarlo. Al no encontrarlo, llamé a Madrid y me dijeron que estaban sufriendo retrasos y que no sabían cuando podrían publicarlo, pero que consultase la página web de vez en cuando para informarme. Y, por fin, en el mes de junio de 1999, conseguí comprar DIV 2 al lado de mi casa por el módico precio de cinco mil pesetillas...
Qué es DIV
Los que ya conozcáis DIV, podéis saltaros esta parte, que no os lo voy a tener en cuenta.

DIV es un lenguaje de programación (más bien un entorno) que incluye un montón de librerías que facilitan enormemente la programación de videojuegos. Una vez creado nuestro programa, podemos compilarlo y ejecutarlo para ver cómo funciona y pasárselo a nuestros amigos, que no necesitarán DIV para ejecutarlo.Pese a lo increíblemente fácil que es hacer juegos con DIV, hay que aprender algo de programación, pero si ya sabéis C o incluso Basic, en tres días podéis tener listo vuestro propio juego.
Con el CD-ROM de DIV 2, se incluye un manual de instrucciones de unas 200 páginas, que nos presenta todas las novedades de esta versión y un tutorial para aprender los fundamentos. Tiene algunos fallos de maquetación y se hace corto, pero para eso está la ayuda en línea, de la que encontraréis una pequeña descripción más adelante.
Los requerimientos del sistema son más bien normales: un procesador Pentium, 16 MB de RAM (mejor si son 32) y un lector de CD-ROM. Por supuesto, si queréis probar efectos de sonido, necesitaréis una Sound Blaster o Gravis Ultrasound o compatible.
Una vez instalados los componentes elegidos (hasta 400 MB, si instaláis los programas de ejemplo), nos ponemos manos a la obra.
Empezando
Lo primero que hay que decir es que DIV 2 (como DIV) corre bajo MS-DOS o en una ventana DOS de Windows 95/98. Tanto el entorno de programación como los juegos que hagamos funcionarán en DOS, pero se incluyen una serie de cosas que harán que nos olvidemos de programación de drivers y cosas así. DIV 2 maneja tarjetas SoundBlaster (normal, Pro, 16 y /es/node/ArrayAWE y compatibles) y Gravis Ultrasound y las detecta automáticamente siempre que estén bien configuradas para MS-DOS. Tampoco hay que preocuparse de los modos SVGA, porque se incluyen instrucciones que permiten manejar cualquier modo VESA de los existentes, siempre que nuestra tarjeta sea compatible VESA (en el CD se incluye el Scitech Display Doctor por si acaso). Así que, de entrada, los juegos en MS-DOS se simplifican bastante porque no tenemos que estar pendientes de programar nuestros propios drivers. Además, DIV 2 y los juegos que programemos utilizarán el extensor de memoria DOS4GW, evitándonos jaleos de direccionamiento de memoria y paginación y cosas de esas que hacían perder el tiempo a todos los programadores en DOS.
Tras la instalación y la configuración de la tarjeta de sonido, accedemos al programa, que nos pregunta por el nombre de nuestra compañía y el copyright, cosas muy importantes ahora que programamos videojuegos.
Y ahora, ¿qué? Bueno, pues deberíais leer las primeras 106 páginas del manual para enteraros del manejo de todos los componentes de DIV 2, pero si os gusta la aventura, podéis limitaros a copiar el primer ejemplo que aparece en el libro que seguro que os hace ilusión.
Los componentes
DIV 2 no se limita a un compilador o a un lenguaje de programación, es un entorno gráfico amigable y rápido basado en ventanas y que es muy similar a cualquier Windows. Podemos configurar la resolución de la pantalla, el tapiz de fondo, los colores y un montón de cosas para personalizar nuestra nueva herramienta de trabajo. Pero aparte de todo esto, DIV 2 incluye los siguientes módulos:
Un sistema de ayuda. Indispensable si estás empezando porque equivale a unas 500 páginas de texto. Podemos buscar en el glosario o pulsar sobre un término de un listado para que aparezca todo lo necesario para dominar esa función que se nos resiste. Además de la sintaxis y la descripción de cada campo, podemos encontrar un ejemplo que se ejecutará con dos pulsaciones de tecla. La pega es que le falta un sistema de búsqueda para encontrar tal o cual palabra, pero podemos imprimir todo lo que queramos. Además, el CD-ROM se incluyen un montón de páginas web de aficionados para navegar off-line cuando queramos.
El trazador de programas. A los neófitos en la programación les puede resultar un pelín difícil de entender, pero seguro que a los más empollones les encanta. Sirve para controlar el consumo de recursos de cada proceso (lo que nos servirá para optimizar el programa) mientras el juego se ejecuta y podemos parar la ejecución del programa en el momento que queramos, para ver los valores que adoptan las variables. Además, cuando el programa se queda colgado (por algún bucle infinito de esos que siempre salen), el trazador aparecerá y permitirá que veamos qué ha fallado y que salgamos al entorno. Esto hace que un juego no se cuelgue nunca por muy patán que seas programando.
Instalador Universal. Sirve para crear distribuciones de tus programas en disquetes o CD-ROM. Se pueden poner tus propios gráficos, optimizar el código para Pentium, empaquetar los ficheros, incluir un Setup de sonido y unas cuantas cosas más. Muy fácil de usar y muy vistoso.
El editor. Para introducir el programa se usa un editor de texto normal y corriente al estilo del editor de MS-DOS. Utiliza diferentes colores para señalar palabras clave e instrucciones y se agradece que copiar, cortar y pegar usen las mismas combinaciones de teclas que cualquier aplicación bajo Windows.
Menú de paletas. Al trabajar en 256 colores, tendremos que fusionar, editar y crear nuestras paletas para los juegos y es lo que permite este menú.
Menú de mapas. Para trabajar con los gráficos. DIV 2 tiene un formato de gráficos propio, pero podemos cargar JPG, PCX y BMP de cualquier otra aplicación (Photoshop, Paint Shop Pro, 3D Studio MAX,....) o editarlos en el programa de diseño gráfico que se incluye en el entorno gráfico y que es muy superior al Paint de Windows. Podremos crear nuestros gráficos y animaciones de manera sencilla con este editor que incluye los efectos más normales en este tipo de programas, aunque no puede sustituir a los grandes monstruos mencionados antes. También podremos crear mapas de búsqueda que representan obstáculos para las rutinas de búsqueda de caminos que incluye DIV 2. Desde este menú, también podemos acceder al generador de explosiones (eliges una paleta, un tamaño y el número de cuadros y ya tienes una explosión perfecta) y el generador de sprites (nuevo en DIV 2 y que permite crear animaciones de humanos luchando, corriendo, andando, muriendo y un montón de cosas más en infinitas perspectivas y con la "piel" que les asignemos).Si el editor de gráficos no te satisface, puedes usar la versión shareware de Paint Shop Pro que se incluye en el CD.
El diseñador de mundos 3D. Otra de las novedades de DIV 2 es que podemos hacer juegos tipo DOOM o HERETIC gracias a este módulo y las funciones destinadas a tal fin. Bastará con crear nuestro nivel y asignar las texturas adecuadas a cada pared (de hasta 2048x2048). Es muy similar a Worldcraft en cuanto a manejo, pero más sencillo debido a la menor complejidad de los niveles que se pueden crear.
Menú de fuentes. Para crear y gestionar los tipos de letra que usaremos en nuestros juegos. En el CD viene incluida una utilidad llamada TurboIFS para convertir fuentes TrueType al formato IFS de DIV2. Este formato IFS se puede modificar con efectos como sombras, antidentados, dimensiones, etc, etc. Además, podemos diseñar la fuente desde cero con el editor gráfico y transformarlo a IFS con lo que los tipos de letra son ilimitados.

Sonido. DIV2 permite utilizar sonidos en formatos PCM (8 bits y hasta 11 KHz) y WAV (hasta 16 bits y 44.1 KHz) en nuestras creaciones. También podemos grabar y hacer modificaciones sencillas del sonido dentro del entorno gráfico, pero si se quieren hacer cosas más interesantes como filtros o efectos de eco, podemos usar la versión shareware de Cool Edit que se incluye en el CD. Evidentemente, si disponéis de Sound Forge o algún programa mejor, podréis pasar vuestros "ruidos" a DIV si los grabáis en formato WAV.
Además de sonidos, podemos utilizar ficheros de música MOD, S3M y XM que creemos con el Fast Tracker que está incluido en el CD (para variar) o pistas de CD-Audio que tendremos que haber grabado antes, claro.
Otras utilidades que se incluyen son: un reloj, una papelera (para borrar los ficheros que ya no nos sirven), un programa para escuchar CD de música y una calculadora (tanto para expresiones matemáticas como para lógicas). También podemos salir al Shell de MS-DOS para ejecutar comandos que sólo usen memoria base.
Por qué es tan fácil
Crear un juego sencillo en DIV2 es muy fácil. Basta leer el tutorial para saber qué hemos de hacer para poner los gráficos en pantalla, crear los enemigos y hacer las explosiones.

DIV2 se basa en la creación de procesos: si quieres hacer que una nave recorra la pantalla, basta crear un proceso nave, asignarle un gráfico y unos movimientos y llamarlo desde el programa principal. DIV2 se encarga de desplazar el gráfico por la pantalla, borrar el anterior y hacer las transparencias necesarias. Además, utilizando la variable angle, podemos rotar el gráfico sin tener que crear nuevos gráficos para cada ángulo, ya que el programa se encarga de este aspecto.
Tampoco tenemos que preocuparnos de refrescar la pantalla, basta incluir al final de cada proceso la instrucción frame, que vuelca a pantalla la siguiente imagen.
DIV2 incluye funciones para casi todo lo necesario en la programación de videojuegos sencillos como arcades, videoaventuras, aventuras gráficas o juegos de estrategia y rol.
Hay funciones para crear varios planos de scroll, para modo 7 (como el de la Super Nintendo), para modo 8 (mundos tridimensionales tipo DOOM), para búsqueda de caminos, para todos los dispositivos de entrada (ratón, teclas y joystick de hasta 4 botones y 3 ejes), sonido y música (incluyendo funciones para manejar el estéreo), modos gráficos hasta a 1024x768, manejo de FLI y FLC, y un largo etcétera.
Pero si necesitáis alguna función más, podéis incluir vuestras propias DLL compiladas en Watcom C y tener cosas simples como salvapantallas o efectos de nieve o cosas tan complejas como queráis (algoritmos de Inteligencia Artificial, manejo de ficheros MIDI, que el modo 8 utilice Glide,...)

Cuando queramos ver el efecto de las instrucciones tecleadas, basta pulsar la tecla de compilar y, tras breves instantes (y si todo está bien tecleado), podremos ver cómo nuestra nave se mueve por la pantalla y dispara.
No nos engañemos
DIV2 es muy fácil de manejar. Pero para programar un buen juego, se necesita un equipo de programadores, músicos y grafistas de más de una persona. Hacer juegos tipo Arkanoid, Asteroids, Comecocos, Nemesis o Street Fighter es muy sencillo (y vienen varios ejemplos en el CD) pero olvidaos de hacer un juego como Halflife o como Fifa 99 porque necesitaríais manejar Direct3D o librerías creadas por vosotros que manejen gráficos tridimensionales y esto es difícil bajo MS-DOS. No obstante, con una buena idea y un adecuado tratamiento gráfico y sonoro, se pueden hacer juegos muy buenos y quizá alguna distribuidora quiera arriesgarse con vosotros.
Yo hice mi primer juego con DIV2 en tres tardes (incluyendo el hacer los gráficos) y era un clon de Asteroids con dos planos de scroll, sonidos de la biblioteca incluida en el CD y música de un amigo. No es gran cosa, pero lo he hecho yo y estoy orgulloso de ello y, además, podéis cogerlo de www.gui.uva.es/comprapc/DIV2/Meteoritos.zip. Así, que si queréis programar, tenéis tiempo y amigos que os puedan echar una mano, comprad DIV2, haced el juego y lanzad demos por Internet porque alguna compañía podría ver vuestro talento... Pero si no lo conseguís, siempre podréis publicarlo como freeware y ver con orgullo como vuestro programa circula por la red de redes... Además, no hay que pagar derechos ni royalties a Hammer Technologies ni hacer referencia alguna a DIV en vuestros juegos, con lo que podéis fardar de programar directamente en ensamblador si queréis.
Direcciones de interés
www.divgames.com Desde la página oficial de DIV, podéis acceder a todas las páginas de aficionados a este lenguaje de programación, que seguro que os serán útiles.