Tutorial para la conversión de mapas de Quake (.MAP) a mapas de World Editor (.3DT):



Introducción:

Este tutorial pretende hacer un recorrido práctico que te mostrará los distintos pasos y tareas relacionadas con la edición de niveles diseñados para el juego Quake para que podamos utilizarlos en nuestros propios juegos creados con Entidad 3D.

Este proceso en si resulta en muchos casos una verdadera aventura de la que se puede disfrutar mucho sin llevar a cabo complicados procesos. Aunque estos procesos son un poco laboriosos, no son difíciles y nos proporcionarán un escenario con arquitecturas sorprendentes y variadas sin saber prácticamente nada a nivel de creación de escenarios en 3D.


El tutorial sigue todo el proceso que realicé para un escenario que me descargué de Internet y que lleva el nombre de 'rampas', desarrollado por Jim Lowell.

Ningún escenario es igual a otro por lo que el proceso no será siempre exactamente igual al del ejemplo, pero te ofrecerá una visión detallada de la totalidad de procesos a los que deberás enfrentarte siempre a la hora de realizar cualquier conversión de este tipo de mapas para Entidad 3D.


El orden de los procesos de este tutorial está pensado para realizar el mínimo trabajo posible para que en el caso de que nos demos cuenta de que el mapa no nos sirve porque no nos gusta o porque resulta incompatible con World Editor, no hayamos trabajado en vano hasta ese punto.


El tutorial no entra en detalles exactos sobre el manejo del programa World Editor que será necesario para editar el nivel de Quake, por lo que antes de continuar con este tutorial es completamente imprescindible que al menos completes el tutorial de World Editor.



¿ Qué necesitamos ?:

Software:

- Programa Texture Packer.

- Programa World Editor.

- Programa Entidad 3D.

Estos tres programas están disponibles si te has instalado correctamente Entidad 3D.


Otros ficheros:

- Fichero en formato .MAP del mapa de Quake que queremos convertir.


Conocimientos:

- Saber utilizar World Editor junto a Entidad 3D.



¿ Qué son los mapas de Quake ?:

Quake es un juego comercial desarrollado por Id Software que apareció en el año 1996 con muchísimo éxito. Desde entonces han sido muchos los aficionados que han desarrollado mapas para este juego, ofreciéndolos en Internet para todo aquel que los quiera utilizar.


El formato de fichero que nos interesa a nosotros es el que tiene la extensión .MAP, que es el más extendido a la hora de editar escenarios para Quake, aunque podremos encontrar ficheros de este tipo que no nos servirán o que para adaptarlos tendríamos que editar infinidad de parámetros.


Existen diversas herramientas para convertir otros tipos de escenarios a niveles .MAP de Quake, como conversores de mapas de Quake II, Quake III o incluso un programa que convierte un fichero 2D en formato .BMP a un escenario 3D en formato .MAP.

En tus manos estará experimentar con estos programas, aunque lo recomendable y con los que se obtienen mejores resultados son con los mapas .MAP que se anuncian como compatibles con Quake I.


Estos ficheros si bien son cargables desde World Editor, una vez cargados requieren de ciertos cambios para poderlos utilizar con Entidad 3D y para que tengan un aspecto más decente.



¿ Qué tipo de información contienen los mapas de Quake ?:

Básicamente contienen cinco tipos de información:

1. Geometría del nivel (forma de paredes, techos, suelos, pilares, bloques, escaleras, rampas, etc...).

2. Nombres de las texturas que se aplican a todos los elementos de la geometría anterior.

3. Nombre de un fichero que contiene las texturas que utiliza este nivel.

4. Nombres de entidades al estilo de World Editor como luces (lights), puertas (func_door), objetos (items), etc..

5. Conjunto de geometrías agrupadas bajo un nombre.


Lo del primer punto prácticamente es 100% compatible al cargarlo en World Editor, aunque si queremos personalizar un poco el nivel tendremos que modificar algunos bloques.


