Introducción

Los mapas en juegos como Half Life 2 en su versión para 1 jugador parecen no tener fin, vamos avanzando por el mundo hasta llegar a nuestro objetivo final. Lo único que nos demuestra que no es así es esa pequeña pausa en que vemos sobreimpresa la palabra “Cargando…” y unos instantes después seguimos adelante.

En realidad cuando vemos esto lo que está haciendo el juego es cargar el siguiente mapa, y es que ahí está el truco, el juego está dividido en un nutrido número de mapas relativamente pequeños que comparten final e inicio del anterior y siguiente respectivamente.

En este artículo veremos como funciona este sistema y aprenderemos a decidir donde y como poner nuestros límites a los mapas. Veréis que es un artículo más teórico que práctico ya que la dificultad técnica en si es baja, así que preparad una taza de café y sentaos cómodos.

¿Cuando he de cortar mi escenario?

Es una pregunta compleja, depende de cada mapa y está fuertemente ligado a la optimización. Hemos de buscar un término médio en el tamaño ya que si bien hacer mapas muy grandes hará que carguemos menos veces, tiene la contrapartida que estos ocuparán más y por lo tanto tardarán más en cargar. Al contrario, si hacemos mapas muy pequeños, aunque tarde poco, estaremos cargando cada poco tiempo, lo cual es tan molesto como el caso anterior.

Además hemos de pensar que no es lo mismo un mapa con espacios cerrados que a campo abierto, la distancia a la que podemos ver es un parámetro muy importante ya que el coste para el ordenador no es el mismo en un complejo subterráneo lleno de recodos que en un estadio de fútbol donde vemos hasta el otro extremo del campo. Así pues, siempre que sea un mapa abierto tenderemos a cortar el mapa más pronto que cuando tenemos un mapa cerrado, que nos permitirá tener más recorrido.

Por último hay un parámetro que no es tan técnico, pero no por ello menos importante y es que estos momentos de carga cortan la acción como un cuchillo caliente la mantequilla. El hecho de que el juego se pare también hará que la tensión se pare. Así pues, hemos de buscar un momento de paso entre eventos importantes para decidir cortar el mapa. Momentos ideales son tanto justo antes, como recién acabado uno de estos eventos. Por ejemplo, si tenemos pensado que haya un enfrentamiento en una plaza de una ciudad en cuyo centro hay un ovelisco que hace rato que vemos de lejos, el momento ideal para cortar el mapa es cuando estamos tan cerca que el obelisco se nos presenta a pocos metros y presentimos que al girar la siguiente esquina llegaremos, así que giramos y… “Cargando…” acción! De la misma forma, justo después de un evento en que hemos tenido que aplicarnos es bueno descargar la tensión del jugador así que al poco de haber acabado con una nueva amenaza el jugador gira la esquina y “Cargando…”, tomen aire que seguimos.

¿Por donde he de cortar mi escenario?

Ahora que ya tenemos más o menos claro en que punto vamos a cortar el escenario la siguiente pregunta es, ¿puedo cortar por donde quiera?, aunque sería más correcto decir ¿he de cortar por donde quiera?. La respuesta es si y no, técnicamente hablando el juego os permitiría cortar donde quisiérais pero ahora descubriréis porque es mejor pararse a pensar si no es mejor buscar sitios concretos.

Fig. 1La razón es simple, a nivel interno lo único que hacemos es un cambio de mapa, es como si jugando a Counter Strike pasáramos de Aztec a Dust (como no) con el añadido que guardamos información del mapa anterior (vida, equipo y posición). Es to lo que provoca es que nos vamos a ver obligados a copiar de nuestro mapa anterior todo aquello que el personaje pueda ver desde el punto de inicio del mapa posterior. Por ejemplo, si llegados al punto de cambio de mapa estamos en un tren y detrás tenemos un vagón entero tendremos que copiar este vagón en el nuevo mapa para que al girarnos veamos lo que veíamos.

