@ agnasg

agnasg


Notas sobre el diseño del juego

31-05-2009 4:55 PM

Leyendo (aterrorizado) las notas que han aparecido recientemente sobre Richard Bartle y sus comentarios (igualmente aterrorizantes) sobre Stranglethorn Vale, me detuve, paralizado, estupefacto, sumido en profundas cavilaciones, a pensar sobre mi permanencia en la escena de desarrollo de juegos, y, más desconsolador aún, en el diseño de juegos. Sobretodo porque en este momento estoy escribiendo (e inminentemente voy a  publicar) mi mmoprg (nunsoot) (el pre-pre-pre-pre-beta). ¿Estoy cometiendo la peor estupidez de mi vida? ¿es posible cometer una estupidez peor que las que he cometido hasta ahora? ¿existe algo que no sea estúpido en escribir y programar un mmorpg?

Para hacer el cuento corto, Stranglethorn Vale es el área de world of warcraft (Wow) peor diseñada, más aburrida y con las más tontas misiones del juego. Sin embargo, Mr. Richard Bartle dice que hay que ser un diseñador de verdad para percibir la belleza que existe detrás de su diseño, y que apenas hay unas 20 personas en el mundo capaces de eso (sic).

Todo esto me lleva a pensar que quizás estoy equivocado en una o dos cosas sobre diseño. ¿La idea es que un área sea divertida, no? Claro, la definición de diversión aqui es imposible. Así que dado que yo soy el diseñador, yo defino lo que es divertido y lo que no. Pero ¿y si me equivoco, como lo ha hecho Mr. Bartle? Hay todo tipo de opiniones sobre esta pequeña área de Wow, incluyendo la de su propio autor que con toda una lógica bien sofisticada y en el solemne escenario de la conferencia de desarrollo de juegos, trató de explicar lo que trataron de hacer con las misiones, y cómo fracasaron rotundamente en la mayoría de los casos.  (Ver también a Tobold y aqui).

Al final del día mi conclusión es la misma de Columbo: si tus colegas son más listos que tú vas a tener que esforzarte más. Mis respuestas serán debatidas seguramente, pero no tengo intención de facilitarles la tarea. Si al final el resultado es un Stranglethorn Vale, al menos será más divertido. En mi concepto. Para mí.

Y una forma de estar preparado es tener respuestas para todo. O casi todo. Por ejemplo:

Contenido

¿Una gran misión o cientos de misiones? Ambos. Una forma de contar un cuento en los juegos (y especialmente en los MMOs) son las misiones, porque conducen al jugador por el camino correcto, que es maximizar el leveling o subir de nivel (o en el caso de Nunsoot aumentar las habilidades y destrezas) . Pero aquí tendremos un ángulo interesante: las misiones no son estáticas sino dinámicas y dependientes de la clase. De esa forma es poco probable que una misión sea ejecutada de la misma forma dos veces. Esto genera un problema, y es que hay un buen porcentaje de jugadores que no quieren pensar cómo resolver una misión, sino que encuentran divertido leer una guia en internet y ejecutar las instrucciones. Pero si las misiones son dinámicas las guías van a ser más complejas o quizás muy difíciles de escribir. Lo que me lleva a otro elemento del juego. Las guias incorporadas en el juego, es decir, una base de conocimiento, alimentada en parte por los mismos jugadores. ¿Por qué forzar a los jugadores a hacer ALT-TAB y buscar la información e ir a thottbot.com o wowwiki (o sus equivalentes) si eso forma parte de la experiencia? Esta solución tipo Luminary ofrece por lo demás otras posibilidades. ¿Por qué no incorporar el contenido de las misiones a la base de datos de conocimiento y hacer que ambas se complementen y retroalimenten? Inclusive, la base de conocimientos puede jugar un rol para hacer el contenido de las misiones más dinámico. Me refiero a que la base de conocimiento se comporte de acuerdo al avance que tenga el jugador. Esto va a generar un juego muy diferente al común denominador de los MMO actuales. Nunsoot no tendrá psis (personajes pseudo inteligentes) con un signo de exclamación en la cabeza y el cuadro de texto con una misión de matar 10 ratas, del estilo Free Realms o Wow.

