10 Principios del diseño de niveles (Parte 1)

1. Debe ser divertido explorar tu nivel.

Como diseñador debes en tener cuenta que una de las acciones principales de parte del jugador sera la  exploración y observación del entorno, tu nivel no es solo el espacio donde se desarrolla la acción, es el espacio que enlaza el nivel anterior y el próximo. Por eso mismo es tu tarea brindarle al jugador las herramientas para que sepa por cual camino seguir o que objetivo cumplir, Esto lo logras llamando la atención del jugador utilizando un lenguaje visual, como el que estamos acostumbrados a recibir toda la vida en las publicidades, anuncios, etc, Algunos ejemplos de lo que puedes usar para guiar al jugador es la combinación de colores, el uso de la iluminación, las posiciones, objetos en movimiento, claro que puedes usar esto para indicar al jugador porque camino debe seguir. Ten en cuenta de que lo ideal es hacerlo de una forma discreta, para que se pueda fluir por el entorno inconscientemente.

mirrors_edge_10
En Mirrors Edge estamos corriendo constantemente, su jugabilidad tipo Parkour no funcionaria si sus caminos no estuviera hechos para ser recorridos de una forma tan fluida.

Si bien el principal detalle de tu nivel debe estar en la zona que transitara el jugador, es importante que mantengas una decoración interesante, que logres un equilibrio entre las zonas transitables y no transitables. Tampoco te olvides de colocar zonas especiales donde el jugador pueda obtener algún beneficio por haberse tomado el trabajo de explorar el entorno o simplemente por haberse perdido.

2. El entorno cuenta una historia.

Antes de empezar a profundizar mas con este punto voy a definir tres tipos de aspectos narrativos:

  • Explicito – Esto es algo que aparece por un texto o alguna cinemática que narra de forma explicita los hechos ocurridos o los objetivos.
  • implícito – Esta es una historia que se encuentra oculta y solo puede ser comprendida por la mente del jugador, en otras palabras es la historia que se cuenta por el ambiente.
  • Emergente – Esta es la historia que se cuenta a medida que el jugador atraviesa la zona.
Una Sala donde encontramos un monton de monitores en The Stanley Parable nos indica que estuvismos siempre siendo vigilados.
Una Sala donde encontramos un montón de monitores en The Stanley Parable nos indica que estuvimos siempre siendo vigilados.

Como jugador podría nombrar montones de juegos que utilizan una explicación implícita (Portal, Left 4 Dead, Dishonored, Bioshock, Half Life, Outlast, etc) y montones de otros que no explotan este elemento, pero creo que es una regla darle una vida anterior a nuestro entorno sea cual sea el tipo de historia por ejemplo una simple habitación podría estar correctamente amueblada y ordenada Esto ya nos contaría un rasgo de la persona que la habitaba, pero que pasaría si en esa misma habitación abrieramos el armario y encontráramos todo el desorden que podría estar en la habitación?  tendríamos otra visión de la persona que habitaba la habitación podríamos pensar miles de cosas; Otro ejemplo mucho mas simple es pensar en una habitación con una silla y un cuadro, al observar el cuadro vemos que en ese espacio había dos personas felizmente sentados en dos sillas, pero al dirigir la mirada mas abajo observamos simplemente una silla esto ya nos cuenta que paso algo con alguna de las personas o que simplemente quitaron una silla, todo queda en la mente del jugador, nada esta explicitamente dicho, todo es metafórico.

Asi que sencillamente lo que quiero decir es que cualquier detalle que puedas colocar en tu nivel puede tener una gran importancia y ademas de ser un elemento que hace crecer la historia y tu nivel, es otro gran elemento en las comunidades, si tu juego se vuelve querido por la comunidad los usuarios intentara descifrar cada misterio.

3. Enseñale al jugador algo nuevo, no te repitas.

¿Cuantas veces has jugado un juego que al principio parecía genial pero que iba decayendo según avanzabas? Esto pasa por la falta de inclusión de nuevos elementos y mecánicas, esos juegos en los que se le dan rápidamente todos los elementos al jugador y se le enseña rápidamente todas las mecánicas se vuele aburrido. Al ser humano le gusta aprender y utilizar el conocimiento es por eso que debes ir incorporando novedades e ir subiendo la complejidad a medida que el jugador avanza, enfrentarse a desafíos y superarlos, ver que cada vez superas obstáculos mas difíciles es divertido, enfrentarse a las mismas dificultades una y otra vez no lo es.

Half-Life-Gravity-Gun
En este nivel nos enseñan a usar el arma de gravedad, un arma sumamente importante para superar Half Life 2