El segundo punto es información que en principio no tocaremos ya que esos nombres establecen que texturas van aplicadas en cada sitio.


El tercer punto hace referencia a un fichero .WAD de texturas que no se suele suministrar junto al fichero .MAP, por lo que de momento nos quedamos sin texturas.


La única información que conservaremos del cuarto punto, serán las entidades 'light'.


La información del quinto punto hace referencia a nombres de grupos equivalentes a los 'models' de World Editor. Nos serán bastante útiles, ya que estos grupos definen, por ejemplo, que bloques son puertas o ascensores en el nivel.



Preparación de un fichero de texturas:

A continuación vamos a crear un fichero .txl de texturas para el nivel de Quake que cargaremos posteriormente, ya que no disponemos de las texturas originales que se aplicaban a este nivel.


Para comenzar crearemos un fichero de texturas con una sola textura, para ello nos tenemos que hacer con un fichero .BMP que sea una textura válida para World Editor. Una manera de conseguir texturas en formato .BMP es extraerlas del fichero principal de texturas de Entidad 3D llamado 'texturas.txl'. Para ello hacemos lo siguiente:


- Abriremos nuestro programa 'Texture Packer' y cargaremos el fichero 'texturas.txl' que encontraremos dentro de la carpeta 'levels':


- Seleccionamos cualquier textura, en nuestro ejemplo 'bkrock' y utilizamos la opción de la barra de opciones 'Options/Extract selected'.


- Nos habrá aparecido el fichero 'bkrock.bmp' en la carpeta 'levels'.


- Cerramos el programa 'Texture Packer'.


- Lo volvemos a abrir, con lo que conseguiremos un fichero de texturas vacío.


- Sin cerrar 'Texture Packer', desde nuestro 'Explorador de Windows' arrastramos el fichero 'bkrock.bmp' que tenemos en la carpeta 'levels' hacia 'Texture Packer'. Ahora tendremos la textura 'bkrock.bmp' dentro de Texture Packer.


- En 'Texture Packer' salvamos este fichero de texturas con el nombre del nivel de Quake que tenemos preparado, en nuestro ejemplo 'rampas'. No olvides salvarlo dentro de la carpeta 'levels'.


- Podemos borrar el fichero 'bkrock.bmp' que tenemos en la carpeta levels.



Cargando el mapa de Quake:

Ahora procedemos a cargar el fichero .MAP de Quake que tenemos preparado para ver el aspecto que presenta:


- Copiamos nuestro fichero .MAP en la carpeta 'levels', en nuestro caso es el fichero 'rampas.map'.


- Abrimos el programa 'World Editor', nos aparecerán las cuatro típicas ventanas vacías para comenzar un nuevo proyecto.


- Utilizamos la opción de la barra de opciones 'File/Open' y en tipos de archivo seleccionamos (MAP files), nos tendrá que aparecer el archivo .MAP, en nuestro caso cargamos 'rampas.map'.


- En este punto, y utilizando las cuatro vistas, podemos echar un vistazo a la forma que tiene el nivel para ver si nos interesa o no.


- También podrás ver si se ha cargado correctamente. Si no ha aparecido nada en las cuatro ventanas es mala señal, el mapa no nos sirve. En algún caso podrás observar que hay algunas aristas de bloques que salen descontroladas fuera del mapa, cosa esta bastante difícil de solucionar por lo que también daríamos por descartado el mapa.

No le hagas mucho caso a la ventana que muestra el nivel en 3D con texturas, seguramente te aparecerá sin texturizar y multicolor.



El siguiente punto sólo es necesario si el fichero .MAP que has cargado viene del editor Valve Hammer Editor (editor de niveles del juego Half-Life. Editor anteriormente llamado Worldcraft), ya que tendrás que cambiar las propiedades de todas las caras del mapa, debido a que estos mapas provenientes de Worldcraft dejan estas propiedades muy alteradas.