Jugador versus jugador (JvJ)

Ajá, este es un tema espinoso, y uno de los que dividen al mundo MMO en dos partes iguales. Si el juego tiene mucho JvJ los jugadores novatos y casuales odiarán el juego, si tiene muy poco los jugadores avezados y experimentados lo calificarán de tonto. Una solución a esto es crear el modo JvJ, de manera que si un jugador quiere combatir a otros jugadores debe cambiar su modo de juego en el panel de configuración. Es lo que se ha dado por llamar JvJ consensual (suena sexi). Otra solución no excluyente es crear zonas JvJ y servidores JvJ. Y aún otra solución es que el juego sea 100% JvJ como Shadowbane o recientemente Darkfall.

A mi no me simpatiza JvJ porque siempre existen los jugadores que piensan que la única diversión es matar a otros jugadores. Recuerdo que eso me pasaba 5 segundos después de conectarme en Battlefield 2142. De hecho, como cada vez que me conectaba mi personaje aparecía en el mismo sitio, el otro jugador fastidioso sólo tenía quedarse esperando a que yo apareciera para ejecutarme a quemarropa. Muy divertido para él, pero molesto para mí porque no me permitía jugar. ¿Resultado? Más nunca jugué el juego.

Darkfall tiene como solución agregar ciertas penalidades. Si matas a otro jugador quedas marcado por un determinado tiempo como asesino o algo por el estilo, así que cualquier otro puede matarte sin recibir penalización. Pero esto se presta a ciertos problemas. Además JvJ es una competencia entre quién tiene mejor equipamiento. Pero de antemano eso lo sabemos: tiene mejor equipamiento el jugador que más ha jugado. Wow y otros juegos tratan de balancear esto agregando infinitas posibilidades de armamentos y destrezas de forma tal que es posible (poco probable pero es posible) que un jugador jugando menos pueda ganarle a otro jugador que ha jugado más. Todos sabemos que eso es falso pero los juegos se esfuerzan genuinamente en hacernos creer puede suceder. Así que cuando un jugador con más experiencia mata al novato hay la ilusión de que quizás fue mala suerte. La verdad (triste pero es la verdad) es que no. El jugador con más experiencia tiene mejor equipamiento (a menos que sea idiota) e inevitablemente eliminará sin miramiento (a menos que sea idiota) al novato. Así que JvJ es un componente del juego donde los experimentados se divierten a costillas del novato. Interesante pero no es divertido para el novato. Así que se me ocurrió una idea. Si quieres JvJ juega Darkfall o cualquier otro juego con JvJ. Mi juego no tendrá una competencia para determinar algo obvio como lo es quién tiene más experiencia o quiénes son los jugadores idiotas. Ese juego lo jugamos en nuestras vidas cotidianas y no le veo sentido implementar un juego idéntico en Nunsoot.

Mission Architect system

O un sistema para que los jugadores creen sus propias misiones. City of Heroes lo tiene y recientemente lo deshabilitó porque algunos jugadores astutos (y tramposos) lo utilizaron para aumentar su velocidad de leveling (algunos crearon misiones que le permitían avanzar 19 niveles con una sola misión). La idea es interesante. Y muy en la onda de Web 2.0, donde son los usuarios (o los jugadores) los que crean las misiones (el contenido). El problema es que las misiones proveen soluciones a dos elementos del juego: la estructura de la historia y el aumento balanceado de la experiencia y las destrezas. ¿Cómo balancear el mecanismo que permite el balance? Yo creo que voy a dejar esta idea para la versión 3 del juego. En las dos primeras voy a concentrarme en lograr el balance y luego me preocuparé en cómo permitir que que los jugadores creen nuevo contenido sin destruirlo todo. La discusión sobre el tema en el caso de City of Heroes tiene ya 330 páginas, así que hay mucha tela que cortar sobre esto. Un Mission Architect system es algo innovador y una maravillosa idea, pero como todas las ideas innovadoras y maravillosas tienen un peligro inherente. Y si los desarrolladores de NCSoft metieron la pata implementándolo en City of Heroes, prefiero esperar cautelosamente.

