Pages - Menu

jueves, 8 de agosto de 2013

Creación de un mapa de Left 4 Dead (VIII): Rejilla de navegación (nav mesh)

Durante siete posts hemos visto los elementos básicos para diseñar un nivel para Left 4 Dead, en el último terminamos de diseñarlo y ya está listo para configurarse. Ahora vamos a trabajar con la consola de desarrollador para añadirle el mecanismo para que funcione.


El mapa del tutorial anterior puede descargase de éste enlace.

El AI Director.

Left 4 Dead posee un motor de mecánicas propio llamado AI Director, el cual es una inteligencia artificial que se encarga de generar infectados, controlar los eventos y hacer que los bots se comporten correctamente. Funciona creando infectados según la dificultad y la pericia del jugador, de tal forma que ninguna partida es igual.

Crear la rejilla de navegación.

El AI Director está presente en todo el juego, lo único que hay que hacer es configurarlo, para ello debemos generar y editar una rejilla de navegacion (nav mesh).

Durante este tiempo cada vez que hemos testeado el escenario ha aparecido un mensaje de error que saltábamos para poder explorar el mapa, es precisamente la falta de rejilla (o error en ella) la que provoca éste error.

Para crear una rejilla de navegación abrimos el mapa mediante F9.

Una vez dentro pulsamos el botón F12 para abrir la consola de desarrollador.


Acciones para crear una rejilla.

Lo que hay que hacer es desactivar todos los elementos y bots, después parar el AI Director para disponer la rejilla, después indicar por donde se puede crear la rejilla, crearla, marcar los puntos de partida y fin, finalizar la edición y activar los elementos, bots y el AI Director.

Comandos a utilizar.

Primero usaremos el comando:

- director_stop

Esto detendrá el director.

El siguiente comando es:

- nb_delete_all

Esto borrará todos los elementos.

- nav_edit 1

Con éste comando iniciamos la edición de rejilla.

Ahora salimos de la consola reanudando la partida, fíjate que mientras te mueves ha aparecido una marca de señalización en el punto de mira. Ahora debemos apuntar al suelo y abrir de nuevo la consola de comandos.

El siguiente es:

- nav_mark_walkable

Con éste comando señalizaremos por donde se puede caminar, para así generar la rejilla. Cierra la consola de nuevo y fíjate que ha aparecido un triángulo en el escenario, con eso estamos indicando la zona donde se podrá generar la rejilla.


Abrimos la consola e introducimos el siguiente comando:

- nav_generate_incremental

Con éste comando se generará la rejilla de navegación, que es lo que le indicará al AI Director el terreno por donde los infectados y bots se pueden mover y por donde se podrán generar infectados.


La rejilla se ha generado, ahora debemos configurar algunas de sus zonas. Abre la consola e introduce:

- z_debug 1

Esto habilitará el modo de depuración, gracias a él podremos ver los atributos de las zonas de la rejilla.

Ahora vamos a limpiar la zona de selección, abre la consola e introduce:

- nav_clear_selected_set

Con esto hemos quitado la selección de la rejilla.

Ahora vamos a seleccionar la zona de la rejilla donde los jugadores comienzan. Esto se hace apuntando a la zona correspondiente, abriendo la consola y tecleando el siguiente comando:

- nav_toggle_in_selected_set

De ésta forma seleccionamos esa zona.

Ahora abre la consola y teclea:

- mark PLAYER_START

Con ésto indicamos al AI Director que los jugadores comenzarán en esa zona de la rejilla.


Ahora nos dirigimos al extremo opuesto del escenario, vamos a decirle al AI Director que ahí llega el final del nivel.

- Apuntamos a la zona del final.
- La seleccionamos con nav_toggle_in_selected_set.

Tecleamos el siguiente comando.

- Mark FINALE

Esto indicará al AI Director que el nivel llega a su final.


Una vez realizado este paso procedemos a compilar la rejilla usando el siguiente comando en la consola:

- nav_analyze

Con esto la rejilla de navegación quedará guardada. El escenario se cargará de nuevo, ahora debemos quitar las herramientas de edición de rejilla y activar de nuevo el AI Director. Usaremos los siguientes comandos:

- z_debug 0
- nav_edit 0
- director_start

Ahora debemos entrar de nuevo en el mapa para que el AI Director funcione y el nivel se genere correctamente. Para ello escribiremos en la consola el comando "map" seguido del nombre del mapa, tal que así:

- map PVHammerTutorial07

Con ésto se cargará el mapa de nuevo, el AI Director generará los infectados necesarios, quedando el nivel completamente jugable.




Conclusión.

Con estos siete tutoriales hemos creado un mapa completamente funcional de Left 4 Dead, tenemos un mapa ambientado y perfectamente configurado.

A partir de ahora podemos trabajar con diversos modos de juego, para los modos campaña, versus y survival es necesario realizar algunos ajustes y crear nuevas entidades. Todo eso lo iremos viendo en los siguientes posts.

¿Cómo ves la tecnología de AI Director para crear juegos de infectados?