Para realizar esto de una manera sencilla, basta con seleccionar todos los 'brushes' (opción Edit/Select all), pasar al modo de 'faces' (opción Mode/Face adjustment):

... y modificar las propiedades del cuadro 'Face Attributes' estableciendo estos valores:

De esta forma habremos arreglado los atributos de todas las caras de una sola vez.


A continuación vamos a asignarle a este mapa el fichero de texturas que hemos preparado anteriormente. Utilizamos la opción 'Options/Level Options' de World Editor y en la caja 'Texture Library' dejamos toda la ruta que haya pero al final en lugar de 'texturas.txl' lo sustituimos por 'rampas.txl' en nuestro ejemplo.


Ya estamos en posición de hacer una primera compilación para ver como responde el mapa. Utilizamos la opción normal de compilación pero con la opción 'Preview' sin marcar, de momento sólo queremos compilar sin entrar en el nivel.


Si nos aparece un error 'Error compiling level' y en los mensajes de la consola aparece ***LEAK***, la verdad es que lo tenemos muy difícil para localizar los bloques que no están unidos y provocan el error, yo daría el nivel por perdido.


Si por el contrario nos aparece el mensaje 'Level compile completed successfully' estaremos en el buen camino.


Llegados a este punto salvaremos el nivel en formato .3DT de World Editor utilizando la opción 'Save as', en nuestro ejemplo lo salvamos con el nombre 'rampas.3dt'. A partir de aquí siempre cargaremos este fichero para trabajar en el mapa.


Salimos de 'World Editor'.


Sólo comentarte que el fichero .MAP de Quake (en nuestro ejemplo 'rampas.map') que tenemos en la carpeta 'levels' ya no es el fichero original que copiemos, sino un fichero temporal que genera World Editor al realizar la compilación. Si quieres volver a cargar tu .MAP de Quake tendrás que volver a copiarlo en la carpeta 'levels' sobreescribiendo el fichero .MAP que ya exista.



Texturas provisionales:

Una vez ya tenemos claro que el mapa que hemos cargado nos interesa y queremos arreglarlo, procederemos a ampliar nuestro fichero de texturas, 'rampas.txl' en nuestro ejemplo.


- Primero necesitamos saber que nombres de texturas están aplicadas en el nivel. Para ello cargaremos en World Editor nuestro nivel ya en formato .3DT, 'rampas.3dt' en nuestro ejemplo.


- Al cargar el nivel nos aparecerá este mensaje 'Some Entities or Brushes ...':


- De momento le daremos a 'Aceptar'.


- Compilamos el nivel con la opción 'Preview' aún desactivada.


- Una vez finalizada la compilación nos fijamos en el contenido de la pestaña 'Console', aquí nos relacionará los nombres de texturas que es incapaz de encontrar 'World Editor' dentro del fichero de texturas, 'rampas.txl' en el caso de nuestro ejemplo.

Estos nombres de texturas los podrás localizar en cada línea que indica 'Could not find texture...' en la ventana 'Console'. Toma nota de todos esos nombres teniendo en cuenta que algunos podrán aparecer repetidos, con sólo apuntarlos una vez es suficiente. En nuestro ejemplo aparecen 15 nombres distintos de texturas que no encuentra.


- Cerramos el programa World Editor.


- Ahora la cuestión es realizar lo mismo que hicimos al crear el fichero de texturas con una sola textura, pero en este caso lo haremos con los nombres de texturas que hemos apuntado.


- Abrimos el programa 'Texture Packer', cargamos el fichero de texturas 'texturas.txl' y extraemos (para el caso del ejemplo) 15 texturas cualquiera, pero que sean distintas.


- Una vez tenemos los ficheros .BMP de las texturas que acabamos de extraer (recuerda que estarán en la carpeta 'levels'), les cambiamos el nombre a los 15 ficheros con los nombres de textura que hemos apuntado. El resultado han de ser 15 ficheros .bmp con los nombres correctos de las texturas que utiliza el nivel.