Balance

En la mencionada discusión sobre Mission Architect system hay una oración de los desarrolladores de NCsoft que me cautivó: “we want to make clear is in order to keep the game fair, balanced, and challenging, we have to maintain a risk:reward ratio. This is a ratio we’ve spent years attempting to achieve.” El juego debe ser justo, balanceado y generar retos interesantes. Y para ello la rata de recompensa es la clave. Es decir, las recompensas en experiencia o equipamiento son la clave para lograr un juego justo, balanceado y que genere retos interesantes. Menuda tarea tenemos aqui. Es parecido a la suprema aspiración de las esposas, lo único que en realidad buscan, lo único que le piden a sus maridos: “yo lo único que te pido es un cosa, una sola cosita, casi insignificante, lo único que te pido es que me hagas feliz”. Casi nada.

Lograr un juego balanceado y justo, así como lograr la felicidad parecen metas inalcanzables. Blizzard apenas si ha hecho un intento decente para lograrlo en Wow (fracasando estrepitosamente). Yo, por ejemplo, juego un mago. Me gusta ser mago. No quiero ser paladin, jugar cazador ni mucho menos quiero ser guerrero. Quiero ser mago. Si Wow no tuviera una clase mago, yo no jugaría Wow. Porque quiero jugar mago. Sin embargo, la clase mago es la más lamentable en Wow. A veces oigo burlas de otros jugadores que dicen que los magos solo sirven para producir comida (por los hechizos de comida que tienen). Del resto son un cañon de cristal: muy poderosos por un instante, pero basta un pellizco para dejarlos fuera de combate. ¿Qué clase de balance es ese?

Nunsoot tiene una complicación adicional: hay cinco fuerzas o poderes en el juego: la tecnología, la genética, la magia, las fuerzas psíquicas y la fuerza maléfica o brujeria. Y un jugador puede potencialmente disponer de todas estas fuerzas. Así un mago debe tener la misma fuerza de un guerrero de su mismo nivel de experiencia, o equivalente a la de un mutante, y similar a la de un psíquico y así sucesivamente. Y la magia, y especialmente los poderes psíquicos son difícilies de balancear. Por eso la mayoría de los juegos tratan de eliminar o no combinar psi-power con otros (TSR con dungeons and dragons por ejemplo). Aqui no me queda sino prometer: te haré feliz por siempre. Nunsoot será un juego balanceado. Lo prometo con todo mi corazón.

Mecánica

Esta es una difícil. La mecánica del juego puede ser la diferencia entre un juego bueno y uno malo. Los demás elementos pueden ser importantes, contribuir en mayor o menos grado a la percepción general, pero cómo es el juego en sí, en qué consiste una sesión de juego típica, constituye la piedra angular de la permanencia de un jugador o su estampida desbocada. Y es lo que va a motivar o eliminar la poxibilidad de que el jugador se haga la pregunta: ¿para qué quiero jugar este juego?. Un jugador nunca debe hacerse esa pregunta. Si la pregunta es formulada en algún momento de una sesión, olvidalo, fin de la historia, game over man.