Volviendo a la pregunta, ¿donde?, aquí hay que ser un poco listo y buscar siempre sitios donde el jugador no pueda ver gran cosa, ya no solo porque así nos ahorraremos trabajo, si no que estaremos optimizando nuestro mapa. Ya hemos dicho en varias ocasiones que la cantidad de detalle que podemos darle a un mapa (traducido como la cantidad de sólidos y modelos que podemos tener) tiene un límite, de modo que si encima gastamos parte de estos recursos tan preciados en replicar parte del mapa del que provenimos estamos malganstándolos.

Los mejores candidatos son pasillos en forma de S (ver imagen a la derecha) ya que en el primer mapa veremos un pasillo que gira y al cargar B y girarnos solo veremos el recodo del que venimos. Con un poco de imaginación podemos convertir cualquier sección de nuestro mapa en una S sin tener que estar dentro de complejos de oficinas o cloacas, en la montaña nos encontramos rocas que hemos de sortear, en las calles tendremos que coger ese camino alternativo usando el espacio entre 2 edificios, etc.

¿Como se hace esto en Hammer?

Fig. 2Ya hemos estado mucho rato viendo todo lo que implica un cambio de mapa, ya es hora de ponernos manos a la obra y ver como se lleva esto a la realidad.

Aprovechando la imagen anterior donde tenemos un pasillo idoneo para poner nuestro final/inicio procederemos a hacerlo funcionar.

Nuestro punto clave es la parte baja de la “U” que tenemos, allí hay un punto donde nuestro jugador no tiene visión de las partes que son ya del otro mapa, tanto del actual como del siguiente. En la imagen (Fig. 2), en gris oscuro veréis las líneas de visión aproximadas para el centro de la “U” y como no vemos las partes no compartidas de los mapas (la parte más allá de la zona de puntos).

Definiendo el área de cambio de mapa

Fig. 3Ahora que ya sabemos el punto de corte tenemos que definir un área para que al entrar en ella se cargue el otro mapa.

Para ello crearemos un sólido con la textura Trigger. El sólido debe ocupar todo el hueco del mapa para asegurarnos que vengamos de donde vengamos lo toquemos y cambie de mapa. También nos podemos ayudar de sólidos “clip” para asegurar que no pasa por donde no debe pasar, sobretodo en puntos menos “cuadriculados” como cuando hagamos un entorno en exteriores como el paso de una montaña.

Una vez creado lo convertimos a entidad (botón derecho → tie to entity) y buscamos la entidad Trigger_changelevel. Aplicamos y configuramos sus propiedades:

  • map: Nombre del mapa al que queremos cambiar.
  • landmark: Nombre de la entidad info_landmark en el mapa al que queremos cambiar (ver más adelante).

Repetiremos esta misma operación en el otro mapa para poder permitir al jugador volver atrás. Es importante que el sólido no esté exactamente en el mismo sitio si no un poco más atrás o sería fácil caer en él y no parar de cambiar de nivel continuamente.

Definiendo el punto de referencia

Fig. 4Después de definir la zona que nos hará cambiar de mapa hemos de decirle donde ha de ir en el nuevo mapa. Para ello usaremos la entidad info_landmark de la que solo hemos de definir la propiedad targetname.

Hemos de repetir esta operación en el otro mapa y procederemos de la misma forma que con los trigger. Tendremos un info_landmark en cada mapa, cada uno con su nombre único y luego usaremos este nombre para la propiedad “landmark” de los Trigger_changelevel del mapa opuesto. De esta forma la propiedad landmark del trigger_changelevel 1 del mapa 1 tendrá como valor “landmark 2”, que es la que está en el mapa 2. Mientras que la misma propiedad para el trigger_changelevel 2 (que está en el mapa 2) tendrá como valor “landmark 1”, que está en el mapa 1.

Hay que tener en cuenta que la posición se hará en relación a esta marca, de modo que hay que situarla en el que sería el centro del espacio que tenemos.

Recordad dejar suficiente distancia para que al cargar el nuevo mapa no caigamos en el trigger_changelevel y volvamos al mapa anterior.

source/mapas/cambios_de_nivel.txt · Última modificación: 2011/06/15 17:31 (editor externo)
 
Excepto donde se indique lo contrario, el contenido de esta wiki se autoriza bajo la siguiente licencia: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki



GAS Style basado en Prototype Style © 2008 ShadowFlames Development
Original Design by Frost - Maintained and Modified by Ika

Traducción al español por Huan Manwë