Pages - Menu

miércoles, 28 de agosto de 2013

Tutorial Left 4 Dead: Crear un refugio y cambiar de nivel

En las campañas de Left 4 Dead cada nivel está separado por un refugio, esto es, una habitación especial en la que hay objetos y armas para colocar y además libre de infectados. Estas habitaciones marcan el final e inicio de un nuevo nivel dentro de la campaña. En éste tutorial vamos a ver cómo crear un refugio y hacer un cambio de nivel.


Para poder seguir el tutorial he creado un mapa de ejemplo, puede descargarse de éste enlace.

Crear un refugio y cambiar de nivel.

Crear un refugio y hacer un cambio de nivel no es una tarea complicada, es una tarea muy completa. Para hacer todo esto necesitamos entidades, modelado de habitación, triggers y rejillas de navegación.

Los pasos son los siguientes:

- Abrimos el mapa A.
- Creamos una entidad de la clase prop_door_rotating_checkpoint, editamos sus propiedades:

Name: checkpoint_entrance
World Model: checkpoint_door_-02.mdl
Spawn Position: Open counter-clockwise

- Lo situamos en el hueco para la puerta que hay al final del primer pasillo. La casa debe estar mirando hacia fuera de la habitación, es decir, debe mirar hacia nuestro pasillo.
- Dentro de la habitación creamos una entidad del tipo info_landmark. En la propiedad "Name" ponemos "landmark_A".
- Creamos un prop_static y lo situamos en el otro extremo de la habitación. Sus propiedades son:

World Model: checkpoint_door_-01_static.mdl

- Creamos un muro con la textura "toolsnodraw" y lo situamos de tal forma que rellene toda la habitación.
- Transformamos el muro en entidad con Control+T, le asignamos la clase trigger_changelevel y en sus propiedades ponemos lo siguiente:

New Map Name: PVHammer_Change_Level_B
Landmark: landmark_A

Deberíamos tener algo así:


- Abrimos el mapa B.
- Creamos un prop_static y lo situamos en el primer hueco, justo en la pared que a la espalda de los supervivientes. Sus propiedades son las siguientes:

World Model: checkpoint_door_-02_static.mdl

- Creamos un info_landmark y en la propiedad "Name" ponemos "landmark_A".
- Creamos una entidad llamada prop_door_rotating_checkpoint. Las propiedades son las siguientes:

Name: checkpoint_exit
World Model: checkpoint_door_-01.mdl
Body: 1
Spawn Position: Closed

- Posicionamos la entidad en el hueco que está justo delante de los supervivientes.
- Guardamos ambos mapas.

Deberíamos tener algo así:



Abrimos el mapa A y pulsamos F9 para testear el mapa y generar la rejilla de navegación. Los comandos son los siguientes:

director_stop
nb_delete_all
nav_edit 1
z_debug 1
nav_mark_walkable
nav_generate_incremental
mark PLAYER_START (en la zona donde comienzan los supervivientes)
mark CHECKPOINT (en la habitación del refugio)
nav_analyze
z_debug 0
nav_edit 0
director_start

Abrimos el mapa B y tecleamos los siguientes comandos

director_stop
nb_delete_all
nav_edit 1
z_debug 1
nav_mark_walkable
nav_generate_incremental
mark CHECKPOINT (en la habitación del refugio)
mark FINALE (al final de la habitación)
nav_analyze
z_debug 0
nav_edit 0
director_start

Ahora podemos testear perfectamente nuestro mapa. Abrimos el mapa A y probamos a entrar en el refugio.





El mapa se puede descargar de éste enlace.

¿Te resulta muy complicada la creación de refugios?