Los shooters o juegos donde el objetivo es matar aliens o monstruos tienen básicamente dos botones (aparte de los de movimiento): ctrl para disparar y space para cambiar de arma. En los MMOs se ha vuelto un standard las barras de comandos como las de Wow, que son configurables, y donde podemos colocar los botones que activan los diferentes armas y los diferentes hechizos. Crónicas de spellborn (COS) agregó un dial para ir circulando de un spell a otro, y otros juegos han agregado artefactos similares para facilitar o complicar el sistema. A mi me gusta la idea del dial de COS, aunque a los comentadores no les gustó para nada. Yo estuve diseñando un juego donde el panel de control juega un rol fundamental: hay que aprenderlo a usar para poder utilizar las armas. Y quiero incorporar esa idea a Nunsoot. Es básicamente un panel con 24-32 botones que puede ser configurado, y que cambia según la actividad que estemos haciendo, combate, contrucción de armas o pociones, dirigiendo nuestro grupo o comunidad, etc.. Tendrá múltiples elementos configurables como velocidad y potencia del armamento de forma que se puede ajustar dependiendo del enemigo, y otras caracteríticas configurables que dependan del arma, hechizo o poder mental. Sé que la mayoría de los jugadores van a automatizar esto con macros, pero la idea es que el combate sea diferente dependiendo del tipo de enemigo. Si todo se reduce a tocar un botón y esperar que el monstruo muera vamos a tener una versión diferente de [incluye tu MMO favorito aqui] y no es la idea. Además Nunsoot, como ya he dicho es altamente dinámico, y  así como las misiones son cambiantes (o mutan constantemente) iugualmente los enemigos lo hacen. Es decir, si con un hechizo mataste a un esqueleto es probable que lo mismo no te funcione con el siguiente esqueleto. Aun cuando ambos son esqueletos son diferentes. Sus estadísticas cambian. Y sus poderes también. ¿Suena suficientemente aterrador?

Nunsoot es un juego de contenido. Los diseñadores han dicho que los jugadores no quieren leer la historia sino salir a matar zombies, y yo estoy de acuerdo con eso, pero resulta ser que no todos los zombies son tus enemigos y que algunos de ellos son necesarios para que elimines a los esqueletos. Y si no estás enterado de eso, lo esqueletos te harán la vida imposible más adelante en el juego. Entonces tendrás que regresar con los zombies y ganártelos como aliados nuevamente. Toda esa complicación te la podrás evitar fácilmente si lees la historia de las misiones y la historia que hay detrás del juego. De hecho, el faq que está en el site dice que Nunsoot desciende directamente de los MUDs que son juego de textos, donde la historia lo es todo. O casi todo. Conclusión: Nunsoot es como la aventura original. El juego es la aventura.

Combate, Geografía y psis

EL resto quedará para el próximo post…

Diseño del Juego

31-05-2009 4:37 PM

Este es un post ambicioso. Pretende presentar el diseño de mi juego MMO, en un solo capítulo, de un solo tirón, sin más miramientos. Si Ud. no ha leído nunca un documento de diseño le recomiendo como primera tarea hacerlo. Y si es el documento de diseño de un juego, mucho mejor. Este documento es la clave de todo proyecto. Dice el objetivo del proyecto, las metas que se quieren lograr, y describe punto por puntos los elementos que componen el juego. Dado que es el documento de diseño puede ser modificado en el futuro. Al final aparece una tabla con sus revisiones tal como debe tener todo documento en un proyecto.

Buena parte de esta información aparece en la página del juego, el cual he dado por llamar Nunsoot. Aqui he agregado algunos comentarios, que extenderé en el post siguiente donde discuto más en detalle desde el punto de vista de desarrollo e implementación el diseño.

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.

Para presentar el diseño voy a trabajar en base a componentes u objetos (en cada aspecto imaginable del proyecto). Describiremos entonces cada uno de los componentes, y cada uno de los componentes en sus componentes hasta llegar a una unidad atómica (indivisible).

Motivación