- En 'Texture Packer' abrimos nuestro fichero de texturas 'rampas.txl' que ahora contiene una sola textura, y procedemos a arrastrar (podemos arrastrar todos a la vez) los 15 ficheros .bmp que tenemos preparados hacia 'Texture Packer', tendrían que aparecer las 15 nuevas texturas en 'Texture Packer'.


- Salvamos nuestro fichero de texturas 'rampas.txl'.


- Cerramos el programa 'Texture Packer'.



Dentro del nivel:

- Abrimos el programa 'World Editor' y volvemos a cargar nuestro nivel, 'rampas.3dt' en nuestro ejemplo.


- Nos volverá a aparecer el mensaje 'Some Entities or Brushes ....' al que responderemos pulsando 'Aceptar'.


- Si activamos 'Texture View' para la vista 3D (arriba a la izquierda) podremos apreciar que ahora no se ve multicoloreada sino que ya tiene aplicadas las 15 texturas provisionales que hemos añadido y además cada una está correctamente aplicada en los sitios que le corresponde.


- Si has añadido todas las texturas que no encontraba World Editor, ya no te debería aparecer ningún mensaje 'Could not find texture ...' en la pestaña 'Console'.


- ¿ Para que nos sirven estas 15 texturas aplicadas al azar ?. Pues ahora ya sabemos que nombre de textura se aplica en cada lugar y rincón de nuestro nivel, de manera que con sólo sustituir una textura por otra en el fichero 'rampas.txl', el cambio se verá aplicado automáticamente en la siguiente compilación.


- Pero antes de eso vamos a echar un vistazo al nivel en primera persona utilizando Entidad 3D.


- Antes de llevarnos por el entusiasmo y compilar, hay que recordar que debemos añadir la entidad 'DeathMatchStart' al nivel para fijar el punto inicial de partida del jugador, de lo contrario Entidad 3D te mostrará este error.


- Compilamos el nivel, pero esta vez si que activamos la opción 'Preview'.


- Si la compilación ha funcionado bien, pero justo al dar comienzo Entidad 3D te aparece este error:

... es que has añadido la entidad 'DeathMatchStart' en medio de algún bloque sólido, mueve esta entidad a otro lugar hasta que el nivel se cargue correctamente en Entidad 3D.


- Podrás ver que el nivel es bastante raro ya que le hemos aplicado 15 texturas al azar, pero fijándote en los lugares que se han aplicado asociarás rápidamente que fichero .BMP se ha aplicado en que sitios.

Intenta moverte por el nivel, .... ¡que extraño! ¿ soy yo o es que este nivel me parece muy pequeño ?, no puedo pasar por puertas, pasillos o bajo puentes y rampas.


- El efecto anterior es de lo más normal, ya que resulta que los mapas de Quake son aproximadamente la mitad de tamaño que la proporción utilizada por Entidad 3D. Para solucionar esto volvemos a World Editor y aumentamos de tamaño todo el escenario mediante la opción 'Tools/Scale World' donde introduciremos el valor de 2 en la caja 'Enter world scale factor'.


- Volvemos a compilar el nivel y comprobaremos que esta vez todo está a un tamaño más normal.


- No olvides salvar el nivel.



Limpiando el nivel:

Llegado a este punto vamos a borrar una serie de elementos que incorpora el nivel original de Quake y que, si bien no provocan ninguna incidencia en nuestro nivel, son del todo innecesarios.


Entramos en la lista de entidades y borramos una a una todas las entidades menos las entidades 'ligth', 'Camera' y la 'DeathMatchStart' que hemos añadido nosotros. Las entidades 'light_torch_...' también las puedes borrar.


La eliminación de estas entidades hará desaparecer el mensaje 'Some Entities or Brushes ....' que nos aparecía cada vez que cargábamos el nivel.



Estableciendo las texturas definitivas:

En este punto ya podemos ir estableciendo las texturas definitivas en nuestro nivel, que básicamente será sustituir una textura por otra en nuestro fichero de texturas, 'rampas.txl' para el ejemplo.


