Entidad 3D

25.12.2012 10:07

 

AVISO: Crear un juego no es una tarea nada fácil, por lo que te debes plantear el seguir con tu proyecto, más abajo de la descripción viene un Extenso tutorial, además de vídeos en youtube para crear tu juego, te llevará hacer un juego mínimo 6 meses.

 
 
Entidad 3D' es un sistema completamente gratuito para desarrollar juegos 3D al más puro estilo Quake, pero con la posibilidad de que tu juego pueda tener algún tipo de desarrollo. Me refiero a que no sólo se trate de matar enemigos, si no que el protagonista del juego tenga que realizar diversas tareas para finalizar con éxito su misión.
 
Recoger todo tipo de objetos para utilizarlos en determinados sitios (no sólo armas, munición, escudos y vidas).
Interactuar con otros personajes para darles objetos, que te entreguen objetos, que te digan algo, que te dejen pasar, etc..
Abrir puertas o subir por ascensores si se dispone del objeto adecuado o si se ha realizado cierta acción previamente
En definitiva me estoy refiriendo a juegos de aventuras 3D pero sin dejar de lado una importante dosis de enfrentamiento armado (con 4 armas distintas) con distintos tipos de enemigos muy rápidos y despiadados que harán todo lo posible por eliminarte.
 
Sobra decir que con 'Entidad 3D' podrás hacer juegos sólo de matar enemigos o sólo en plan aventura sin matar a nadie, o con todo mezclado al nivel que tu desees.
 
Y todo esto lo podrás realizar con 'Entidad 3D' sin necesidad de programar en ningún lenguaje de programación, sin necesitar ningún juego comercial previamente instalado que haga de 'run-time' y pudiendo distribuir tu juego en un simple archivo .ZIP .
 
 
Características principales del propio Entidad 3D:
 
Armas de fuego tipo lanza-llamas, lanza-granadas, lanza-misiles, fusil ametrallador y de energía ... y armas de mano como espadas, barras, cuchillos o bates.
Creación y configuración de tus propias armas.
Zoom para usar en armas o como prismáticos del jugador.
 
Sistema de condiciones para realizar acciones del jugador (abrir puerta si lleva llave, recibir objetos si tiene un cierto objeto, hacer sonar músicas según circunstancias, etc ...)
 
Configuración de enemigos para que tengan diferentes comportamientos.
 
Personajes secundarios estáticos o móviles.
 
Control de animación de bloques o grupos de bloques del escenario en tiempo de juego.
 
Ascensores, elevadores, plataformas móviles, etc ...
 
El jugador puede llevar una luz (linterna o antorcha). Configurable el color de la luz, intensidad y su patrón de luminosidad.
 
Las luces se pueden encender y apagar, según condiciones, durante el transcurso del juego.
 
Diversos tipos de cámaras: Primera persona, tercera persona (inteligente, tipo Tomb Raider), cámara tipo RPG, cámara lateral tipo plataformas, además de cámaras fijas en el escenario que se pueden activar y desactivar durante el transcurso del juego.
 
Soporte de Joystick, teclado y ratón como controles del juego.
 
Sombras dinámicas calculadas en tiempo real para el jugador, los objetos y los personajes.
 
Bloques del escenario configurables para que sean letales para el jugador (lava, veneno, pinchos, etc ...)
 
Diversos tipos de superficies en el escenario que varían la gravedad y fricción de jugador, además del sonido que se usa para los pasos o avance del jugador.
 
El jugador puede volar.
 
Recolección de objetos en un inventario. Posibilidad de usarlos en el juego bajo condiciones o usando un menú de acciones.
 
Creación de objetos con todas sus características.
 
Concepto de dinero y con la posibilidad de asignar precios de compra y de venta de los objetos. Sistema automático de compra/venta de objetos.
 
Objetos predefinidos para recoger por el jugador: Salud, vida, escudo, munición y armas.
 
Realizar explosiones en el escenario según circunstancias.
 
Configuración de marcadores, tanto los gráficos como su posición en pantalla. Soporta la creación de barras de energía configurables.
 
58 tipos de letras.
 
Sistema de partículas configurable que permite la creación de efectos de lluvia, humo, chispas, fuego, niebla, burbujas o efectos exóticos según se personalice.
 
Cambios de texturas del escenario durante el juego.
 
Tabla de objetivos de la misión.
 
Teletransporte para el jugador.
 
Efectos de sonido, música de fondo, sonido ambiente de fondo ... todo al mismo tiempo y controlable durante el juego.
 
Soporte de diversos tipos de formatos de audio, entre ellos MP3 y WAV.
 
Soporte de diversos tipos de formatos gráficos, entre ellos JPG, BMP, GIF, TGA y TIF.
 
Soporte de texturas de 24 bits.
 
Soporte de texturas con canales Alpha para semitransparencias.
 
Posibilidad de realizar una presentación con una secuencia de imágenes para la introducción al juego.
 
Sencilla consola de texto para presentar mensajes durante el transcurso del juego para informar al jugador de lo que se desee.
 
Soporte de diálogos mediante un sistema de selección de respuestas por parte del jugador.
 
Posibilidad de solicitar al jugador que introduzca textos en algún momento del juego, ideal para contraseñas.
 
Cambio, durante el juego, del personaje que representa o controla el jugador. Ideal para transformaciones o mutaciones del jugador, cambios de ropa, cambio a un vehículo, etc ...
 
Uso de temporizadores programables para activar o desactivar sucesos durante el juego.
 
Generador automático de escenarios laberínticos o de tipo mazmorra.
 