Diversión. Mi diversión diseñando y programando el juego, y la diversión de los jugadores. En ese orden. Se ha dicho que hacer un MMORPG no es divertido, y efectivamente no lo es, pero como todas las cosas en la vida, eso tampoco es un absoluto. Por experiencia sé que el desarrollo de un juego es una pesadilla, pero tiene sus momentos divertidos. Muy divertidos. Ya he dicho, inclusive, que la felicidad para mí es programar un juego 7×24 (no encontré la cita, lol) así que esto no es de extrañar.

¿De qué se trata? ¡Rápidamente!

Es un MMORPG que se desarrolla en un universo en expansión. Los personajes practican decenas de habilidades mágicas, psíquicas y genéticas en mundos llenos de fantasía con fascinantes e intrincadas tecnologías luchando contra enemigos terroríficos.

El juego

Es un MMORPG (juego de rol multijugador en línea) con elementos de fantasía, ciencia ficción y terror. Se desarrolla en una galaxia dominada por 4 fuerzas galácticas, varios imperios locales con poder sobre sistemas planetarios, y los gobiernos autóctonos. Aun cuando el personaje puede viajar de planeta en planeta, o de un sistema a otro, este no un juego espacial o galáctico. Las naves espaciales solo sirven como medios de transporte similar a un tren entre una ciudad y otra. El juego incluye virtualmente 20 razas, pero son 3 las principales. El jugador debe seleccionar entre 5 clases, que consisten en un predespacho, una caja de destrezas organizadas adecuadamente y con un esquema de desarrollo para cada una. Nada impide a un personaje desarrollar destrezas que no corresponden a su clase como es en la vida real.

Las clases  vienen definidas por las fuerzas naturales y sobrenaturales que gobiernan el universo. Así tenemos que el mago está especializado en las fuerzas mágicas, el psíquico domina las fuerzas mentales, el mutante utiliza la fuerza genética, el brujo basa su poder en las fuerzas oscuras, los monstruos utilizan las fuerzas maléficas. Un personaje puede aprender y utilizar estas destrezas a través de su profesión. Así el  guerrero puede usar hechizos y la fuerza mental como armas, y el científico puede convertirse en un mutante. El adepto puede cultivar las fuerzas oscuras y mágicas simultáneamente, y el peregrino puede especializarse en fuerzas mentales y en mutaciones. El jugador puede cultivar su profesión en las ciudades, o puede salir a combatir las fuerzas enemigas, realizar misiones, establecer alianzas y crear fortalezas.

El jugador puede formar un clan y dedicarse a la conquista y explotación de territorios. Para ello deberá construir su clan, banda o grupo armado (de no más de una docena de miembros, que pueden ser psis o otros jugadores). Una vez en poder de su territorio debe administrarlo, controlarlo y defenderlo.  Un jugador puede llegar a controlar pueblos enteros y todos su recursos,como por ejemplo las casas y hoteles así como la casa de subastas, tiendas y otros medios productivos que se encuentran en él. Por la explotación de estos recursos  percibirá comisiones e impuestos, pero mientras más lucrativo sea su territorio más apetecible será para los otros jugadores. Deberá también pagar tributo al gobierno local del planeta o ciudad estado cercana. Y debe mantener algun código de coducta apropiado y en sintonía con los poderes locales, so pena de ser atacado y destruído sin piedad.

¿Cómo se llama el juego?

Nunsoot. O Kap k Veit encuentra lo que no busca y busca lo que no encuentra. O quizás Siguiente Mundo. O Ciudades Lejanas. O quizás todos estos nombres juntos.

El Universo

La región de Nunsoot (conocida en los ambientes humanos como Ninrood, pero también mencionada alguna vez en la literatura como So uhtaisec) está ubicada aproximadamente en 330º, 20º (son las coordenadas relativas a Bak Sanak, el imperio predominante). Es una región con múltiples gobiernos locales, ninguno de los cuales está bajo el control de los imperios galácticos (el mencionado Bak Sanak y Trnj).

Los sistemas planetarios de Nunsoot