En principio se trata de que te des una vuelta por el nivel o mediante la vista texturizada de World Editor y te fijes donde se han aplicado las texturas para poder localizarlas en los ficheros .BMP (que aún debes de tener en la carpeta 'levels') de las texturas provisionales que añadiste al fichero de texturas, sustituir los .BMP por las texturas que te gusten, borrar las que vas a sustituir del fichero de texturas 'rampas.txl' y finalmente añadir las nuevas.


Pero vamos a ver un caso práctico para una textura:


- En la vista texturizada de World Editor he visto una textura que no me gusta y quiero saber que nombre de textura tiene para poder sustituirla por otra en el fichero de texturas. Desde el propio World Editor es muy sencillo localizar nombres de texturas estando en el modo de selección 'Mode/Selection' y con la pestaña 'Textures' a la vista, pulsa la tecla 'Shift' y al mismo tiempo haciendo 'click' con el ratón sobre la textura que nos interesa (en la vista 3D texturizada), en la pestaña 'Textures' se habrá seleccionado la textura en cuestión con su nombre correspondiente.


- Tomamos nota de ese nombre, en nuestro ejemplo 'wbrick1_5'.


- Borramos, de la carpeta 'levels', el fichero .BMP que corresponde a la textura anterior, en nuestro ejemplo el fichero 'wbrick1_5.bmp'.


- Abrimos el programa Texture Packer, cargamos el fichero de texturas 'texturas.txl' y seleccionamos una textura que nos guste para sustituir la textura que acabamos de borrar.
Utilizamos la opción 'Options/Extract selected' para extraer la textura seleccionada en un fichero .BMP.


- Al fichero 'brick35.bmp' que nos ha dejado en la carpeta 'levels' le cambiamos el nombre por 'wbrick1_5.bmp', que es el nombre de textura que estamos cambiando.


- Abrimos otro Texture Packer y cargamos nuestro fichero de texturas, 'rampas.txl' en el ejemplo.


- Seleccionamos el nombre de textura que estamos cambiando y la eliminamos pulsando la tecla de suprimir.


- Arrastramos el nuevo fichero 'wbrick1_5.bmp' que tenemos en la carpeta 'levels' hacia el Texture Packer con el 'rampas.txl' abierto. Salvamos el fichero de texturas.


- Ahora ya podemos volver a World Editor, compilar el nivel y entrar en él para verlo, observaremos que el nivel ya incorpora la nueva textura.


Observarás que en la ventana texturizada de World Editor no se ha actualizado la vista con la nueva textura, esta vista sólo actualizará sus texturas si sales de World Editor y vuelves a entrar, pero no es necesario si compruebas los cambios de texturas compilando y viéndolos desde dentro de Entidad 3D.


Ten en cuenta que una textura puede estar aplicada en diversos sitios y elementos de un mismo mapa, así que asegúrate que esa textura que has cambiado te gusta como queda aplicada en todo el nivel.

Puedes trabajar sin problemas como hemos hecho, simultáneamente con dos Texture Packer abiertos y un World Editor.

Recuerda salvar el fichero de texturas antes de pasar a compilar en World Editor.

Recuerda ir salvando el nivel en World Editor.



Buscando agua:

Es frecuente en los mapas de Quake que el autor del mapa haya incluido zonas con agua o lava, pero lo malo es que en World Editor estas zonas aparecen como bloques sólidos (igual que el resto del mapa) y encima con las texturas provisionales que hemos puesto, por lo que resulta un poco complicado localizarlas.

Evidentemente un buen consejo es que busques grandes bloques en la parte más baja del nivel y una vez localizado un posible bloque procederemos a cambiarle sus propiedades ('Brush Attributes') para ver si puede corresponderse a un bloque de líquido una vez lo veas integrado en el escenario.


Este es el aspecto inicial que tenía el agua en el nivel 'rampas':

... y el agua no son las zonas laterales que ves más azules, esas zonas aparecen con textura de agua porque les tocó esa textura provisional.

