Mundo abierto: Creando zonas de transición


Para crear un videojuego, de mundo abierto, después de realizar varias pruebas y probar algunos títulos, como Horizon Zero Dawn y Fallout 4, me di cuenta de que para llegar de un lugar a otro, es necesario algo que me haga ver y sentir el mundo poco a poco.

La ventaja y a su vez, la desventaja de un mundo abierto es que tienes diferentes opciones para elegir. Si quieres llegar de un punto a otro, primero debes atravezar diferentes zonas, a veces enfrentar a enemigos, otras puedes tomarte tu tiempo para apreciar el paisaje, aunque a veces creo que la mayoría de los jugadores, solo corren del punto A al B, con lo cual, no siempre es necesario el detallar el escenario.

Desarrollando un prototipo

Para darme cuenta, de que necesitaba y que debía quitar del GDD, grabe mis gameplays, de un prototipo, hecho con los assets más baratos que encontre, así como de los videojuegos que pude jugar, desde el Fallout al Horizon Zero Dawn, cuando salio en pc. Es un proceso iterativo, casi diria que puedes y necesitas un lugar en donde testear, donde romper no cueste tiempo y luego copies y pegues, lo que necesites en el otro proyecto, el que irá a producción. Una de las cosas que más me gustan de Unity, y lo que más me espanta de Unreal, aunque admito que no probe la última versión, es la fácilidad con la que puedo crear los datos y modificarlos, para el que no sepa, a veces basta con abrir el editor de código y cambiar el id por el que necesitas.

Para ir probando ideas, en cuanto a la distancia y el tamaño, ya que van a requirir optimización, es decir, crear subescenas, unificar algunos objetos estáticos en una única mesh, LODs y occlusión culling, entre otras cosas. También debes tener una idea clara de cuales son los límites, del hardware del público objetivo, del hardware de desarrollo, del dinero que dispongas, de los recursos humanos y del precio final de ventas, para eso necesitas probar ideas, para descartar lo que es improvable o imposible.

Creando un mapa

A modo de ejemplo, he creado un mapa, que me sirva para explicar la situación. El jugador parte de la zona incial, en medio del bosque, con rumbo al simbolo que parece un omega, allí sucederá un evento. Para dejarle en claro en dónde ir, cuál es el punto de interes, podemos usar la arquitectura o las irregularidades del terreno.

En este ejemplo, el jugador iniciará en una zona más alta, ya que de camino verá como el agua lo llevará colina abajo, hacia el pantano que esta en medio de ambos puntos, desde el cual podrá ver de nuevo el punto de interes y podrá ver otro. Con lo cuál, también estamos jugando con el límite de visión de la camara, usando las montañas y los bosques. También podemos usarlo para ocultar la posición del otro game object, como zonas venenosas, animales o npc.

Si usamos la geografía, podemos ocultar nuestro eventos y tomar al jugador por sorpresa o seguir un tutorial, de camino a ambos puntos de interes, el jugador va a tener que toparse con un animal o npc, con lo cual podemos lanzar un tutorial para que aprenda a usar el arco, los combos y los puntos de habilidad, para engatuzar al carnicero, para que compre a un mejor precio la carne del javalí que cazamos al ayudar al anciano granjero, que perdió sus cultivos por culpa del animal y nos recompenso, con la carne. Así como también atravesar zonas, del pantano, que emanan un vapor tóxico y esconden moluscos, que acechan en el y los más poderosos, esconden una perla en su interior. Al ir por el camino de la montaña, va ver las cuevas, en dónde puede esconderse tersoros, bandidos o algunos misterios sin resolver, que puede que llegue a enteneder, cuando llegue al último punto, a través del camino de las montañas.

Para dividir el “mundo”, necesitamos crear diferentes terrenos y/o escenas, para cargarlos en memoria y luego representarlos, junto a los game objects, las mallas, los shaders, las texturas y partículas. A continuación, dejo una división del mundo, las lineas rojas representan el borde de cada terreno.

Aunque pueda parecer repetitivo, en la última parte, es cuándo el jugador debe comenzar a unir los cabos sueltos, para llegar al final de la historia y terminar la partida de alguna forma.