Nunsoot es un grupo de planetas que abarca una región de unos 40 años luz. Los principales planetas conocidos son: Naistel, Etier, Uhn, Tishso, Kotaih, Btra, Enso, Veider Veit Veit, Uhlaa, Soke y So Ximm.  Uhn, Tishso, Kotaih, Btra y Enso son gobernados por el llamado Tetraimperio de Btra, cuya capital está en Bltre (planeta Btra). El resto de los planetas tienen gobiernos locales, y no se encuentran bajo el dominio político de ninguno de los grandes imperios.  Hay otras dos docenas de planetas  menos conocidos distribuidos a través de Nunsoot con una economía menos desarollada. En todos predominan las mencionadas tres razas: Btra, Etier y So Ximm. Mantienen un volumen bajo de intercambio comercial mutuo, tipicamente por el orden de los 900 millones de xaaxs anuales. Bltre es la ciudad de inicio de los jugadores en la primera versión del juego.

Las razas de Nunsoot

Nunsoot fue originalmente colonizado por una mezcla de culturas. Algunas provenientes de Trnj (asentadas básicamente en Btra) y otras de Bak Sanak. La mayor parte de esta región está poblada por los descendientes de las razas que se cree tuvieron su origen en los planetas meridionales de Xeteka, un grupo estelar cercano. De estos planetas proviene toda la tradición Taisec, uno de los ancestros de los colonizadores de Bak Sanak. Es por eso que Nunsoot es a veces conocido como So uhtaisec que significa “que pertenece a Taisec”.

La raza Btra es descendiente de los Trnj, una raza originaria de una región con el mismo nombre, pero ellos no son los que conforman la casta dominante. Los aristócratas en el planeta de Btra son descendientes de So Xinn, un planeta cercano. Los soldados y guerreros son de Naistel y del planeta Etier. Los habitantes de Btra autóctonos normalmente son agricultores y transportistas. A veces llegan a ser funcionarios de bajo rango. Miden unos 5 pait ko (equivalente a un metro 25 cmts.), son completamente vegetarianos, pero tienen un particular metabolismo que les permite comer una sola vez al dia. Son naturalmente pacíficos y metódicos, por lo que normalmente no son buenos soldados, siendo por el contrario perfectos para realizar labores administrativas. Se establecen en extensas y bien planificadas ciudades agricolas. No han desarrollado una tecnología propia, por lo que dependen de sus vecinos etier, con los que mantienen un intercambio económico intenso. Usualmente los Btra son considerados menos evolucionados que los Etier, y estos a su vez menos evolucionados que los So Ximm. La civilización Btra tiene unos 50000 años de antigüedad, mientras que la Etier y So Ximm está por el orden de los 10000 años.

Quién es quién en Btra

El poder en Btra es ejercido por una intrincada burocracia de Secretarios, Jefe Zonal, Jefe de Tribunal, Alcalde, Embajador Local, Representante de Primera, Capitán de la Guardia, Adalid del TetraImperio, Cónsul, Gobernador Imperial, Parlamentario del Tetra Imperio, etc..

Aparte de todos estos funcionarios existe el Embajador de Geseny, el Embajador de Etier, el Embajador de So Xinn, el Embajador de Naistel, el Embajador de Sanakia, el Embajador de Whet#han, el Embajador Imperial de Bak Sanak y el Embajador Imperial de Trnj.

Adicionalmente, como Btra fue alguna vez una colonia de Naistel, existe un Jefe de las Huestes de Naistel, que en realidad no comanda a ningún ejercito, pero ejerce influencia sobre el gobierno, debido a la tradición que se remonta a los tiempos coloniales. Por otra parte están los descendientes de los Reyes que gobernaban a Btra cuando era una colonia, que aun cuando ya no tienen poder, representan una tradición aristocrática. A todos ellos se les denomina los Descendientes. El más viejo de ellos que vive en la actualidad es llamado el Descendiente Etier.