Las zonas que forman el agua resultaban ser todo ese suelo oscuro que ves en la imagen.


- Seleccioné uno de los bloques del suelo y le cambié los atributos seleccionando (Empty, Wavy y Water) como puedes ver a continuación.


- Cambié las texturas de todas sus caras a una textura de agua.


- En los atributos de todas las caras ('Face Attributes') le apliqué una transparencia de 100 para que el agua apareciese bastante transparente.


- Procedí a realizar todos esos cambios en 7 bloques más que estaban a la misma altura y que formaban todo un fondo líquido.

Ya dentro del nivel, este es el aspecto que presentaba:

... y digo líquido porque lo más seguro es que originalmente estos bloques fueran lava, ya que este nivel tiene el aspecto de ser un nivel de torneos para enfrentar unos jugadores con otros con la dificultad añadida de no caer en una abrasante lava.

Para ir probando el nivel y no quemarme continuamente mientras me sumergía en el líquido lo dejé como agua, pero si quieres puedes cambiarlo a lava simplemente con seleccionar 'lava' en lugar de 'water' cuando cambies los atributos de los bloques de líquido.


- Si lo cambias a lava también tendrás que asignarle a estos bloques una textura de lava para completar el cambio.



Por aquí no hay quien pase:

Una vez conseguida un agua cristalina que permitía ver el fondo, me di cuenta que bajo el agua se escondían unas entradas submarinas de las que provenía una ligera fuente de luz. Sin pensármelo dos veces me zambullí en el agua y bajé hasta una de las entradas.


Para mi sorpresa comprobé que me era del todo imposible entrar por esa puerta tan pequeña, seguramente en Quake el jugador pasaría agachado sin problemas.


Pues no me quedó más remedio que volver a Wolrd Editor y ampliar la entrada para que pudiese entrar en la misteriosa cámara submarina.


Estos mapas de Quake son perfectamente modificables de la misma forma que ya sabemos hacerlo con los escenarios que hayamos podido crear con Wolrd Editor siguiendo el tutorial del programa o creando nuestros propios escenarios.

Los mapas de Quake verás que sólo están formados por 'brushes' del tipo 'solid', por lo que no te extrañes si no encuentras del tipo 'cut brush' para hacer los huecos de puertas o ventanas, simplemente te encontrarás distintos tamaños de 'solids' para crear todo tipo de estructuras.


- Para el caso que me ocupaba, localicé la pequeña entrada y cambié el tamaño del bloque que tenía encima la puerta, dejando un espacio suficiente para que pasase el jugador.


Ya dentro del nivel, la puerta parecía tener el tamaño suficiente para poder entrar y descubrir lo que escondía detrás, pero eso será el tema del próximo apartado.




Ascensores congelados:

Una vez en el interior de la cámara submarina, esto es con lo que me encuentro:


Parece ser el punto de partida de un ascensor que recorre el interior de la torre metálica. ¿ Pero donde está el ascensor ?. Me coloco debajo de la torre y miro hacia arriba. Al parecer el ascensor está parado en la parte alta de la torre, y como no hagamos algo, ahí se quedará eternamente.


Lo único que tenemos que hacer es crear una animación para la plataforma que representa el ascensor, de la misma forma que ya lo hicimos para puertas y plataformas móviles en el tutorial de World Editor.


- Primero habrá que crear un 'Model' para esa plataforma, por lo que selecciono la pestaña 'Models', pero al desplegar los 'Models' ya existentes, me doy cuenta que ya existen cuatro 'Models' que llegaron del mapa original de Quake. Dos de ellos hacer referencia a unas puertas ('func_door' y 'func_door0'), uno es para pasar a otro nivel ('trigger_changelevel') y el último ('func_plat') parece ser lo que me interesa, el ascensor, aunque para que quedase más claro finalmente cambié el nombre de este 'model' por el de 'ascensor'.