Soporte de 'Checkpoints' para que el jugador use la siguiente vida no desde el inicio del juego sino desde un punto en concreto del escenario.
 
Secuencias de texturas animadas en el escenario permiten presentar pequeños vídeos integrados en pantallas del propio escenario. También se puede usar para simular burbujeo de líquidos (barro, ácido toxico, lava) o para crear el efecto de paredes y suelos 'vivos'.
 
Automáticamente salva la partida al comenzar un nuevo nivel. En el menú del jugador existe una opción para cargar la partida.
 
Durante el juego existe la posibilidad de almacenar información en un fichero en el disco duro para posteriormente poder leer esa información, aunque sea en otra partida iniciada otro día cualquiera.
 
Capacidades online para crear juegos de torneos online en Internet o en una red local (LAN).
 
(Imagen de juego creado con Entidad 3D)
 

EMPECEMOS CON LO SIMPLE: 

Lo primero el link, AVISO, si lo buscas en google no lo encontrarás ya que su página oficial cerró hace 4 años 0_o

 

Link: www.comunidad-e3d.com/modules.php?name=Downloads&d_op=getit&lid=14

Aceptas los términos y listo :D

 

 

TUTORIAL EXTENSO:

 

 

 

 

1º- Introducción al tutorial de 'Entidad 3D'
 
 
Este es un tutorial sobre el funcionamiento de 'Entidad 3D'. Programa que nos permitirá hacer realidad nuestro juego como tal. En realidad este programa, cuyo ejecutable es 'entidad3d.exe' ya es nuestro juego, sólo que tendremos que pasarle una serie de parámetros para indicarle el escenario a cargar, y dentro de este escenario especificaremos el resto de elementos que formarán nuestro juego, como personajes, objetos y desarrollo del mismo.
 
En este tutorial no se incluye ninguna información referente a como diseñar objetos o personajes 3D, texturas, sonidos o músicas. 'Entidad 3D' no hace eso (para eso ya hay herramientas específicas), 'Entidad 3D' es sólo una herramienta más de todo el proceso de desarrollo de un juego y es la que gestionará todos los recursos gráficos y sonoros para formar un juego, es básicamente el programa del juego ... así que eso que te ahorrarás de programar.
Si no quieres o no sabes crear objetos 3D, gráficos o sonidos, entonces tendrás que utilizar todo lo que encuentres por Internet o lo que te pueda servir de esta distribución de 'Entidad 3D', por lo demás con 'Entidad 3D' ya tienes todo lo necesario para poder crear un juego 3D con desarrollo y distribuible en un solo fichero de forma independiente.
 
Es imprescindible antes de comenzar este tutorial que te hayas leído previamente el tutorial de 'World Editor' para entender muchos conceptos de este tutorial, ya que básicamente seguiremos utilizando 'World Editor' pero con las nuevas entidades particulares de 'Entidad 3D' para desarrollar toda la interactividad de nuestro juego.
 
Es recomendable que comiences con los pasos numerados de la sección 'Pasos del tutorial' y en ese orden, ya que se trata de un proceso de aprendizaje progresivo.
 
 
2º- Nombres de ficheros


Con la finalidad de que puedan coexistir varios juegos distintos al mismo tiempo en Entidad 3D, pero utilizando las mismas carpetas, se ha establecido una serie de nombres de ficheros para que Entidad 3D los cargue en función del nivel que se está jugando, de esta forma podremos diferenciar diversos ficheros de audio, imágenes y personajes para cada juego o nivel en concreto.
 
Por este motivo es importante que establezcas los nombres de ficheros que se indican en este manual para que Entidad 3D sea capaz de encontrarlos y establecerlos para el juego o nivel correspondiente.
 
Por ejemplo: Tenemos un juego que consta de tres niveles que se cargarán por este orden a medida que el jugador avance en su desarrollo:

puente.bsp
carretera.bsp
escape.bsp
Cuando este manual se refiera a ficheros que afectan a todo el juego, te indicará que pongas delante del fichero el nombre del primer nivel de tu juego. Se indicará de esta forma:

PrimerNivel_intro.mp3
Con lo que para nuestro ejemplo el nombre real del fichero tendría que ser:

puente_intro.mp3
Y cuando se refiera a crear ficheros particulares para cada nivel, lo encontrarás indicado de esta forma:

Nivel_portada.bmp
Con lo que por ejemplo para el nivel 'carretera' el nombre real sería :

carretera_portada.bmp
De todas formas si creas los niveles sin estos nombres particulares, Entidad 3D utilizará unos ficheros por defecto o simplemente si no los encuentra no los utilizará, el caso es que el programa no producirá ningún error y podrás probar tu nivel sin problemas.

 
Tabla de ejemplo:
Para que tengas una visión general de este sistema de ficheros, a continuación se muestra una tabla de los ficheros que existirían para el juego del ejemplo anterior que recordemos consta de tres niveles llamados 'puente' 'carretera' y 'escape':