Muchas veces no se trata de que incluyas una nueva mecánica por cada nivel, si no que encuentres una nueva forma de utilizarla o de combinar varias.

4. Dile al jugador que hacer, no como.

Algo similar al punto anterior, pero necesario  porque puedes incluir muchos desafíos pero si muestras como resolverlos dejan de ser desafíos, puede parecer algo muy simple pero realmente no lo es, cada persona piensa de una forma diferente, es por eso que a veces al asegurarnos que nuestro jugador tome la decisión correcta cruzamos la linea de lo explicito.

Los Tall Boy son introducidos como peligrosos, estos ya nos indica que debemos ocultarnos de ellos.
Los Tall Boy son introducidos como peligrosos, estos ya nos indica que debemos ocultarnos de ellos.

No hay mucho que decir acerca de este punto pero puedo citar un ejemplo sumamente común: si el jugador debe abrir una puerta para pasar a la siguiente zona, pero necesita una llave, no le indiques donde esta la llave de forma explicita, puedes hacerlo dando pistas de posibles lugares o como adivinanza, esto es mucha veces utilizado a la hora de digitar una clave en algún juego.

5. Sorprende al jugador.

A diferencia de lo de las mecánicas, existe otro tipo de factor sorpresa: lo que vere y se enfrentara el jugador,  Esto se logra utilizando algunos eventos inesperados que usualmente pueden ser scripts como  el derrumbe de una seccion, una explosion (Abusar de estos eventos, es eliminar la sorpresa, Call of Duty es un ejemplo de que al utilizar demasiados eventos se vuelven poco interesantes y poco atractivos) o algún otro motivo que nos obligue a tomar otra dirección. Actualmente el factor sorpresa es difícil de lograr ya que el jugador al estar mas acostumbrados a estos se vuelve mas difícil generar una reacción, como por ejemplo en los juegos de terror los Screammers ya no consiguen el efecto esperado, o al obtener mas experiencia como por ejemplo entrar en una habitación donde tengamos mucha munición y elementos de curación nos indica que nos enfrentaremos frente a una gran batalla, lo que si bien funciona como advertencia para el jugador, falla en el factor sorpresa.

portal2_differentturret
Llegado al punto de pensar que todas las torretas son malas nos encontramos con una que es diferente, un ejemplo de un pequeño detalle que sorprende al jugador.

Creo que como diseñadores modernos en la actualidad debemos romper ciertos esquemas y enfrentarnos ante otras nuevas opciones que si logren sorprender al jugador.

Introduccion al mundo 3D – conceptos básicos

Es muy importante saber ciertos conceptos básicos sobre la tercera dimensión, si tienes la intención de sumergirte en lo que es el diseño de videojuegos, Por eso en este articulo aclararemos ciertas cosas que debes saber antes de ponerte a trabajar con algún motor gráfico o herramienta de esculpido o modelación en 3D.

Cordenadas

xyz3Si has trabajado anteriormente con una aplicación para hacer trabajos en 3D, veras que los conceptos de los ejes : X-Y-Z, resultan bastantes familiares. Es que las aplicaciones 3D utilizan el sistema de Cordenadas Cartesiano, donde son descriptas las posiciones, dimensiones y rotaciones de nuestros objetos-elementos 3D por lo que es muy común que veas información escrita entre paréntesis (10, 15, 1o) especialmente a la hora de programar ya que se escribe de ese modo por eso es importante que recuerdes que el orden es X, Y , Z.

En otras palabras es el sistema diseñado para saber cual es la ubicación, el tamaño y rotación del elemento.

 

Espacio local versus Espacio del mundo

Un concepto crucial que hay que tener claro es la diferencia entre el espacio local y el espacio del mundo. En todo mundo 3D, hay un punto de origen, que generalmente es referido como cero, y esta representado por la posición (0,0,0). Todos los objetos 3D también estan posicionadas en cero, por lo que para hacer esto mas simple, se utiliza una posición local que tambien podríamos llamar: “el espacio del objeto”. El espacio local asume que cada objeto tiene su propio punto cero.

localspacevsworldspacePara hacer mas simple entender este concepto, hay que pensar que como cada objeto tiene su propio punto cero, al ser movido este cambiara sus propias cordenadas originarias, lo mismo pasara si agrandamos o rotamos el objeto, Al hacer estos cambios estamos alterando al objeto, no al mundo.

Camaras

