@ agnasg

agnasg


Diseño y Modelamiento de Niveles

29-08-2009 8:13 AM

Este parece ser un punto insignificante en mi lista de los elementos de un MMO pero es el elemento al que le he dedicado más tiempo (después de la programación). Implica además una de las decisiones más importantes en la implementación porque forma parte de los elementos gráficos del juego. Es decir, es lo primero que el jugador va a ver.

En la jerga de diseño de juegos un “nivel” es un área o zona del juego. Puede ser una ciudad, un laberinto, un área montañosa. Suele estar asociado a un nivel del jugador o personaje, y normalmente cuando terminas o superas un nivel (zona) entonces tu personaje sube de nivel. A eso se debe que una área del juego se llame nivel.

Se requieren habilidades y destrezas (más allá de lo que voy a discutir aqui) para diseñar e implementar un nivel. Esto no debe tomarse a la ligera porque será el ambiente en el que los personajes van a interactuar, la geográfía del juego, y, como ya he dicho, uno de los primeros elementos que el jugador va a ver.  Por ello el diseñador y las herramientas que utilice son fundamentales para éxito de esta tarea.

Los niveles son desarrollados por una persona con el  rol de diseñador de niveles (level designer) en el equipo de desarrollo. Es un trabajo de tiempo completo, requiere tanto tiempo como la programación o el desarrollo de los modelos. Alternativamente algunos juegos generan automáticamente los niveles. Hay soluciones programáticas (o procedimentales) para hacer niveles en forma automática. Según se entiende, una de las herramientas del motor gráfico Love (desarrollado por Eskil Steenberg) puede generar niveles en forma automática. Sin embargo,  es necesario hacer retoques, seguramente. Los juegos desarrollados por las grandes compañias  generan la geografía montañosa a través de estos algoritmos. Las ciudades, castillos, casas, laberintos son construidos mayormente a mano.

Las herramientas de modelamiento de niveles están asociadas al motor gráfico que se va a utilizar. Las mayoria de los motores gráficos tienen un modelador de niveles, porque uno está atado al otro. Yo comencé con Qoole, un modelador que producía niveles compatibles con Quake 2 porque mi primer motor gráfico utilizaba ese formato.  Está descontinuado y es difícil encontrarlo en la real  (yo tengo una copia por si alquien la necesita). Estuve utilizando en distintos momentos Radiant en muchas de sus versiones hasta la última y más estable GTKRadiant (un buen tutorial aqui). Para Nunsoot inicialmente utilicé irrEdit principalmente porque el motor gráfico es irrlicht, ambos desarrollados por ambiera. No es particularmente potente, pero es muy fácil de usar y se integra sin problemas (logicamente) con irrlicht. Ahora estoy utilizando Blender3D

Hace años había múltiples alternativas de editores de nivel gratis pero ahora eso se ha reducido a los mencionados GTKRadiant, irrEdit y Blender3D. La selección de cuál usar depende de los gustos particulares de cada quien. Lo que no recomiendo es tratar de programar uno nuevo, cosa que estuve haciendo hace 10 años con resultados mixtos. Una ventaja de irrEdit es que permite la adición de plugins y programación de mesh a través de un lenguaje script (squirrel) Esta característica es interesante al menos en mi caso, porque me permite automatizar la creación de ciertos mesh. Por ejemplo, las escaleras no las hago a mano ni en Blender (el modelador  de objetos) sino con este lenguaje. Por cierto que squirrel es uno de los lenguajes de scripts que estoy considerando para el juego. La otra alternativa es Lua (el usado por Wow) pero esa es historia de otro post…

Este post forma parte de una serie sobre los componentes de un MMO. Estoy poniendo como ejemplo Nunsoot, mi MMO. Más detalles aqui y aqui.

Una respuesta a “Diseño y Modelamiento de Niveles”

  1. Lista de Componentes de un Juego MMO - Programacion de Juegos MMORPG dice:

    […] Diseño y Modelamiento de Niveles […]