Tipo de fichero Nombre de fichero Función del fichero General / 
Particular
puente_intro1.bmp Primera imagen de la introducción del juego
puente_intro2.bmp Segunda imagen de la introducción del juego
puente_intro3.bmp Tercera imagen de la introducción del juego
puente_intro.mp3 Fondo musical para la introducción del juego
puente_final.mp3 Música de final de partida
puente_player1.act Personaje protagonista inicial
puente_player2.act Personaje protagonista alternativo
puente_enemigo1.act Personaje enemigo número 1
puente_enemigo2.act Personaje enemigo número 2
puente_enemigo3.act Personaje enemigo número 3
puente_enemigo4.act Personaje enemigo número 4
puente_enemigo5.act Personaje enemigo número 5
puente_enemigo6.act Personaje enemigo número 6
puente_enemigo7.act Personaje enemigo número 7
puente_enemigo8.act Personaje enemigo número 8
puente_creditos.bmp Títulos de crédito del juego
puente_hud_graficos.bmp Gráfico 2D fin de partida y punto de mira
puente_graficos_superpuestos.bmp Gráficos 2D superpuestos
puente_objetos_distintos.bmp Iconos 2D de objetos
puente_final_juego.bmp Imagen de final de juego
puente.bsp Primer nivel del juego
puente_portada.bmp Imagen inicial justo antes de cargar el nivel 'puente'
puente_cargando.bmp Imagen mientras se está cargando el nivel 'puente'
puente_fondo.mod Fondo musical mientras se juega al nivel 'puente'
carretera.bsp Segundo nivel del juego
carretera_portada.bmp Imagen inicial justo antes de cargar el nivel 'carretera'
carretera_cargando.bmp Imagen mientras se está cargando el nivel 'carretera'
carretera_fondo.s3m Fondo musical mientras se juega al nivel 'carretera'
escape.bsp Tercer nivel del juego
escape_portada.bmp Imagen inicial justo antes de cargar el nivel 'escape'
escape_cargando.bmp Imagen mientras se está cargando el nivel 'escape'
escape_fondo.wav Fondo musical mientras se juega al nivel 'escape'

 Indica que es un fichero de imagen. Sólo se permiten en formato .BMP

 Indica que es un fichero de sonido en cualquiera de los siguientes formatos: mp3, wav, mod, s3m, xm, it, mtm, mo3, mp1, mp2, ogg

 Indica que es un fichero de personaje en formato .ACT

 Indica que es un fichero de nivel en formato .BSP de World Editor

 Indica que es un fichero genérico para todo el juego

 Indica que es un fichero particular para un nivel en concreto


 
  • Los ficheros .BMP tienen que estar en la carpeta 'bmp' del entorno de desarrollo de EntidaD 3D, por defecto en'C:\entidad_3d\bmp\', menos el fichero 'PrimerNivel_creditos.bmp' que ha de estar en 'C:\entidad_3d\menu\bmp\'.
    • Los ficheros de sonido tienen que estar en la carpeta 'wav' del entorno de desarrollo de EntidaD 3D, por defecto en'C:\entidad_3d\wav\'.
      • Los ficheros .ACT tienen que estar en la carpeta 'actors' del entorno de desarrollo de EntidaD 3D, por defecto en'C:\entidad_3d\actors\'.
         

       

       

       

      3º- Ficheros 3D .act:
       
      Voy a comenzar explicando el formato de los ficheros de modelos 3D que utiliza 'Entidad 3D', ya que son la base fundamental para definir objetos y personajes en nuestro juego.
       
      Para representar los objetos 3D en nuestro juego, 'Entidad 3D' utiliza los ficheros con extensión .act tanto para objetos como para personajes o enemigos. Este tipo de formato de modelos 3D no es un formato muy extendido y se usa particularmente en programas basados en el motor 3D 'Genesis3D', como es el caso de 'Entidad 3D' o del programa 'Reality Factory'.
      Existe un conversor de varios formatos 3D al formato .act llamado 'MilkShape 3D', pero es un programa Shareware que no se incluye en 'Entidad 3D'. Esta utilidad puede trabajar con modelos de juegos como Half-Life, Quake 2, Quake III, Unreal, Serious Sam, Max Payne, The Sims, etc...
      Utilizando el tutorial para convertir personajes de Half-Life a personajes de Entidad 3D que podrás encontrar en la página de 'Entidad 3D', podrás convertir diversos personajes gratuitos del formato Half-Life (ficheros .mdl) al formato .act con excelentes resultados.
       
      Pero si no quieres utilizar 'MilkShape 3D', tendrás que utilizar los ficheros .act que puedas encontrar en Internet o los del propio 'Entidad 3D'. De todas formas, en la web de 'Entidad 3D' podrás encontrar periódicamente diversos modelos .act que yo mismo iré convirtiendo de modelos de 'Half-Life'.
       
      En 'Entidad 3D' estos ficheros .act los podrás encontrar en dos lugares: en la carpeta 'Actors' y en la carpeta 'Objects'. Puedes visualizarlos con la utilidad 'Actor Viewer' que se te instaló en tu sistema cuando instalaste 'Entidad 3D'.

       
      Los ficheros .act contienen básicamente el objeto o personaje 3D junto con una serie de animaciones predefinidas. Cada animación tiene su propio nombre, nombres que pueden variar entre un fichero .act y otro. Cada archivo .act puede tener un número variable de animaciones, incluso ninguna en el caso de un objeto estático. Así pues nos podemos encontrar con un fichero 'player1.act' con las siguientes animaciones:

      Animación 'Idle'


      Animación 'Shoot'


      Animación 'Run'
      En el caso de los .act utilizados para personajes en el juego de ejemplo 'Secta', la mayoría constan de 40 animaciones distintas, aunque eso no quiere decir que se utilicen todas en el juego.
      El nombre de las animaciones puede ser distinto en función del autor de los ficheros .act, para saber los nombres de las animaciones tendremos que utilizar 'Actor Viewer'.
      Una cosa MUY IMPORTANTE en 'Entidad 3D' es que al menos 9 de esos nombres de animaciones han de tener un nombre exacto, ya que 'Entidad 3D' los busca de forma automática para animar al personaje protagonista y a los enemigos. Si 'Entidad 3D' no encuentra estos nombres exactos, el programa se interrumpirá de forma brusca.
      Estos nombres y su función han de ser los siguientes:
       
      • 'Idle' para una posición estática del personaje.

        'Shoot' el personaje disparando.

        'Walk' el personaje andando.

        'Run' el personaje corriendo.

        'Die' el personaje muriendo.

        'Die_de_frente' el personaje muriendo de otra forma.

        'Die_rodilla' el personaje muriendo de otra forma.

        'Die_vueltas' el personaje muriendo de otra forma.

        'Hit' el personaje recibe un impacto.

         

        Estos nueve nombres de animaciones sólo son obligatorios para personajes protagonistas y para enemigos.

         

        Para el caso de los personajes secundarios sólo es obligatoria la animación 'Idle'.

         

        Para los objetos no es necesario ni siquiera que tenga alguna animación.

       

      4º- Objetos:
       
      Vamos a continuar este tutorial volviendo a retomar nuestro editor de niveles 'World Editor'.
       
      Seguro que con el tutorial de 'World editor' habrás creado un nivel con todos los ejemplos de ese tutorial, y lo más seguro es que te haya quedado una especie de escenario muy raro y pequeño, pero aún te resultará muy útil en este tutorial de 'Entidad 3D' para seguir experimentando toda clase de cosas antes de pasarlas a un escenario más grande que podría ser el del juego que quieras crear.
      Vamos entonces a darle un poco más de vida a ese escenario.
       
      Colocando objetos recogibles:
      En 'Entidad 3D' podremos colocar en nuestro escenario una serie de objetos que podrán ser recogidos por el jugador para engrosar un inventario de objetos que nosotros (como creadores del juego) podremos decidir su utilidad en el transcurso del juego.
      Estos objetos no tienen el mismo tratamiento que los que representan las armas, munición, energía y escudo, sino que son otros objetos independientes y de utilidad configurable. Cada objeto es en realidad un fichero .act igual que los que hemos utilizado para personajes o también para armas, munición, etc..., pero estos ficheros .act en lugar de estar en la carpeta 'Actors' tienen que estar en la carpeta 'Objects' y tienen que tener un nombre particular para su posterior control.
       
      Para cada objeto distinto debemos tener un .act preparado que será el objeto en 3D que represente ese objeto, en este caso no es necesario que el .act contenga animaciones. También debemos de ir pensando en asociarle un número a cada objeto distinto. Finalmente tenemos que tener preparada una imagen 2D de un tamaño de 32x32 que representará el objeto en el inventario del jugador.
      Como podrás ver dentro de la carpeta 'Objects', ya hay unos cuantos objetos que utiliza el juego de ejemplo, si quieres puedes copiarlos con otros nombres para utilizarlos en tus juegos, pero si cambias directamente los nombres de los ficheros, el juego de ejemplo dejará de funcionar. Si haces esto al menos deja el fichero '1_caja.act' ya que siempre lo necesita 'Entidad 3D'. Si borras '1_caja.act', tu juego ni siquiera comenzará.
       
      Vamos a ver como definir uno de estos objetos y donde colocamos la imagen 2D del mismo:
      Supongamos que queremos añadir el objeto 'Tarjeta' a nuestra aventura. Ya tenemos un fichero .act que es una tarjeta y también hemos dibujado una imagen de 32x32 de nuestra tarjeta:


      Imagen de 32x32


      tarjeta.act
      Ahora vamos a darle un número a este objeto, por ejemplo el 2, ya que el número 1 ya está ocupado por la caja (por eso se llama '1_caja.act') y que no podemos borrar. Renombramos el archivo .act de la tarjeta al nombre '2_tarjeta.act' y lo copiamos en la carpeta 'Objects' de 'Entidad 3D'.


      Fichero '2_tarjeta.act' en la carpeta 'Objects'

       
      Seguidamente utilizamos nuestro editor de imágenes preferido (tipo Gimp, Adobe Photoshop o parecido) y abrimos el fichero 'objetos_distintos.bmp' que encontraremos en la carpeta 'Bmp' de 'Entidad 3D'.
      Lo que contiene este fichero son todas las representaciones 2D de un tamaño de 32x32 de todos los objetos distintos que tengamos. A medida que los vayamos diseñando los tenemos que ir 'pegando' en esta imagen BMP de arriba a abajo, pegados a la izquierda y sin separación entre ellos. Por lo tanto el primer cuadro de 32x32 en la parte superior izquierda pertenecerá al objeto número 1, que es precisamente la caja (1_caja.act) y para el objeto número 2, que es el objeto que estamos preparando, pondríamos nuestra imagen de 32x32 justo debajo.


      Fichero 'objetos_distintos.bmp' en la carpeta 'Bmp'

       
      Si queremos que este fichero de objetos sea particular de un juego, tendremos que crear un fichero igual que el anterior pero con el nombre PrimerNivel_objetos_distintos.bmp, siendo 'PrimerNivel' en nombre del primer nivel de nuestro juego. Si hacemos esto siempre tendremos que trabajar sobre este fichero para que los imágenes de los objetos aparezcan en ese juego en concreto.
       
      De esta forma, mediante el nombre del fichero .act y el orden de imágenes en el fichero 'objetos_distintos.bmp', 'Entidad 3D' es capaz de relacionar un objeto .act con su imagen para el inventario, de manera que nosotros no tengamos que hacer nada más.
       
      Ahora vamos a ver como situamos, en nuestro escenario, uno de estos objetos que hemos definido para que el jugador pueda recogerlo con sólo acercarse a él:
       
      Vamos a nuestro escenario en 'World Editor' y añadimos una entidad 'ItemObject' en la posición que queremos que aparezca nuestra tarjeta. Una vez colocada, edita las propiedades de esta entidad y rellena el parámetro 'ActorFile' con '2_tarjeta.act' (sin las comillas). También puedes rellenar el parámetro 'ObjectName' con un nombre para este objeto, que podría ser 'Tarjeta' o 'La llave' o lo que quieras, este nombre sólo lo utiliza 'Entidad 3D' de forma automática para ponerlo en pantalla cuando estemos recogiendo el objeto.
      Sólo nos queda compilar el nivel, ver si nuestra tarjeta aparece y probar a ver si nuestro personaje recoge el objeto.


      La tarjeta en el escenario
      Una vez recogida, la tarjeta aparece en el inventario del jugador

       
      Si queremos podemos añadir en nuestro escenario múltiples objetos iguales, procediendo de la misma forma: añadir entidad 'ItemObject' con 'ActorFile'= 2_tarjeta.act (en el caso de nuestra tarjeta). Al añadir un segundo objeto igual, no es necesario volver a rellenar el parámetro 'ObjectName'.
       
      Pues supongo que ya te podrás imaginar como definir un tercer objeto para nuestro sistema ......

       
      Colocando objetos no recogibles:
      En ocasiones nos puede interesar colocar un objeto representado también por un fichero .act, pero que simplemente esté ahí y que no sea un objeto que el jugador lo pueda recoger.
      Pues esto es tan simple como añadir una entidad 'ItemObject' con su 'ActorFile' con el nombre del fichero .act que lo representa, sin números delante ni nada, el nombre tal cual. Este fichero .act también ha de estar en la carpeta 'Objects'.





      » Consulta la sección de la entidad 'ItemObject' para conocer a fondo todos sus parámetros.
      » Para hacer aparecer/desaparecer el inventario de objetos en pantalla, el 
        jugador debe usar la tecla i
       
       
      Tocando resortes:
      Sin abandonar el editor 'World Editor' vamos a ver como podemos hacer para que una de las puertas que hayamos creado (porque se supone que ya sabemos crear puertas) sólo se abra en ciertas condiciones y no como hasta ahora hemos visto en el tutorial de 'World Editor' que se abrían siempre que alguien se acercaba a ellas, incluido los enemigos.
       
      Para comenzar con algo sencillo vamos a hacer que la puerta se abra siempre y cuando el personaje haya tocado cierto punto del escenario previamente, punto que no tenemos porque poner al lado de la puerta, sino que puede estar en la otra punta del escenario, de la habitación o donde quieras.
      El objetivo no es que se abra la puerta al tocar este punto, sino que una vez tocado este punto, cuando el jugador se acerque a la puerta, esta se abrirá siempre.
      Para comenzar podemos crear alguna especie de resorte que representará nuestro punto, si quieres puedes hacer un pequeño cubo que sobresalga de una pared sin animación y sin más complicaciones.
       
       
       
      Ahora vamos a crear nuestro primer sistema de comandos de 'Entidad 3D' para controlar si el jugador ha tocado o no el resorte y en función de eso, que la puerta se abra o no. Para ello añadimos la entidad 'Command' y la colocaremos en la posición donde hemos colocado el resorte. Si editas las propiedades de esta entidad 'Command' (seguramente se llamará 'Command1') verás un parámetro llamado 'CommandsFile' que rellenaremos con un nombre cualquiera, pero que tenga algún sentido con lo que estamos haciendo, por ejemplo 'tocaresorte.ini' (sin las comillas). Este nombre hará referencia a un fichero llamado 'tocaresorte.ini' que construiremos nosotros mismos con algún editor de textos ANSI tipo Notepad o similar.
       
       
       
       
       
       
       
      Este fichero con extensión .ini lo crearemos en la carpeta 'Comandos' de 'Entidad 3D'.
       
       
       
       
      ¿ Que hay que poner dentro de este fichero ?... pues todos los comandos y condiciones que queramos que se procesen cuando el jugador alcance la posición donde hemos colocado la entidad 'Command1'. Existen numerosos comandos que se describen con detalle más adelante, pero de momento vamos a centrarnos sólo en los que nos interesan para lo que queremos realizar.
      Pues bien, editamos nuestro aún vacío fichero 'tocaresorte.ini' y lo rellenamos con lo siguiente:
       
      ACCI PONE tocoresorte=1
       
      ... y salvamos el fichero. Así de simple. En esta ocasión estamos utilizando el comando 'PONE' para establecer la variable 'tocoresorte' (nombre que nos hemos inventado) a 1 ya que en 'Entidad 3D' cualquier variable está 0 al comenzar el juego. El 'ACCI' siempre hay que ponerlo antes de un comando.
      De esta forma cuando el jugador alcance la posición de nuestra entidad 'Command1' se procesará el fichero de comandos 'tocaresorte.ini' con lo que llevará siempre a ponerse a 1 la variable 'tocoresorte'.
      ¿Y ahora cómo hacemos para que la puerta se abra si el jugador se acerca a ella pero siempre y cuando la variable 'tocoresorte' valga 1?. Pues no nos queda más remedio que hacer otro fichero .ini y asociarlo a la entidad 'Door' que tengamos para esta puerta en cuestión. Editamos esta entidad, que en mi ejemplo se llama 'Door2', y en la casilla del parámetro llamado 'CommandsFile' ponemos por ejemplo 'abre_puerta2.ini'.
       
       
       
       
       
       
       
      Ahora sólo nos queda crear un fichero llamado 'abre_puerta2.ini' en la carpeta 'Comandos' de 'Entidad 3D'. Dentro de este fichero pondremos lo siguiente:
       
      IF COND tocoresorte=1
      ACCI TEXT Abriendo puerta
      ELSE
      ACCI TEXT No has tocado el resorte
      ENDIF
       
      Como ves he comenzado estableciendo una condición con 'IF COND tocoresorte=1', por lo que todo lo que vaya detrás de esta linea y hasta el indicativo 'ENDIF' afecta a esta condición. En este caso también he utilizado el indicativo 'ELSE' para presentar un mensaje en el caso de que el jugador no haya tocado el resorte.
      O sea, que si se cumple la condición se procesarán los comandos entre el 'IF COND' y el 'ELSE', mientras que si no se cumple la condición se procesarán los comandos entre 'ELSE' y 'ENDIF'.
      Los comandos 'TEXT' que he puesto son para poner un mensaje en la parte superior de la pantalla. No te olvides nunca de poner un 'ACCI' delante de cada comando.
      En nuestro ejemplo la condición se cumplirá siempre y cuando la variable 'tocoresorte' valga 1, además al ser la primera condición de esta fichero .ini, 'Entidad 3D' también lo tomará para decidir abrir la puerta o no.
      En resumen, cuando el jugador se acerque a la puerta y la variable 'tocoresorte' valga 1, se abrirá la puerta al mismo tiempo que se verá el mensaje 'Abriendo puerta'. Pero cuando el jugador se acerque a la puerta y la variable 'tocoresorte' no valga 1, pues se presentará el mensaje 'No has tocado el resorte' y la puerta no se abrirá.
       
      Quizás te asalte una cuestión: ¿ Como afectan estos sistemas de comandos a los enemigos ?, ¿ Podría un enemigo llegar a tocar el resorte y luego dirigirse a la puerta y abrirla ?. Pues no, el caso es que los comandos de 'Entidad 3D' no tienen efecto si un enemigo alcanza la posición de una entidad con comandos asociados.
      Ya, pero y si el jugador toca el resorte (por lo tanto la variable 'tocoresorte' ya vale 1) y después un enemigo se acerca a la puerta... ¿ la abriría ? ... pues tampoco. La única forma que tendría un enemigo de abrir una puerta es que esa puerta no tenga ningún fichero de comandos .ini asociado.
       
      El funcionamiento de los ascensores o plataformas móviles (entidades 'MovigPlat') es exactamente igual que el de las puertas, sólo que toman el resultado de la primera condición del fichero .ini asociado para mover la plataforma o no.
       
       
       
      Utilizando llaves:
      Ahora vamos a ver como podemos hacer para que una puerta sólo se abra si el jugador posee la llave correcta.
       
      Para ello vamos a utilizar el objeto tarjeta, que hemos definido en el anterior capítulo de este tutorial, como llave de acceso a una puerta.
      También vamos a utilizar la misma puerta que hemos utilizado con el ejemplo del resorte, ya que lo que vamos a hacer es simplemente cambiar los comandos que tenemos en el fichero 'abre_puerta2.ini' que como recordarás esta asociado a la entidad 'Door' de esta puerta.
      Abrimos el fichero 'abre_puerta2.ini' con un editor, borramos todo lo que hay e introducimos lo siguiente:
       
      IF COND 2_tarjeta.act=1
      ACCI TEXT Abriendo puerta
      ELSE
      ACCI TEXT No tienes la tarjeta
      ENDIF
       
      Con la condición '2_tarjeta.act=1' lo que estamos preguntando es si el jugador lleva en su inventario de objetos un objeto llamado '2_tarjeta.act', si lleva uno, pues la condición se cumple, si no, pues no se cumple.
      Pero piensa una cosa, si el jugador lleva más de una de estas tarjetas, la condición no se cumplirá y la puerta no se abrirá, para solucionar esto tendrías que cambiar la linea del 'IF' anterior por esta:
       
      IF COND 2_tarjeta.act>0
       
       
      Diversas variaciones:
      A continuación vamos a ver diferentes variaciones de lo que hemos visto en este capítulo para que te hagas una idea de la cantidad de combinaciones que puedes realizar con 'Entidad 3D' si utilizas de forma correcta e ingeniosa diversos comandos y condiciones.
       
      La puerta sólo se abre con la llave pero si previamente se ha tocado el resorte:
      IF COND tocoresorte=1 COND 2_tarjeta.act=1
      ACCI TEXT Abriendo puerta
      ELSE
      ACCI TEXT Acceso denegado
      ENDIF
       
      Igual a lo anterior pero además quiero hacer sonar un fichero de audio .MP3 cuando no se abra la puerta:
      IF COND tocoresorte=1 COND 2_tarjeta.act=1
      ACCI TEXT Abriendo puerta
      ELSE
      ACCI TEXT Acceso denegado
      ACCI SONI alarma
      ENDIF
      Para este ejemplo has de tener en la carpeta 'Wav' de 'Entidad 3D' un fichero de sonido llamado 'alarma.mp3'.
      De hecho si tienes un fichero llamado 'alarma.wav' también funcionará, o si es 'alarma.mod' también, ya que si te has fijado el comando 'SONI' no necesita la extensión del fichero de sonido, 'Entidad 3D' busca cualquier fichero de sonido 'alarma.' en la carpeta 'Wav' y lo hace sonar.
       
      La puerta sólo se abre con una llave de un solo uso, cuando se abra la puerta, la llave ha de desaparecer del inventario del jugador:
      IF COND 5_llave.act=1
      ACCI TEXT Llave correcta
      ACCI QINV 5_llave.act
      ELSE
      ACCI TEXT No llevas la llave
      ENDIF
      Si el jugador lleva por ejemplo 5 llaves, sólo le desaparecerá una cada vez que abra la puerta.
       
      Un ascensor sólo se mueve si el jugador lleva tres bolas de energía, bolas que han de desaparecer del inventario del jugador al utilizar el ascensor:
      IF COND 4_bola.act=3
      ACCI TEXT Subiendo planta
      ACCI QTIN 4_bola.act
      ELSE
      ACCI TEXT No tienes las 3 bolas
      ENDIF
      Si se abre la puerta, al jugador le desaparecen todas las bolas que pueda llevar en el inventario.
       
      El tema del ascensor y las bolas quiero complicarlo más diciendo al jugador la cantidad de bolas que le faltan en el caso de que no tenga las tres bolas:
      IF COND 4_bola.act=3
      ACCI TEXT Subiendo planta
      ACCI QTIN 4_bola.act
      ELSE
      IF COND 4_bola.act=0
      ACCI TEXT Te faltan 3 bolas
      ENDIF
      IF COND 4_bola.act=1
      ACCI TEXT Te faltan 2 bolas
      ENDIF
      IF COND 4_bola.act=2
      ACCI TEXT Solo te falta una bola
      ENDIF
      ENDIF
       
      Quiero realizar dos condiciones distintas, además de controlar lo de la puerta con la tarjeta, quiero advertir al jugador de la necesidad de un objeto en la habitación que quiere entrar:
      IF COND 2_tarjeta.act=1
      ACCI TEXT Abriendo puerta
      ELSE
      ACCI TEXT No tienes la tarjeta roja
      ENDIF
       
      IF COND 7_cristal.act=0
      ACCI TEXT Sin el cristal no podrás sobrevivir
      ENDIF
      Estas dos condiciones 'IF COND', y las que quieras, pueden ir en el mismo fichero .ini sin problemas.
      6º- Personajes:
       
      Establecer el personaje protagonista:
      Se trata del personaje que controla el jugador a lo largo del juego. Para establecer que fichero .act es el que representará al protagonista, sólo es necesario copiar ese fichero .act en la carpeta 'Actors' de 'Entidad 3D' pero cambiándole el nombre a:
       
      PrimerNivel_player1.act.
       
      'PrimerNivel' será el nombre del primer nivel de que consta tu juego.
       
      Para el personaje alternativo el nombre del fichero .act tiene que ser:
       
      PrimerNivel_player2.act.
       
      Estos ficheros de personajes serán los que se utilizarán durante todo el juego, independientemente del nivel que esté cargado.

       
      Personajes secundarios:
      Son personajes que podremos añadir a nuestro escenario y cuya función tendremos que definir nosotros según el desarrollo de nuestro juego. Estos personajes no se desplazan por el escenario, aunque en el sitio que estén pueden realizar cualquier animación.
      Cada uno de estos personajes también lo define un archivo .act que ha de estar en la carpeta 'Actors' de 'Entidad 3D'.
      Vamos a ver como podemos poner uno de estos personajes en nuestro escenario.
      Nos dirigimos a nuestro programa 'World Editor' y añadimos a nuestro escenario una entidad llamada 'SpecificActor' posicionándola en el lugar que queremos que aparezca el personaje. Ten en cuenta que la cruz que muevas de esta entidad representa los pies del personaje. En la casilla del parámetro 'ActorFile' ponemos en nombre del fichero .act del personaje que deseamos poner, por ejemplo 'Mayork.act'.
      Compilamos nuestro escenario y comprobamos el resultado.
      La entidad 'SpecificActor' podemos utilizarla para añadir personajes que le digan algo al jugador (por texto o mediante un fichero de sonido), que le entreguen o le quiten algo al jugador, que estén bloqueando una salida o simplemente para dar ambiente al lugar.



      Consulta la sección de la entidad 'SpecificActor' para conocer a fondo todos sus parámetros.
       
       
      7º- Enemigos:
       
      Añadiendo un enemigo:
      En 'Entidad 3D' podemos añadir una serie de personajes (definidos por ficheros .act) que el sistema se encarga de controlar automáticamente y que harán la vida imposible al jugador, al persegirle y dispararle a la mínima oportunidad que tengan al jugador a tiro.
      Para añadir uno de estos enemigos lo único que tenemos que hacer es añadir una entidad 'BotActorStart' en la posición que queramos que aparezca este enemigo. Ten en cuenta que la cruz que muevas de esta entidad representa los pies de este enemigo.
      Compilamos y comprobamos si nuestro enemigo se lanza hacia nosotros al vernos.
      Aquí, como ves, no hemos especificado el nombre del fichero .act que representa el enemigo. Consulta la sección de la entidad'BotActorStart' para conocer a fondo todos sus parámetros y ver como se establecen los .act que definen a los enemigos.
       
       World Editor


       
      C:\ENTIDAD_3D\tutorial_world_editor\index.html
      ¿ Donde se encuentra ?: C:\ENTIDAD_3D\gedit.exe
       
      ¿ Para que sirve ?: Lo utilizaremos para crear los escenarios para nuestros juegos o para modificar escenarios que ya puedan existir.
       
      ¿ Como funciona ?: Junto a la distribución de Entidad 3D se suministra un tutorial completo de World Editor en 
      formato HTML, utiliza tu navegador de Internet para visualizar este tutorial. Por defecto tienes que tenerlo en: .
       
       

       World Editor 2.0 Beta 2

       
       
       
      ¿ Donde se encuentra ?: C:\ENTIDAD_3D\WrldEdit.exe
       
      ¿ Para que sirve ?:
      De hecho este editor sirve exactamente para lo mismo que World Editor 1.0, para crear los escenarios, pero esta versión es más actual y puede ser, en algunos casos, más compatible que la anterior. También presenta unas ventanas de edición con otra disposición y con otros colores.
      Los ficheros .3DT de niveles creados con un editor son compatibles con el otro.
       
      ¿ Como funciona ?:
      Su funcionamiento es muy similar a la versión 1.0, aunque existen las siguientes diferencias en los controles:
      Para añadir entidades o brushes: tecla 'Insert' en lugar de 'Enter'.
      Para mover el mapa: simultáneamente, tecla 'Control' + botón izquierdo del ratón + mover ratón.
      Para hacer zoom del mapa: simultáneamente, tecla 'Control' + botón derecho del ratón + mover ratón adelante y atrás.
      En vista 3D para moverse: simultáneamente, tecla 'Control' + botón izquierdo del ratón + mover ratón.
      En vista 3D para rotar cámara: simultáneamente, tecla 'Control' + botón derecho del ratón + mover ratón.
       
      Algunos botones y pestañas han cambiado de lugar pero el funcionamiento es el mismo.
      Para trabajar con este editor es conveniente tener una resolución de escritorio de al menos 1024x768, de lo contrarío en la pestaña de texturas no podrás ver las propias texturas, entre otras cosas.
       

       

       

       Texture Packer
       
       
       
       
       
       
      ¿ Donde se encuentra ?: C:\ENTIDAD_3D\tpack.exe
       
      ¿ Para que sirve ?: Se utiliza para añadir o eliminar texturas de las librerías de texturas que utiliza World Editor. Estas librerías son ficheros .txl que podrás encontrar en la carpeta 'levels' de Entidad 3D.
       
      ¿ Como funciona ?: Podrás encontrar información del funcionamiento de este programa en la sección 'Añadiendo nuevas texturas' del tutorial de World Editor incluido con Entidad 3D, este tutorial está en formato HTML, utiliza tu navegador de Internet para visualizar este tutorial. Por defecto tienes que tenerlo en: C:\ENTIDAD_3D\tutorial_world_editor\index.html.
       
      También puedes consultar el tutorial llamado 'Tutorial para crear fondos de exteriores para Entidad 3D' que se encuentra en la web de Entidad 3D, donde se explica como crear fondos para tu juego utilizando 6 texturas añadidas con Texture Packer a tu librería de texturas.
       
       Actor Viewer


       
      ¿ Donde se encuentra ?: C:\ENTIDAD_3D\ActView.exe
       
      ¿ Para que sirve ?: Es una utilidad que te permite visualizar los modelos 3D en formato .act que tenemos tanto en la carpeta 'actors' como en la carpeta 'objects' de Entidad 3D.
      Sólo sirve para poder ver los objetos o personajes, no para modificarlos.
       
      ¿ Como funciona ?: Sólo tienes que ejecutar esta utilidad, seleccionar el 'driver' de pantalla a utilizar (preferiblemente D3D) y abrir cualquier fichero .act con la opción 'File/Open'. Una ver cargado el modelo dispones de diversos controles para poder girarlo, hacerle zoom, moverlo o ver sus animaciones.
       
       Actor Studio
       
       

      ¿ Donde se encuentra ?: C:\ENTIDAD_3D\AStudio.exe
       
      ¿ Para que sirve ?: Pues para crear modelos 3D en formato .act (que es el utilizado por Entidad 3D) a partir de ficheros de polígonos .BDY (creados con el programa MilkShape 3D) y ficheros de animaciones .MOT.
       
      ¿ Como funciona ?: Consulta el tutorial llamado 'Tutorial para convertir personajes de Half-Life a personajes de Entidad 3D' que podrás encontrar en la página de Entidad 3D. Aquí se hace un uso práctico de Actor Studio para convertir personajes en formato del juego Half Life al formato .act.
       
       
       Entidad 3D
       
       
       
       
       
      ¿ Donde se encuentra ?: C:\ENTIDAD_3D\Entidad3D.exe
       
      ¿ Para que sirve ?: Sirve para correr los niveles que componen nuestro juego, estos niveles los habremos desarrollado y compilado con World Editor para crear un fichero .BSP por nivel, son estos ficheros .BSP los que procesa Entidad 3D para finalmente poder jugar a los juegos en pantalla completa.
       
      ¿ Como funciona ?: Este programa no lo ejecutes tal cual, a menos que uses el fichero autonivel.ini, porque no te funcionará, es necesario utilizar ficheros .bat o crear accesos directos donde se indique el nivel a cargar entre otros parámetros. Consulta la sección 'Preparando un acceso directo' de este mismo manual para saber como lanzar adecuadamente los niveles.
      'Entidad3d.exe' también lo llama World Editor cuando utilizamos la opción de 'Preview' en la ventana de compilación de nuestro nivel, ya que una vez World Editor acaba de compilar el nivel, lo corre a pantalla completa llamando a 'Entidad3D.exe'.

 

Espero que te sirva ;)