- Selecciono 'ascensor' y como era lógico no tiene ningún tipo de animación, cosa que evidencia el solitario 'K 0.00' en el cuadro de animaciones.


- Pero si hay un 'model' creado tendrá asociado uno o más 'brushes' que lo forman, a lo que lo compruebo de inmediato pulsando el botón 'Select' que hay en la misma pestaña de 'Models'. Antes de hacer esto me aseguré que no había nada seleccionado en el nivel pulsando 'Control+D'.


- Una vez pulsado 'Select', efectivamente aparece seleccionado el ascensor que permanece 'congelado' en la parte alta de la torre.


- A continuación creo una animación para este 'Model', pero haciendo partir la animación con el ascensor desde la parte baja de la torre, es decir, desde el interior de la habitación submarina.


Así es como quedaron las pautas de movimiento para el ascensor:


En el segundo 0 comenzará a subir desde el suelo de la habitación submarina.

A los 15 segundos alcanzará la máxima altura.

A los 25 segundos comenzará a bajar.

Y a los 40 segundos volverá a estar parado en el suelo de la habitación submarina.


Así quedó el ascensor (en la parte izquierda de la imagen) en su posición inicial dentro del nivel.


- Recuerda que sólo con esto el ascensor no funcionará, hay que asignar al 'model' 'ascensor' una entidad 'MovingPlat', a lo que añado esta entidad al nivel y la coloco encima de la posición inicial del ascensor.


- Compilo el nivel y compruebo que subiéndome al ascensor, este se pone en marcha y me lleva hasta la parte alta de la torre, lugar que por otro lado era del todo imposible acceder si no era a través de este ascensor.


- Pero como todo no nos va a salir perfecto, al llegar a la parte alta de la torre resulta que es muy baja para el tamaño del personaje y este se empotra en el techo y ni siquiera puedo salir del ascensor ni volver a bajar.


- Todos estos problemas los resuelvo redimensionando diversos bloques en la parte alta del ascensor e incluso subiendo el techo del nivel.


Ten mucho cuidado al modificar la posición o dimensiones de los bloques que delimitan el nivel (techos, suelos y paredes exteriores), un mal encaje entre ellos te llevará a errores de compilación '**LEAK**'.



Esta puerta no se abre:

Pues resueltos diversos problemas en la parte alta de la torre, por fin puedo salir perfectamente del ascensor y acceder a un largo pasillo que acaba con una puerta que tiene todo el aspecto de llevar al final del nivel.


Se que tras la puerta hay una pequeña habitación detrás, por las vistas que se ven en World Editor.


Desde el propio World Editor hago avanzar la cámara a través de la puerta para poder ver al menos una vista previa texturizada del interior de la pequeña habitación. Este es el aspecto que presenta.


En cuanto a la puerta, tendremos que hacer lo mismo que hemos hecho con el ascensor. En el caso de esta puerta, parece ser que estaba formada por dos bloques que se movían horizontalmente para dar acceso a la habitación, por eso hay dos 'models' para la puerta ('func_door' y 'func_door0').

El caso es que no aprovecho nada de eso y elimino directamente estos dos 'models'. Además yo quería una puerta de un solo bloque que se abra verticalmente, eso sin contar que la puerta que venía era muy baja para el tamaño del personaje.


- Rehago la puerta y creo un 'model' llamado puerta al que animo sin mayores complicaciones.


- También le asigno a la puerta una nueva textura metálica, textura que he de ajustar a la puerta para que la cubra por completo. En la siguiente imagen puedes per el resultado en World Editor, junto con los valores de 'Texture Offset' y 'Draw Scale' que he establecido en 'Face Attributes' en las caras de la puerta para realizar el ajuste de la textura metálica.


- Sólo me falta añadir la entidad 'Door' al nivel y asociarle el 'model' 'puerta' para que la puerta se abra al acercarse el jugador.


- Compilo el nivel y me acerco a la puerta, al abrirse me permite ver el interior de la pequeña habitación que sirve como zona final para saltar al próximo nivel del juego. En este caso no voy a añadir la entidad que realiza este salto para que cada uno haga lo que quiera en esta zona.