Probando diferenes títulos, viendo diferentes gameplays en youtube, he descubierto que tarde o temprano, pierdes el incentivo a jugar, si tienes que hacer lo mismo, en una historia que no progresa y no hay vida en el mundo, si nada sucede y todo está estático.

También sucede lo mismo, si no tienes algo que varie la intensidad o despierte alguna emoción, de camino al punto B. Si no debes evitar nada y tranquilamente podrías saltartelo con un viaje rápido.

Sobre los viajes rápidos

Son útiles, pero de cierto modo, deberían estar justificados, ya que tienes una pantalla de carga en medio, así que la atención del jugador, se pierde. A veces los youtuber aprovechan esto, para mirar el chat. El jugador promedio, pone en pausa al juego y va a hacer lo que tenga que hacer. Esto es un lujo para los creadores de contenido, ya que pierden público si no lo saben manejar bien.

Algunos jugadores, prefieren ir a explorar el mundo, con lo cuál, necesitas darle contenido, eventos para que puedan aprovechar el viaje y dejarse llevar. Para ello el mundo debe ser dinámico, cambiar.

Creando un mundo dinámico

Para mi videojuego, Blood and Fire, que pretende ser el inicio de una franquicia, necesito un mundo dinámico. Para coseguirlo, estoy planeando usar eventos de nivel local, regional y mundial, así como eventos únicos, que impongan una nueva dinámica. Es decir, que cuando acabes la historia, el juego puede continuar, aunque de cierto modo, tiende a ser algo repetitivo después de un tiempo, pero no creo que el jugador llegue tan lejos, o al menos muchos no lo harán.

Para los eventos locales, la ambición, las traiciónes, las pasiones y conspiraciones, estan a la orden del día en una historia de aventuras, por eso podemos ser participes del golpe de estado dentro de una ciudad, derrocar y colocar tiranos. Descarte el gobernar, porque requiere que seas capaz de sentirte el líder, con lo cual acabarias jugando un Mount and Blade, los algoritmos y animaciones detras de un séquito, son costosos.

A nivel regional, puede suceder muchas cosas, ya que puedes necesitar envenar o asaltar fortalezas que aseguran el dominio sobre un terreno, para ello primero tienes que tener el apoyo de alguien, que tenga un ejército y que quiera ir y tomarlo, asumiendo los costos que supone un asedio. Con lo cuál otro señor, veria la oportunidad y tomarnos por sorpresa. Aquí deberemos decidir, si seguimos buscando ayuda o abandonamos la fortaleza, que con el paso del tiempo, iriamos instanciando vegetación, cambiando parametros en los shaders y el lugar, comenzaría a verse abandonado. Luego llegarían los bandidos o porque no un avaro dragon, si tu historia admite eso, la mia no, ahora me arrepiento, porque esta idea me ha llegado escribiendo el post.

A nivel mundial, necesitamos un cambio en el ritmo de la historia, para que debamos ir de un lugar a otro, redescubrir lugares, ya que estos cambiaron por hemos tomado una u otro decisión. Algunos, gracias a la astucia del jugador progresaron y se congregarán para recibirnos con aplausos, otros, nos insultarán, por avaros, si es que conseguimos acercanos. Entre los eventos, que marcan el giro argumental, esta el fracaso en proteger el fuerte, al cual nos asignaron, nuestro maestre (líder), fue asesinado y casi nos fuimos con él, ahora estamos heridos frente a una horda, que ha llegado, sin lugar a dudas porque tenemos un traidor. No lograremos, o tal vez lo consigamos (poco probable), ya que con esto todo cambiará, de aqui en adelante, será cazar a los traidores y batallas campales, refugiados huyendo y monstruos acechando. Nuestros amigos, buscaran nuestro consejo y nuestros aliados, demandarán nuestra espada.

Algunos videos del GDC

Estos son algunos vídeos del título, que me llevo a volver a replantearme muchas cosas y darme cuenta, de que podía lograr crear algo más interesante. Sobre todo porque cuándo lo vi, me di cuenta de que estaba reinventando la rueda, y lo estaba consiguiendo, que es lo más loco de todo, matemáticamente hablando, el código es otra cosa, los bit no son amigos de los floats.

Horizon Zero Dawn: A Game Design Postmortem

Designing the Settlements in the World of ‘Horizon Forbidden West’

Knocking on Death’s Door: Designing a New Bunker for ‘Horizon Forbidden West’