Unity-CameraLa cámara es el punto sumamente esencial de las aplicaciones 3D ya que principalmente nos esta permitiendo navegar por nuestro mundo libremente, para la posición de objetos, hacer modificaciones, etc.

Pero tal como la aplicación en la que trabajamos, Nuestro juego debe tener una cámara principal que puede ser la simulación de la visión de nuestro personaje tal como sucede en los FPS, o una cámara anidada a nuestro personaje como sucede en un juego donde vemos a nuestros personajes, aunque también podemos utilizar mas camaras como por ejemplo para mostrar una sección de nuestro nivel en algún monitor, para mostrarle al jugador cual debe ser el camino, para alertar al jugador que esta ocurriendo algo en cierta sección del mapa.

En las cámaras podemos colocar una gran variedad de efectos tales como el blur, bloom, motion blur, destellos de lente, corrección de color, etc para mejorar la experiencia visual del juego, como también colocar que elemento no serán renderizados para ahorrar rendimiento por ejemplo si en algún momento el jugador usa una cámara nocturna, podemos seleccionar muchos objetos que no serán renderizados ya que realmente no serán notados y por lo tanto ahorrar rendimiento.

Poligonostrianguilin

En la construcción de formas tridimensionales, todo los objetos estan formados por figuras bidimensionales interconectadas, a estas figuras se les llaman polígonos. Algunos motores gráficos tal como unity suelen conectar 3 bordes convirtiéndolos en triángulos de polígonos.

Es importante que mientras mas números de polígonos tengas en tu nivel mayor sera el trabajo que tenga que hacer tu computadora para poder renderizar estos objetos, por lo que como diseñador tienes que tener en mente a que objetos les daras mas detalles, que detalles puedes remplazar por normal maps. etc, para utilizar una menor cantidad de polígonos y así ganar mas rendimiento.

Texturas y Materiales

shoe_3_modelsEs una imagen que sera utilizada para darle “color” o “pintar” el objeto 3D, así también poder darle mas detalle. Estas definen el tipo de material que esta hecho nuestro objeto también, por lo menos en la parte visual. El materia es la textura convertida en otro formato sea para poder ser utilizada en el modelo 3d y ofrecer utilizar otras características como normal map, diffuse map, etc.

También es muy común en los videojuegos utilizar texturas UV, lo que es un mapa donde se selecciona cada cara del objeto para que a la hora de texturizarlo tengas que utilizar una sola textura y para tener mas detalles a la hora de texturizarla.

Colisiones

Para que los objetos tengan respuestas físicas en nuestro mundo, es necesario indicarlo como cuerpo rígido (Rigid body) para darle a entender que nuestro objeto no sera estático, si no que sufrirá modificaciones debido al impacto de otros objetos, así también poder asignarle la masa, la gravedad y otros aspectos.

colission

Por otro lado también es importante añadir una colisión a nuestro objeto para establecer cuales son los limites del objeto y a partir de cual contacto el objeto sufrirá consecuencias por la física, por ejemplo si queremos crear una pared ya que esta no sufrira cambio físico, sencillamente le ponemos una colisión y adaptamos los bordes al tamaño de la pared, pero si por otro lado tenemos una caja que puede ser tranquilamente arrastrada por un jugador necesitaremos el rigid body y la colisión.

Es importante que optimizes a la hora de seleccionar las colisiones, ya que para que estas funcionen la computadora tiene que trabajar para hacer cálculos y mientras mas objetos colisionen a la vez mas trabajo tendrá por hacer, por lo que si puedes utilizar colisiones con menos polígonos o box colliders sera muy eficaz para el rendimiento.

 

¿Porque falle por años en el diseño de Niveles?

Aviso: Este articulo es una traduccion de Why I Failed for Years at Level Desing and Game Environments publicado en el blog de World of level desing, Mi objetivo es traerles al español, la informacion de ese blog, ya que me parece muy util para cualquiera que quiera iniciarse en el diseño de niveles.


Dando una mirada durante la ultima decada, es facil para mi ver en lo que estuve mal y lo que pude haber hecho mejor al aprender sobre diseño de niveles y ambientes de juego. Es facil para mi decir lo que pude haber evitado y en lo que podria haber enfocado mi tiempo.

Los errores y fallas que cometi son extremadamente valiosos, a pesar de que parecia que no iba a poder salir adelante. Al final, las experiencias me hicieron aprender mas de lo que pensaba y no debia renunciar a ellas.

Pero, me hubiera gustado que alguien me dijera un par de cosas para la creacion de niveles y ambientes de juegos. Algunos principios para tener en cuenta y metas que debia seguir, asi podria haber evitado reinventar tanto la rueda y encontrarme creando un proyecto tras otro sin haber terminado ninguno.

