Creación de juegos con Entidad 3D
Introducción:
En esta sección vamos a ver los conceptos y puntos básicos que hay que tener en cuenta a la
hora de realizar un juego con Entidad 3D. No es un manual paso a paso de como utilizar los programas,
para eso ya están los manuales y tutoriales de Entidad 3D. Esta sección es más bien una disertación filosófica y personal del sistema de
trabajo con Entidad 3D.
Antes de seguir, es bastante recomendable que al menos ya te hayas estudiado los tutoriales de 'World Editor' y de Entidad 3D, ya
que si no es así, muchos términos que leas te sonarán a chino o te dará la sensación de que ciertos
puntos están excesivamente resumidos (que así es).
Muchos de los puntos de esta sección son comunes a la creación de juegos en general, ya sean comerciales,
realizados con un 'Game Maker' (programa para hacer juegos) o programados con un lenguaje de
programación. Pero para el caso que nos toca me voy a centrar en el proceso concreto de elaboración
de un juego con el entorno de desarrollo Entidad 3D, con sus ventajas y limitaciones.
Al final explico todos los pasos que realicé para desarrollar el juego de ejemplo 'Black Faction'. Este juego no es ninguna
maravilla de la técnica pero te puede servir de muestra
para un posible juego que quieras desarrollar, ya que siempre es mejor que no tener
ningún ejemplo y que todo sean aburridos manuales teóricos sin nada práctico que demuestre que
aquello al menos funciona mínimamente.
Lo hago con Entidad 3D:
Normalmente antes de acometer la labor de realizar un juego se decide uno por el entorno de desarrollo que
va a utilizar en función de la temática de juego que se desea realizar, de los medios de que
se dispone (materiales y humanos), del tiempo, del presupuesto, etc..., pero en este punto ya
asumo que te has decidido por Entidad 3D, ya sea por lo que has podido ver y leer acerca de él
o porque es Freeware, o porque está en español, o porque no hay que programar en Visual C/C++,
o por lo que sea.
En la actualidad ya existen numerosos entornos de creación de juegos 3D disponibles que hacen
más llevadero el proceso de creación de un juego de este tipo. Los hay con entornos de
programación en Visual C++, otros hay que programar pero su lenguaje es bastante sencillo y potente, otros no hay
que programar pero hay que utilizar unos sencillos comandos para establecer la lógica del juego,
otros son comerciales, otros Shareware, otros Freeware, otros con mucha comunidad en Internet,
otros son editores de niveles de juegos comerciales (el creador del juego y el jugador han de
tener el juego comercial para poder jugar al nuevo juego desarrollado), etc..
Como veis hay sistemas para todos los gustos, bolsillos y niveles. Entidad 3D se engloba en
el tipo de sistema que no hay que programar aunque si es necesario aprender sus sencillos comandos,
es Freeware, no necesita de ningún juego comercial para funcionar y está completamente
en español (al estar realizado en España, claro).
En el entorno de desarrollo de Entidad 3D, todas las herramientas menos una son o bien Freeware
o 'Open Source'. El que no lo es, es el programa Shareware llamado MilkShape 3D (no suministrado con Entidad 3D),
herramienta en la que nos apoyaremos para cualquier edición 3D que requiera algún objeto o
personaje de nuestro juego. El programa sólo cuesta 25 euros, por lo que a tu elección queda
el piratearlo y crackearlo, cosa por cierto bastante fea.
MilkShape 3D no es mío, ni tengo comisión ni nada parecido, pero lo cierto es que es altamente
recomendable si quieres editar modelos 3D que incluirás posteriormente en Entidad 3D. De todas
formas no es completamente imprescindible si te conformas con los objetos y personajes que ya
hay disponibles para Entidad 3D y no estás interesado en modificarlos.
Trabajar por amor al arte:
Lo que hay que dejar muy claro es que el juego que queremos realizar no va a ser comercial ni
va a rivalizar con Half Life 2 ni con Doom III, por lo que nos ahorraremos los estudios de mercado y
la viabilidad de nuestro proyecto y demás temas comerciales.
El juego lo vamos a hacer porque queremos pasarlo bien en el proceso de su realización, porque queremos
enseñárselo a los amigos, porque queremos presentarlo en un concurso, porque queremos adquirir experiencia
para realizar otros proyectos más ambiciosos o porque no tenemos nada mejor que hacer con nuestro tiempo.
A diferencia de otros artículos o tutoriales que también describen todo el proceso de creación de un
juego, lo orientan hacia el tema comercial, pero yo creo que hay que ser un poco más realistas visto el panorama actual, que por
lo menos existe en España.
Salvo casos muy contados, donde si que han tenido éxito algunas creaciones españolas actuales, la verdad
es que la industria de creación de videojuegos para PC y consolas, es en la actualidad muy limitada en España, y no
es por falta de gente con talento, pero esa es la cruda realidad. Por eso yo desde esta sección no pretendo ofrecer falsas
ilusiones haciendo creer que con vuestra idea y Entidad 3D vais a poder dar el 'pelotazo' en el mundo de los videojuegos y colocaros en un
exitoso grupo de desarrollo ganando un montón de dinero y prestigio, después de haber vendido 2 millones de
copias de vuestro genial juego.
Os parecerá un planteamineto un tanto pesimista, pero a mí me parece más bien una actitud realista.
Por eso vamos a realizar algo más asequible para pasarlo bien, para ver lo que es enfrentarse
a un proyecto (aunque sea modesto) y sobre todo porque tenemos ganas de volcar toda nuestra
creatividad y talento en algo que nos gusta.
¿ Qué necesitas ?:
Básicamente yo lo reduciría en 5 puntos:
Tiempo
Ganas
Medios
Conocimiento
Personal
Tiempo:
Pues algo de tiempo vamos a tenerle que dedicar al proyecto, y si es a diario,
mucho mejor, ya que si vas espaciando el tiempo que le dedicas, al final puedes caer en el
desánimo y abandonar el proyecto. A parte de que si es un tiempo continuado tendrás todo más
fresco y a la larga trabajarás mejor y con más creatividad.
Ganas:
Para abordar proyectos por amor al arte, que no te va un sueldo ni te aprieta un jefe, es
fundamental tener muchas ganas de realizarlo, ya que si hay pocas ganas lo más seguro es que
el proyecto lo acabes abandonando al primer contratiempo o al aparecer en tu vida otras cosas
más importantes y prioritarias que hacer jueguecitos.
Medios:
Pues evidentemente vamos a necesitar al menos un ordenador y diversos programas para
poder trabajar en el proyecto. La verdad es que con Entidad 3D no es necesario un superordenador
para hacer algo medianamente decente, con un Pentium III a 500 Mhz hay de sobra.
Conocimiento:
De nada nos sirve todo lo anterior si no sabemos ni como empezar nuestro proyecto,
ni como manejar medianamente bien los programas que utilizaremos.
Personal:
En la práctica podrías realizar el juego tú solo, pero siempre
será más divertido si lo haces en equipo, y más si el equipo lo formáis personas especializadas
en distintas disciplinas, a parte de que seis ojos siempre verán más cosas que dos.
En resumen:
El tiempo lo pones tú.
Las ganas las pones tú.
El ordenador lo pones tú.
Los programas necesarios son:
- Entidad 3D
- World Editor (utilidad incluida con Entidad 3D)
- Texture Packer (utilidad incluida con Entidad 3D)
- Actor Viewer (utilidad incluida con Entidad 3D)
- Actor Studio (utilidad incluida con Entidad 3D)
- MilkShape 3D (utilidad Shareware no incluida en Entidad 3D)
... y un editor 2D tipo Gimp o Adobe Photoshop para retocar texturas
Los conocimientos también los pones tú, pero espero que los aumentes leyendo los manuales y tutoriales de Entidad 3D.
El personal necesario son:
Director de proyecto.
Programadores.
Guionistas.
Grafistas 2D.
Grafistas 3D.
Modeladores 3D.
Animadores 3D.
Creativos.
Músicos.
Betatesters.
Bueno, o eso es lo que básicamente se necesita para crear un juego comercial, y eso sin contar
con los editores y distribuidores.
Pero como nuestro proyecto es más modesto, pues tú decides que tareas asignas
a cada persona, incluido tú mismo.
Como Entidad 3D es un entorno de desarrollo que no necesita programadores, pues eso que nos
ahorraremos, pero de todas formas no te librarás de aprender unos comandos básicos que sí que
tendrás que dominar si quieres implementar algún tipo de trama a tu juego.
Este 'Game Maker' no hace eso:
Trabajar con un 'Game Maker' o programa para realizar juegos, tiene sus ventajas y desventajas,
como todo en esta vida. A parte de evitarte programar, existen muchas tareas que ya están automatizadas
en parte o completamente, pero por otro lado tienen una serie de limitaciones que tendrás que
asumir.
Me refiero a que si estuvieras por ejemplo realizando tu juego con un 'engine' en Visual C/C++ y
en tu juego tiene que aparecer la siguiente escena: 'un coche se aproxima derrapando al jugador, se queda a 2 centímetros
de él y del interior del coche sale una chica deslumbrante que te dice '¿ Entras ?, a lo que el
jugador podrá ponerse al volante y tomar el control del coche', .... pues vas y le dices al
programador que hay que hacer eso y el hábil programador implementa en poco tiempo una flamante rutina
,optimizada, recursiva, prototipada y orientada a objetos en lenguaje 'C' que satisface las exigencias de tu guión.
Pues bien, el caso anterior es muy bonito pero imposible de realizar con Entidad 3D, de aquí viene la necesidad de conocer
muy bien las cualidades y limitaciones de Entidad 3D ANTES incluso de realizar el guión de tu juego.
Temática del juego:
Entidad 3D no te limita a ciertos tipos de juegos (aunque aparentemente lo parezca), todo depende de tu imaginación y habilidad para manejar las entidades y comandos. Aparte
de tu talento para crear escenarios adecuados a la temática del juego.
Algunos ejemplos de juegos comerciales que podrías llegar a crear de forma similar con Entidad 3D podrían ser:
Juegos 3D de disparos en primera persona tipo Quake, Unreal o Counter Strike.
Juegos 3D de disparos en primera persona con trama tipo Half-Life.
Juegos 3D de disparos en tercera persona con trama tipo Max Payne 2.
Juegos de aventuras 3D tipo Tomb Raider.
Comecocos 3D.
Juegos de plataformas 3D tipo Super Mario 64.
Juegos RPG con vista desde arriba.
... o juegos con características combinadas de diversos géneros.
Incluso se han llegado a crear juegos de naves espaciales. Piensa que el jugador puede volar y si cambias el modelo 3D del jugador por una nave o por lo que
tú quieras ... ¿ qué podrías hacer ?.
Evidentemente encontrarás limitaciones en muchas características en comparación con juegos comerciales, pero Entidad 3D te permite experimentar a muchos niveles;
cambiando los modelos 3D, cambiando todo tipo de parámetros en las entidades y combinando de infinidad de formas los comandos. No te limites exclusivamente a lo que se comenta
en los manuales creyendo que sólo se puede hacer lo que ves.
Yo es que no necesito guión:
Una mala costumbre que hay a la hora de hacer juegos 'amateur' es que se comienza con muchas
ganas y directamente ya se sienta uno delante del ordenador a 'hacer cosas' e ir enganchándolas
sobre la marcha para que todo vaya encajando según la 'visión mental' del creador del juego.
Yo personalmente creo que eso es un error, porque efectivamente yo he realizado juegos así, y
he visto la diferencia que hay entre trabajar sin guión a trabajar con guión.
También es útil en el caso de que dejes una temporada aparcado el desarrollo del juego, con un guión
sólido y detallado siempre te será más fácil retomar el proyecto.
Como ves, es muy aconsejable que elabores un guión de tu juego, por lo menos con la
trama de principio a fin, para tener siempre a mano una guía de lo que ha de hacer tu juego.
Yo no digo que realices un 'Story Board' de cine, pero si algo similar a lo siguiente:
Introducción:
Texto que podrá servir para la introducción del juego y que sitúe un poco al jugador.
Desarrollo del juego:
Textos que expliquen las situaciones del juego y los personajes que intervienen.
Textos que expliquen que interacción hay entre los personajes y el jugador. Que dicen, que hacen,
que piden, que dan, donde están, cuando aparecen, cuando desaparecen.
Textos que expliquen que interacción hay entre el jugador y partes del escenario (paneles, palancas, botones, pedestales, pozos, etc..).
Textos que expliquen que objetos utiliza el jugador, donde los encontrará, donde los utilizará,
de quien o que los recibirá, porque los necesitará, que produce el objeto utilizado.
Si tu juego es lineal, o sea, que el jugador ha de ir haciendo una serie de tareas en un orden
para poder seguir avanzando, escribe los textos anteriores en el mismo orden que se producirán.
Personajes secundarios:
Nombre de cada uno de los personajes que intervendrán en el juego sin ser el personaje
protagonista ni los enemigos que disparan.
Deja espacio para poder añadir posteriormente que fichero 3D será cada personaje.
Personajes protagonistas:
Nombre del personaje o personajes que manejará el jugador.
Deja espacio para poder añadir posteriormente que fichero 3D será cada personaje.
Personajes enemigos:
Aquí más que nombres de personajes, se refiere a personajes que dispararán al jugador y
que se desplazarán por el escenario de juego.
Con darles un número del 1 al 8 será suficiente para de momento referirnos a ellos.
Deja espacio para poder añadir posteriormente que fichero 3D será cada enemigo.
Objetos:
Nombre de los objetos que el jugador podrá utilizar.
Dales un número (a partir del número 2) y un nombre.
Deja espacio para poder añadir posteriormente que fichero 3D será cada objeto.
Otros modelos:
Aquí deja espacio para poder poner los nombres de otros ficheros 3D que puedas necesitar
dentro de tu escenario y que no sean propiamente objetos recogibles ni personajes.
Esquema del mapa:
No estaría de más elaborar un simple esquema del mapa de tu escenario. Es suficiente
dibujarlo a base de cuadrados que representan las distintas zonas donde evolucionará
el jugador, que puertas conectan unas zonas con otras y que se necesita para acceder a las zonas.
Dentro de esas zonas puedes indicar que objetos y personajes contiene, de esta forma de
un vistazo podrás ir estableciendo el recorrido que tendrá que hacer el jugador, con
quien tendrá que encontrarse, como podrá acceder a ciertas zonas donde tendrá que
recoger objetos que le permitirán acceder a otras zonas o utilizarlos con alguien o para
hacer algo.
Como ves, además de un guión, esta estructura te servirá de base para saber qué elementos
intervienen en todo momento en tu juego.
Lo ideal es que comiences por la 'Introducción' y el 'Desarrollo' y según vayas avanzando con ello
vayas rellenando el resto de apartados del guión.
Si te fijas, aún no hemos conectado el ordenador, me refiero a que todo este proceso de
planificación y estructuración lo puedes realizar perfectamente con papel y lápiz y tumbado
en la playa, en un parque o en el autobús.
Evidentemente tampoco vas a planificar al 100% todo el juego, eso es normal, por lo que tampoco
será cosa rara que durante el desarrollo del juego tengas que retocar tu guión sobre la marcha (pasa hasta
en el rodaje de las películas), pero el caso es que tengas siempre un guión al que echarle mano. Pero haz eso, retoca el guión y aplica
el cambio en tu juego, o al revés, pero lo que no has de hacer es cambiar algo en el juego y no
reflejarlo en el guión.
Desarrollo de una idea en un guión:
Hay dos formas de desarrollar el guión:
Primera forma: Tienes en mente una maravillosa historia que escribes muy bien en un guión y luego buscas
los medios para llevarla a cabo. Si es necesario te creas los medios y también creas
todos los objetos, personajes, animaciones, texturas, mapas, sonidos y músicas que requiere tu idea.
Segunda forma: Evalúas lo que tienes a tu alcance con lo que hayas podido conseguir Freeware por
Internet y en base a eso escribes tu guión.
El primer caso es una tarea 'faraónica' y según qué situaciones plantees en tu guión será del todo
imposible realizarlas con Entidad 3D.
En el segundo caso, es más sencillo y está al alcance de casi todo el mundo, aunque tampoco
hay que descartar crear alguna que otra textura o alguna que otra animación.
De acuerdo que al final será un refrito de cosas recogidas por Internet, pero si elaboras una
buena trama para tu juego (ya sea misteriosa, divertida, surrealista, original, emocionante, etc..) y creas
nuevas texturas para tus personajes y escenarios,
nadie podrá negar tu mérito al crear algo nuevo aún reciclando elementos de distintas fuentes.
Pero tú decidirás a que nivel de creación te implicas en tu desarrollo. Evidentemente si dispones de una persona
especialista en modelación y animación, pues podrás crear objetos y personajes completamente nuevos, o si
dispones de un músico incluso podrás ponerle una exclusiva banda sonora a tu juego.
Mi consejo en el caso de que sea tu primer juego con Entidad 3D es que lo crees de la segunda forma, eso
te dará experiencia sobre las herramientas, será más rápido y tendrás menos posibilidades de
estrellarte en un proyecto excesivamente ambicioso y laborioso.
En el caso del guión del juego de ejemplo 'Black Faction', lo que realicé fue
lo siguiente por este orden:
Analicé las posibilidades y limitaciones de Entidad 3D.
Busqué un escenario gratuito de Quake 1, le cambié las texturas y lo decoré a mi gusto según la idea que tenía en mente para el juego.
Busqué personajes y objetos que había disponibles en formato .ACT o .MDL
Hice el guión según lo que tenía disponible, pero siempre con el concepto de mi juego presente.
Orden y desorden:
Si a la hora de realizar tu juego no sigues un orden en las tareas de creación es muy posible
que pierdas mucho tiempo o que cosas que habías realizado, ahora al haber llegado a un punto
concreto del desarrollo, resulta que han de ser de otra forma para que las cosas tengan sentido.
Yo particularmente seguí el siguiente orden para crear 'Black Faction':
1.- Cargo un escenario de Quake 1 (en formato .MAP) en el editor 'World Editor', utilizo
la opción 'Tools / Scale World' con el valor de 2 para aumentar de tamaño el escenario y
salvo el nivel en formato .3DT.
La mayoría de los niveles de Quake 1 son la mitad del tamaño de la escala que utiliza
Entidad 3D, por eso lo he reescalado a 2. Este detalle es fácilmente identificable porque
sencillamente no pasarás por las puertas si no le aplicas ese aumento.
2.- En el escenario eliminé numerosas entidades que no existen en Entidad 3D y que venían importadas del
escenario de Quake. Básicamente todas menos las luces 'light' y la 'Camera'.
3.- Añado al escenario la entidad 'DeathMatchStart' para fijar el punto inicial de partida del jugador.
4.- Añado en el fichero de texturas (texturas.txl) los nombres de texturas que se me queja
'World Editor' que no tiene, ya que estos niveles de Quake 1 vienen sin texturas, pero sí que
cada pared, suelo o techo tiene asociado su nombre de textura. Sólo hace falta que
'World Editor' encuentre esos nombres de texturas en su fichero de texturas (texturas.txl)
al cargar el nivel y entonces ya veremos esas texturas aplicadas en el escenario en los
lugares que les corresponden.
5.- Estas entidades 'light' dan mucha luz porque normalmente vienen con valor 1000, valores que cambié a
400 o 500 para obtener unos efectos de luz más suaves.
6.- Compilé el escenario y caminé por él como el que pasea por una casa que va a comprar, reformar o decorar,
fijándome en todos los detalles para poderlos explotar a la hora de crear el guión.
También observaba qué zonas podría delimitar con puertas, dónde sería necesario realizar
un agujero en la pared para añadir otra habitación o los mejores escondites para ocultar
objetos o enemigos al acecho.
7.- Me hice con unos cuantos personajes gratuitos en formato .MDL y convertí al formato .ACT los que
me parecieron que podrían servir para mi juego.
8.- También conseguí algunos objetos en .MDL y otros en formato .3DS que mediante los
programas 'MilkShape 3D' y 'Actor Studio' convertí en formato .ACT. Objetos que servirán para que
los pueda recoger el jugador al recorrer el escenario.
9.- Ahora es cuando me puse a elaborar el guión pensando en lo que se podía hacer con Entidad 3D
y lo que no se podía.
10.- Probé algunos personajes protagonistas para ver como se veían dentro de mi escenario y
qué rendimiento daba el motor 3D. Esto siempre lo hacía al probar nuevos objetos o personajes
dentro del escenario, ya que la inclusión de alguno de estos modelos 3D podría afectar
considerablemente al rendimiento general del juego debido al excesivo número de polígonos
de que constaban ciertos ficheros .ACT .
11.- Una de las tareas en 'Black Faction' es recolectar diversos objetos y llevarlos a alguien.
Todo eso lo realicé en una misma habitación, donde puse todos los objetos y los personajes
implicados. Esto me permitió chequear el mecanismo del juego de una manera muy rápida.
Cuando estuviera bien chequeado ya distribuiría por el nivel los objetos y personajes a sus posiciones
reales.
12.- Añadí al escenario algunas puertas que se abrirían con algún objeto, pero de momento dejé
que se pudiesen abrir siempre para poder alcanzar todas las zonas de manera rápida para
chequear acciones que tenían lugar en esas zonas y testear el rendimiento del escenario.
Comprobarás que si divides tu escenario con puertas marcadas con 'Area' en 'World Editor',
el rendimiento de tu escenario aumentará considerablemente ya que al motor 3D
le será más fácil manejar toda la geometría del escenario por partes.
13.- Coloqué todos los objetos y personajes en las posiciones que requería mi guión y ya puse
las condiciones necesarias para abrir las puertas.
14.- Probé el juego de principio a fin aún sin enemigos, sólo para comprobar que podía llegar
al final haciendo todo lo que tenía que hacer. Pero había una zona en el juego que sólo
se podía acceder a ella si mataba a un enemigo, por lo que ya era hora de añadir los
enemigos.
15.- Añadí unos cuantos enemigos con la única finalidad de entorpecer la buena labor del
jugador y un enemigo especial más armado y más difícil de matar que había que eliminar para
que permitiese el acceso a una zona.
16.- Al parecer me pase de enemigos, de armas que les di y de salud que tenían al comenzar, por
lo que me di cuenta de que así sería imposible que alguien pudiera llegar al final del
juego, por lo que añadí más objetos de salud para reponer la salud del jugador, eliminé
algunos enemigos, les quité a todos los enemigos (menos a uno) el arma número 4 y bajé el
nivel de salud de todos ellos. El resultado fue que ahora era demasiado fácil acabar con
todos los enemigos y llegar al final del juego. El caso fue ir equilibrando el nivel de
dificultad del juego hasta encontrar un punto adecuado de jugabilidad y dificultad.
17.- Busqué por Internet efectos de sonidos gratuitos de corta duración en formato WAV y diversas melodías en formato
MP3, MOD, IT, XM, etc..
18.- Cuando estuve satisfecho con el resultado de la jugabilidad del juego, le añadí algunos
efectos de audio que se reproducirían en momentos puntuales en el transcurso del juego.
19.- Luego añadí un fondo musical que sonará durante el desarrollo del juego, otro para el
final de partida y otro para cuando el jugador llegara el final del juego.
20.- Finalmente añadí los ficheros BMP necesarios para la introducción del juego y la
música que acompañaría a la introducción. También puse el BMP de los títulos de crédito.
21.- Jugué al juego con todo completo unas cuantas docenas de veces, lo que me permitió
observar pequeños detalles que acabe de pulir. Algunos eran simples faltas de ortografía
en algunos diálogos, pero otros eran más graves como un personaje que se suponía que no
te dejaba pasar, pero intentándolo atravesar pegado a la pared, el jugador conseguía pasarlo.
Lo resolví estrechando más la paredes a los lados del personaje.
22.- Dejé que algunas personas probaran el juego y que lo probaran a fondo, haciendo todo tipo
de estupideces y barbaridades para que pudieran intentar bloquear el juego o que intentasen saltarse alguna
de las tareas que eran obligatorias para seguir avanzando.
23.- Cuando el juego estaba lo suficientemente probado lo volví a compilar con 'World Editor',
pero esta vez con la opción de 'Full Vis' activada. Esto calcula de una manera más eficiente
toda la geometría del escenario, lo malo es que este tipo de compilación tarda una eternidad. Para
el caso de 'Black Faction' tardó más de 100 horas seguidas en un Pentium IV a 1.7Ghz.
24.- Después volví a probar el juego en distintas máquinas observando que efectivamente el
rendimiento había aumentado bastante.
25.- Finalmente di por finalizado todo el desarrollo del juego ... y fui a dar un paseo por el mundo real :D.
Mayo / 2004 (C) por Jordi Pérez
Septiembre / 2013 (C) por Jordi Pérez (actualización)