Las clases

Mago

El mago tiene a su disposición un arsenal de hechizos y conjuros para la protección y el ataque.  Cada hechizo puede ser perfeccionado e incrementado en su nivel a través de la práctica o a través de otros hechizos, o rituales. Los rituales pueden ser aprendidos, adquiridos o recibidos de un enemido que lo posee y al morir lo hereda a su destructor. English: Mage.

Guerrero

Especializado en las artes de la guerra, el guerrero tiene a su dispoción un amplio abanico de armas y equipamiento para el combate. Resulta invencible en la confrontación cuerpo a cuerpo, y tiene la agilidad y fortaleza para llevar a cabo largas batallas. Ninguna otra clase puede adquirir la rapidez en el uso de armas, su puntería y la resistencia en el combate. English: Warrior.

Psíquico

El psíquico posee poderes mentales que lo colocan a la cabeza de las clases en Nunsoot. Con percepción psíquica puede anticipar la ubicación de los enemigos. Puede usar la telequinesis para mover objetos, deshailitar armas a distancia, tomar control de la mente de sus enemigos y convertirlos en esclavos. El psíquico aumenta su poder solamente a través del uso de sus poderes. English: Psionicist, mental power.

Brujo

Esta es una de las más temibles clases de Nunsoot. Sus poderes basados en las ciencias ocultas le permiten trasladarse de un sitio a otro sin ser detectado, paralizar a sus oponentes, cambiar el ambiente, el clima, y hacer que le favorezca. El brujo puede convertir a los monstruos y su aliado y utilizarlos como arma. English: Wizard.

Mutante

Especializado en la genética, el mutante también conocido como el Científico en Genética (English: Biomancer), puede adquirir las habilidades y fortalezas de cualquier raza o monstruo, y llevar al límite el cuerpo. Controla al máximo decenas de transformaciones corporales, para adquirir más fuerza, más rapidez, más agilidad, más resistencia. Los mutantes pueden correr como el animal más rápido, volar como el pájaro más veloz, nadar como un pez. Su fortaleza no tiene límite, y su poder de regeneración lo convierte en una clase casi indestructible.

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.

Revisión Fecha
1.0 04-06-09
1.1 09-06-09

Modulo de Inteligencia Artificial

31-05-2009 4:33 PM

Lo que nos interesa aqui es un conjunto de rutinas que controlen a los NPCs (o personajes pseudo inteligentes, o personajes que no son controlados por el jugador). Estas rutinas deben manejar la búsqueda de caminos (pathfinding) de manera que el NPC se mueva de una forma normal de un punto A a un punto B, y, además de eso, y quizás hasta más importante, controlar la conducta general del NPC.

La conduca del NPC incluye cosas tan obvias como qué debe hacer el personaje cuando no está haciendo nada (moverse de un lado a otro, por ejemplo) o qué debe hacer cuándo es atacado. Los NPC en muchos juegos reaccionan siempre igual: devolviendo el ataque en forma inmediata. ¿Pero eso es lo normal? No necesariamente. De hecho, cuando una persona es atacada por sorpresa no sale corriendo a devolver el ataque, lo más razonable es tratar de buscar refugio para determinar la naturaleza del ataque. Pero, hay situaciones en que hay una tercera posibilidad, tratar de atacar para luego determinar que es mejor buscar refugio. ¿Qué debe hacer el NPC? ¿Cuál de las tres posibilidades? Debe escoger. Bien el módulo de inteligencia artificial debe manejar estas situaciones.