Uno de los obstaculos mas grandes que tuve era: Que necesitaba centrarme en la Planificación. Queria saber que era todo lo que iba a crear antes de empezar a trabajar en mis proyectos. Creia que si tenia la base correcta, el plan adecuado para ejecutarlo, me ayudaria a terminar.

Planear no me llevo a finalizar todos mis mapas y no hara que termines todo lo que empiezes. Pero me di cuenta que la planificacion es un parte muy importante de un proceso largo.

Planear todos mis diseños de niveles y ambientes de juego, me ayudaron a saber exactamente lo que quiera crear antes de que abriera el editor de niveles o una aplicacion de modelado. Hay todavia un monton de alegres y no tan alegres accidentes alrededor del camino, pero por lo menos se que Tenia la base para trabajar, Algo en que confiar.

Planificar me dio la confianza para seguir una idea.

El proceso de Planificacion es llamado Preproduccion y al terminar con el, te encuentras con el “Blueprint” tambien llamado AnteProyecto. Un documento para el ambiente de tu juego o nivel. Este documento detalla lo que vas a crear. Como se va a ver, como se va a jugar, la ubicacion donde se desarolla tu nivel, los niveles de alturas, los objetivos, los propositos, referencias, historias y el desarrollo visual.

En mi opinion el diseño de niveles y ambientes de juego se reduce a  4 cosas:

1. Planificacion o Preproduccion: Tener un plan apropiado, la vision de la idea para poder materializarla con un proposito mas concreto.

2. Visual / Artistica: Cosas como la teoria del color, calidad estetica, iluminacion, arquitectura y paisajes. ¿Que hace un ambiente visualmente placentero?

3. Jugabilidad: Esto incluye ritmo, flujo, objetivos, añadir piezas, scripts y la progresion del jugador.

4. Tecnico: Conocimiento de los programas: Modeladores 3D, Editores de Niveles, Editores de Imagenes, Escultores, Etc.

Pero ahora vamos a enfocarnos en el proceso de planificacion.

¿Porque pienso que planear es importante?

Yo creo que una planificacion apropidada; una estrategia para el ambiente del juego o el diseño del nivel es el fundamento de un buen mapa. Es la base en lo que todo lo demas puede ser construido. Es como la estructura de una casa, si es defectuosa en algun momento se derrumbara. El Nivel que es bien planeado tiene mucha mas posibilidades de ver la luz del dia, que una vaga idea tenida dentro del editor.

Un par de preguntas tienen que ser respondidas cuando creas el ambiente de tu nivel:

  • ¿Esta idea vale mi tiempo?
  • ¿Esta idea es interesante y unica? Si la respuesta es no, ¿Que puedo hacer para mejorarla?
  • ¿Donde se desarrolla el ambiente?, ¿En que Ubicacion?
  • ¿Como voy a lograrla?, ¿Que necesito aprender para poder lograrlo?
  • ¿Cual es la historia del ambiente? ¿Tiene sentido con el tipo de juego?
  • ¿Es un mapa de un solo jugador o de multiples jugadores?
  • ¿Necesito crear assets personalizados, Texturas? ¿El motor me provee todo lo necesario?
  • ¿Que motor grafico y editor de niveles usare? ¿Que alternativa tengo si el editor no me permite hacer lo que pienso?
  • ¿Cual es el periodo de tiempo en el que se ambienta?
  • ¿Hice una busqueda sobre la historia y ubicacion de lo que quiero hacer?
  • ¿Cual es el tema del ambiente?
  • ¿Cual es la paleta de color que quiero usar? ¿Esta tiene un impacto emocional para el jugador?
  • ¿Que es lo que quiero que sienta el jugador al jugar en este ambiente?
  • ¿Cuales son los objetivos para que el jugador complete?
  • ¿Como sera el flujo y el ritmo al jugar en el mapa?
  • ¿Como voy a abordar el proyecto? ¿Que hare durante las etapas de produccion?
  • ¿Cuale es el nucleo, la esencia del ambiente?
  • ¿Tengo una coleccion de fotos con referencia a la arquitectura, iluminacion, elementos, ubicacion del ambiente?
  • ¿Cual es el proposito del proyecto? ¿ Porque estoy trabajando en esto?
  • Algunas Mas…

Hay muchas mas preguntas que deben estar respondidas antes de que abramos el editor. No importa que tan chico o grande sea el proyecto, Yo siempre me tomo mi tiempo planeando.