Lo que si que voy a hacer es arreglar un poco esta habitación cambiando algunas texturas y haciendo semitransparente una especie de cristal que hay al fondo de la habitación. Este es el resultado final:



Luz difusa:

Finalmente es recomendable retocar las características de las entidades 'light' para producir luces menos intensas, con distintas tonalidades o con diferentes parpadeos.

En el caso del nivel 'rampa' hay 25 luces que producen toda la iluminación del nivel, por lo que seleccioné una a una cada entidad 'light' y les bajé la intensidad de la luz a 200 o 300.

Recuerda que un adecuado uso de las luces puede producir un escenario más realista y atractivo para el jugador.



**** F I N ****


Preguntas y respuestas acerca de la adaptación de niveles de Quake:


Pregunta: Estaba adaptando bien un nivel de Quake pero ahora ya no me carga en World Editor el fichero .3DT convertido en el que estaba trabajando.


Respuesta: Seguramente has realizado una modificación de algún bloque del nivel que impide la carga de éste en World Editor y como ya no puedes abrirlo no podrás deshacer la modificación. La única manera de evitar esto es hacer múltiples copias del nivel .3DT en el que estés trabajando para poder volver a cargar al menos una versión anterior de tu nivel en formato .3DT



Pregunta: Usando World Editor 1, asigno una cara como cielo y cuando compilo el nivel el programa World Editor se cierra bruscamente.


Respuesta: Baja ligeramente el bloque 'brush' que contiene esa cara.



Pregunta: Compilo bien el nivel con World Editor pero cuando carga el nivel en Entidad 3D se ve todo negro excepto los marcadores.


Respuesta: Intenta eliminar bloques 'brush' del nivel hasta que el nivel cargue correctamente en Entidad 3D. Normalmente esto es debido a una excesiva cantidad de bloques en el nivel .MAP importado de Quake.



Pregunta: En World Editor, sólo he movido un bloque del nivel y al compilar el nivel el programa World Editor se cierra bruscamente.


Respuesta: Intenta eliminar el 'model' al que esté asociado ese bloque o grupo de bloques.



Pregunta: En World Editor intento eliminar los 'models' del nivel original de Quake, pero cuando compilo el nivel con World Editor el programa se cierra.


Respuesta: Elimina los 'models' uno a uno, es decir, elimina uno y compila. Si no se cierra el World Editor, salva el nivel y vuelve a hacer lo mismo con otro 'model'. Si se te cierra el World Editor, ábrelo de nuevo con tu nivel pero intenta eliminar otro 'model' diferente al último que intentaste eliminar. Después de eliminar correctamente algunos 'models' vuelve a intentar eliminar los 'models' que te daban problemas, normalmente los podrás eliminar casi todos. Cuando al final sólo te queden 'models' que no puedes eliminar de ninguna manera, considera eliminar los 'brush' que forman alguno de esos 'models'. Si no tiene un impacto muy importante en el nivel, intenta ahora eliminar el resto de 'models' para ver si compila correctamente. No salves el nivel aún, prueba el nivel en Entidad 3D y si todo funciona bien y consideras que el 'brush' eliminado no tenía mucha importancia, salva definitivamente el nivel.






Descargar el mapa 'rampas' en formato .MAP de Quake:
mapa_rampas_quake.zip (5 Kbytes)

Descargar el mapa 'rampas' (ya arreglado) en formato .3DT junto con sus texturas, para editar con World Editor:
mapa_rampas.zip (191 Kbytes)
Para instalar este mapa sólo tienes que descompactar el fichero 'mapa_rampas.zip' en el interior de la carpeta donde tengas tus niveles de World Editor, normalmente en la carpeta 'levels' de Entidad 3D.




(C) Junio / 2004 por Jordi Pérez
Agosto / 2015 (Actualizado)
Marzo / 2016 (Actualizado)