En internet hay multitud de discusiones sobre el tema, y no es el objetivo discutir aqui sus intrilinguis, pero sí quiero mencionar la dirección que mi MMORPG tomó y la implementación que hice.  Se trata de un concepto más bien viejo, y que ha sido utilizado en diversos tipos de juegos. Los árboles de decisión. Este artículo de gamasutra explica con suficiente claridad el tema, y también esta discusión de los árboles de decisión en el juego Spore. Los árboles de decisión permiten organizar y darle jerarquía a los aspectos que el NPC debe considerar antes de adoptar una conducta. En el ejemplo citado, el NPC debe evaluar el tipo de ataque que esta recibiendo, la fuerza del ataque, y si es posible y hay disponible información al respecto la experiencia que tiene el NPC sobre el atacante. Por ejemplo, la primera vez que fue atacado por este jugador la respuesta fue atacar frontalmente, pero el combate se volvió peligroso por lo que decidió huir, logrando escapar. Si el jugador comienza a perseguirlo y lo encuentra iniciando un nuevo ataque ¿es lógico que el NPC vuelva a iniciar un ataque frontal? Lo razonable es huir nuevamente y buscar apoyo de inmediato.

Otro ejemplo del tipo de respuestas interesantes que un NPC puede tener es buscar refugio temporal en el momento que inicia un ataque. Cuando estamos atacando y nuestro enemigo nos está disparando, lo normal es acercarse rápidamente si pensamos que podemos vencer, pero esquivando el ataque, y si es posible, cubriéndonos con un árbol, una roca, o lo que haya disponible. Este tipo de conductas hacen más inteligentes al NPC y por ende, más interesantes.

Hay otras posibles soluciones para programar la conducta de los npcs. En internet se pueden encontrar fácilmente, pero las redes neurales es la más prometedora de todas. En algún momento estuve estudiando un híbrido entre árboles de decisión y redes neurales pero resulta muy extenso de implementar. Quizás lo incluya para una versión posterior. Lo que he pensado al respecto es que al final de cada rama del árbol de decisión exista una red neural que produzca la reacción o respuesta final. Es como una red neural preconducida. De hecho uno de los problemas de las redes neurales es que suelen producir algunos resultados incoherentes. Un árbol de decisión al comienzo (¿o al final?) resuelve el problema en un porcentaje aceptable.

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.

¿Somos esclavos del tiempo?

26-05-2009 1:56 PM

La semana pasada terminé un proyecto de 4 meses (4,5 para ser exactos) con lo cual terminó una temporada de 8 meses en proyectos que requerían buena parte de mi tiempo y sobretiempo. Volví a revisar el status del MMO, y aunque a veces me sorprendo de la cantidad de trabajo que le he dedicado (y la cantidad de trabajo faltante), más sorprendente me resulta el status pre-pre-pre-pre-pre-alpha que mantiene después de todo este tiempo.

Yo no estoy solo en este tipo de empresa. Los llaneros solitarios de la programación de juegos son muchos (toda una horda) pero la mayoría tienen resultados visibles. Algunos muy interesantes y desarrollados (Radu de  Eternal Lands), otros muy famosos (Kevan de Urbandead), y otros que rayan en la genialidad y son proclamados como modelos a seguir (Eskil de Love). Yo no tengo idea de cuánto tiempo le dedican a sus proyectos, en mi caso yo tengo disponible unas 10-15 horas semanales (que últimamente he deicado a world of warcraft), que pueden a llegar a 20-24 si estoy realmente motivado. Pero Niko (el desarrollador de Irrlicht y ahora de CopperCube) parece trabajar mucho más que eso, y sin embargo mantiene una compañía. Fascinante. Quizás el problema es que yo estoy cabalgando demasiado en Nagrand (Outlands) y así de verdad mi pre-pre-pre-pre-pre-alpha va seguir en estado pre. Y lo peor de todo es que he estado acariciando la idea de jugar Free Realms (ya creé una cuenta) y Luminary que ha recibido excelentes reviews. ¿Y el site del juego? ¿Y la versión alpha? ¿Cuándo? ¿Somos esclavos del tiempo? Voy a escribir una oda al tiempo… o mejor me pongo a trabajar en el site del juego…