Esta es la manera en la que solia diseñar mis niveles: No habia planificacion, cuando tenia una idea, iba directamente al editor.

Yo no investigaba ni buscaba referencias de fotos, yo no exploraba varios diseños, No tenia una historia, no le asignaba un estilo visual ni un objetivo, No sabia como se veria el nivel al estar terminado.

Por un par de horas era divertido. La idea comenzaba a tomar forma dentro del editor, estaba emocionado. Despues lentamente el mapa entero comenzaria a colapsar. Cuando me encontraba con mi primer problema o decision, No sabia lo que tenia que hacer.

Mas y mas preguntas comienzan a aparecer durante la produccion. Yo no tenia respuestas para ellas porque yo no tenia una base de la idea. Yo tomada decisiones en el aire, mientras se me ocurrian ideas y las trataba de incorporar, pero cuando el nivel empezaba a crecer en escala y complejidad, me empezaba a sentir abrumado, trataba de cambiar el diseño y la fundamentacion, Por lo que se terminaba destruyendo el proyecto.

Ejemplo de un horrible mapa en el que habia trabajado en el paso, Sin plan y poca ejecucion, comenzaba a frustrarme con el mapa y nunca lo terminaba. No tenia una vision de como queria que luciera el nivel ni como seria la jugabilidad, lo que resultaba en cambiar texturas, diseño y jugabilidad durante toda la produccion.

Entonces, cuando ya no tenia sentido continuar con el mapa, me frustraba y decidia abandonar el mapa.

Mas tarde comenzaba una nueva idea, un nuevo proyecto, pensando que esta vez seria diferente, esta vez saldria adelante y lo finalizaria, de todas formas nada diferente pasaba, el proyecto volvia a fracasar por lo que comenzaba otra nueva idea. Esto me paso por varios años, porque yo no cambie mi forma de trabajo.

Como me senti tan cansado y frustrado de no terminar ningun mapa, llegue al punto donde decidi dejar la creacion de mapas, Si, me rendi.

¿Que cambio?

Me canse, Llegue al punto en el que queria alejarme del diseño de niveles, me dije a mi mismo que deberia proponerme otras cosas, Ya que el diseño de niveles no era para mi.

Asi que decidi estudiar Filmacion, dibujo, pintura, arquitectura, programacion, diseño web, fotografia, negocios y administracion. Termine consiguiendo un Bachiller de artes finas en Animacion computarizada.

Pero el problema era que mi amor por el diseño de niveles no desaparecia. Durante todos mis estudios queria diseñar niveles y siempre tenia nuevas ideas que queria crear. Queria poder ser un diseñador de niveles, queria eso en mi vida. Estaba obsesionado con el diseño de niveles, pero lo oprimia y no le daba importancia.

Durante mis estudios de animacion, todo comenzo a encajar. Para nuestras tesis teniamos que crear un Corto de 2 minutos, pero antes de modelar, texturizar o animar, teniamos que tomarnos un semestre entero creando la historia, diseñando los personajes, objetos, el estilo visual y el entorno, todo eso en papel. Teniamos que planear todo eso antes de abrir Maya. Tenia que presentar todo eso para recibir una opinion y criticas. Fue un semestre entero sin modelar, animar, ni iluminar, Solo preproduccion por una historia de 2 mintos. ¡Un semestre entero!

Si esto tenia que hacer por un corto de 2 minutos, me di cuenta que tenia que hacer lo mismo para mis diseños de niveles, Aunque sin tomarse un semestre entero. Decidi que necesitaba crear una planificacion del flujo de trabajo que puediera usar para cada proyecto.

En mi ultimo año de estudios, donde tenia que trabajar en mi tesis, hice planes para hacer un viaje a Switzerland durante las vacaciones de verano, en ese viaje algo me hizo darme cuenta que tendria que dedicarme al diseño de niveles y que ya no podia ignorarlo mas.

Lo pudes ver, nunca quise animar. Me di cuenta que mientras mas animaba, menos queria hacerlo, estudiar esto me hizo darme cuenta como amo el diseño de niveles.

Despues que volvi de mi viaje, Empeze y termine un mapa en tan solo 3 semanas. Para mi esto fue una gran revelacion.

Empeze a tomar una mirada mas cercana en lo que necesitaria hacer para planificar el procesos de trabajo para mis niveles. Mi siguiente gran avance fue diseñar un nivel en 11 Dias.

dm-hasophia_02

Es por eso que me enfoco principalmente en la produccion, porque creo que para que una idea pueda ser correctamente elaborada, tiene que tener una base solidad.