@ agnasg

agnasg


NPCs, PSI y Personajes con profundidad psicológica

30-12-2006 10:25 AM

Un profesor de literatura en la universidad (yo tomé 6 electivas de literatura en la universidad aun cuando estaba estudiando computación) nos dijo una vez que lo que caracterizaba a los buenos personajes en los buenos cuentos es la profundidad psicológica. Dicho en otras palabras, parece haber neuronas, sangre, nervios, vivencias, pensamientos, emociones, recuerdos, sentimientos detrás del personaje conformado y descrito a nosotros a través de meras palabras. Eso hace que el personaje cobre vida y ya no sea un frio conjuntos de palabras en una inanimada hoja de papel. Si no, ¿cómo es que se nos arruga el corazón cuando Aureliano Buendia muere en Cien Años de Soledad? ¿Por qué sufrimos de esa manera con Harry Haller en El lobo estepario? ¿ Qué es lo que nos perturba tanto de aquella desgarbada maestra en la I Latina de Pocaterra? Parecen de carne y hueso. Parecen seres vivientes. Y nos trasmiten y nos contagian con sus emociones.

La ficción interactiva ofrece el valor agregado de, como dice su nombre, la interactividad. No solamente conoceremos al personaje por meras descripciones o sus conversaciones con otros personajes, sino que participaremos en esa interacción, y podemos palpar de primera mano al personaje. ¿Es fácil hacer eso? En lo absoluto. En la literatura (ver aqui, aqui y aqui) aparecen largas discusiones sobre el tema.

En lo que parece haber acuerdo es que un buen NPC (non player character o PSI, personaje seudo inteligente) debe tener al menos lo siguiente:

  • Una buena y sólida descripción

Que agregue información valiosa sobre el papel que este NPC jugará dentro del juego y que sea una pi
sta sobre su importancia.

  • Memoria

Un NPC que no recuerda el hilo de la conversación no tiene ninguna gracia.

  • Inteligencia artificial

Un NPC que se mueve por el mapa, interactúa con el ambiente y que reacciona dependiendo de las distintas situaciones. Las acciones de un NPC no son controladas por el jugador, por lo que debe haber una considerable cantidad de programación para hacerlo actuar independientemente, y ejecutar su propia agenda, a diferencia de un MOB (Movile object u objeto móvil) que son esos monstruos tontos que matamos en algunos juegos multijugador en línea.

  • Un buen sistema de comunicación

Bien sea el preguntar/decir o a través de un sistema de menus que guian al jugador a través de la conversación, el sistema debe facilitar e incentivar la comunicación, evitando en la medida de lo posible que el jugador tenga que adivinar por un conjunto limitado de verbos. En el caso de los menus con las opciones que tendrá el dialogo con el NPC, lo ideal es que este menu se modifique constantemente y que se ajuste a como va evolucionando la conversación. Si se mantiene un limitado grupo de opciones el jugador se cansará rápidamente porque ya no habrá magia, simplemente probar las opciones y eso puede resultar aburrido luego de pocos minutos.

  • Un objetivo

Es algo que puede estar envuelto dentro del rol del npc, derivarse de él, o puede ser algo totalmente distinto. ¿Cómo es eso? Un npc que está en un restaurant sirviendo platos no tiene otro rol “aparente” que servir la comida y nada más. Pero puede convertirse en un personaje clave al ser el que debe entregar un importante mensaje secreto.

  • Un bien planificado e interesante encuentro
>El ifwiki define a un NPC como cualquier tipo de criatura que nos encontramos en la ficción interactiva. Los encuentros son parte clave en todo buen juego, y es lo que proporciona el caracter de sorpresa y magia envuelta en toda buena aventura. El ingrediente fundamental de estos encuentros son los NPCs, y el conjunto de estos encuentros conforman el juego en su totalidad.

Ejemplos de buenos e interesantes NPC son los siguientes: Galatea (comentarios del autor), Galen en Shadows on the Mirror, todos los NPCs en Bad Machine (lean este review, es un juego que realmente recomiendo), finalmente Kissing the Bhudda´s Feet tiene unos NPCs rudimentarios pero que hacen muy bien su trabajo.

La fruta menos bonita tiene mejor sabor

15-12-2006 11:40 AM

Estaba revisando múltiples enlaces antíguos buscando una librería adecuada para implementar un sistema para manejo de strings estáticos (por ejemplos los mensajes de error del juego) y me encontré con viejos tutoriales sobre programación 3D, sombreado, algoritmos de path finding, diseño de niveles, y sistemas de computación gráfica para animar el movimiento de los labios. Wácala. Sentí nauseas repentinas. Durante muchos años estuve implementando un motor gráfico que utilizaba todas esas tecnologías y realmente me cansé de ellas. De hecho, no llegué a producir juego alguno. Ahora estoy desarrollando un interpretador para hacer juegos de ficción interactiva, con la ventaja de que el juego en cuestión, para lo que estoy haciendo el interpretador, está en un 75% listo. Mientras programo el juego, desarrollo el parser y viceversa. Para ello desarrollé hace un par de años un analizador lexicográfico que es capaz de entender instrucciones como “preguntale a Jose que quiere hacer”. Bueno, lo entiende en los mismos términos en que Eliza lo entiende. Más sobre el tema en mis articulos sobre ficción interactiva (ver al lado). El objetivo de todo esto fue edicarme más al nucle de mi afición, que es programar juegos (y programar en C++ que es lo divertido para mi) y menos en todas las tecnologías conexas, como el motor gráfico supersofisticado, los gráficos de 32 bits, etc.. Un viejo axioma que lei hace mucho tiempo y al que nunca le presté atención sino hasta ahora dice: Un juego con menos adornos y menos rimbombante es mejor que ningún juego. Absolutamente cierto.
Enlaces que avanzan y no pierden el tiempo

  • Una guia para migrar de Microsoft Visual C/C++ a Eclipse CDT, un ambiente de desarrollo software libre. ¿Mi recomendación?
    No lo haga. Es preferible quedarse con Visual Studio si su objetivo es producir software para el ambiente Windows.

Mi lista de actividades crece sin parar

12-12-2006 12:48 PM

Mi lista de actividades en estos días ha estado bastante nutrida, preparando un articulo sobre PSIs (personajes pseudointeligentes) o NPC (non-player character), jugando varios juegos (Shadow on the Mirror, Worlds Apart), leyendo reviews de juegos de if (en este instante Pantomime. Ya en algún momento dije que mi hobbie favorito después de programar juegos que nunca termino es leer reviews de juegos de if). He estado ocupado programando el parser de mi juego de ficción interactiva, y leyendo nuevamente con muchísima frecuencia el club de aventuras conversacionales, sitio que recomiendo encarecidamente al lector.

Enlaces que se multiplican como conejos

  • Este es un interesante blog sobre unos de los ingenieros que trabajó en el desarrollo de la opción del menú para apagar la máquina en Windows Vista: 48 personas involucradas, un año de trabajo, un pequeño infierno de reuniones semanas para decidir algo razonablemente aceptable, utilizando como modelo la simplicidad del diseño de las Macs (me refiero a la Apple Mac).
  • Este es una especie de digg.com pero dedicado a los desarrolladores de juego. Parece otra página de propaganda pero vale la pena echarle un vistazo. devbump.com
  • Una colección de texturas gratis. Y aqui hay otra.
  • ¿Es la narración de historias interactiva el futuro de los juegos? U
    n artículo de Chris Crawford que puede resultar realmente interesante. Chris fue el creador de Balnce de Poder un excelente juego de estrategia de los años 80´s. Un sistema para crear historias interactivas, incluyendo un creador de mundos y un lenguaje. La compañía que desarrolló esta tecnología se llama Storytron.
  • Ups, un robot Asimo se cae de una escalera y “pierde el conocimiento”.

Puzzles

27-11-2006 5:38 PM

Un puzzle es un componente básico de un juego de ficción interactiva (o aventura conversacional). Los otros componentes son el personaje, el ambiente, el argumento del juego y los personajes pseudo inteligentes o NPC (non player character).

El ifwiki define un puzzle como un obstáculo que impide al personaje conseguir una meta. En otras palabras, los puzzles afectan o influencian el flujo del juego, e inclusive pueden producir modificaciones en el curso del juego. Los buenos puzzles están bien integrados en el argumento del juego, es decir, tienen sentido. Los malos puzzles no tienen nada que ver con el argumento, son incongruentes o incoherentes. Hacen que el juego pierda sentido.

Los buenos juegos tienen puzzles son de dificultad media. Cuando son muy sencillos el juego puede resultar tonto a menos que algún otro componente del juego sea más importante. Puede haber juegos sin puzzles, pero lograr que el jugador se mantenga interesado resulta más difícil. Un juego donde no hay reto alguno, es aburrido. Quizás el jugador piense que es mejor leer un libro. Un juego sin puzzles no es ficción interactiva. Aunque hay opiniones…
Hay dos tipos de puzzles principales. Los que tienen que ver con el uso adecuados de items en el inventario, y los que tienen que ver con la operación de equipos, máquinas, puertas, etc.. Los juegos de aventura tradicional usaba con muchisima frecuencia los puzzles de inventario. Pero al surgir Myst en los años 90´s, los juegos que involucran aprender a utilizar maquinarias se hicieron más populares (Stephen granade, Los puzzles de Escape from the Monkey Island). Los puzzles de inv
entario involucran utilizar algún item que hayamos conseguido para resolver una situación, para abrir una puerta, o para obtener una información valiosa. A veces este tipo de puzzles requieren que utilicemos un objeto para algo distinto de su propósito normal. Por ejemplo, cuando utilizamos una llave para abrir una lata, o cuando utilizamos un gancho para abrir una puerta.
Al resolver un puzzle, el jugador puede conseguir una recompensa (en los primeros juegos el jugador obtenía puntos), o puede ser que la recompensa sea un nuevo item más valioso, o el acceso a una nueva área del juego. Los malos puzzles en los malos juegos no tienen una recompensa o la recompensa no hace sentido con el argumento del juego. Los puzzles buenos son lógicos o al menos son coherentes con la lógica del juego. Igualmente, los puzzles se deben poder resolver utilizando la información del juego. Un puzzle que requiere que el jugador sepa cómo se juega el beisbol, o cuáles son las reglas del dominó, es injusto y arbitrario.

Antiguamente los juegos de aventura tenían un laberinto. El laberinto es un puzzle que puede resultar tedioso para ciertos tipos de jugadores. Por eso los juegos de Leisure Suit Harry ofrecen un camino alternativo al laberinto. Así, el jugador puede evitarse lo que puede ser una tortura. En cambio hay otros jugadores que encuentran una fascinación anticlaustrofóbica en los laberintos. Yo soy uno de ellos.

El puzzle más insoportable es aquel en que hay que adivinar cuál es el verbo que resuelve el puzzle. Por ejemplo, el jugador tiene que escalar una pared para salir de un calabozo. Pero “escalar la pared”, no funciona. Ni “subir la pared”, ni “saltar”, ni “brincar la pared”. ¿Cómo es que solamente funciona “trepar la pared”? Este tipo de puzzles resulta en frustración para el jugador. Un componente clave en la ficción interactiva es la experimentación. Los puzzles son un ingrediente básico en promover la experimentación del jugador. Pero este proceso debe ser estimulante y generar una espiral de sus
penso positivo. Una experimentación donde todo falla puede desmotivar al jugador y hacer que abandone al jugador.

Finalmente la idea de los puzzles (como todos los componentes del juego) es que sean divertidos. Mi puzzle favorito es cómo conseguir que un oso nos entregue una cadena de oro en el juego Adventure (la Aventura Original, el primer juego de ficción interactiva). Este tipo de puzzle producen diversión porque te sorprenden por su simplicidad, y por un desenlace totalmente inesperado. Hay algo de satisfacción personal involucrado en la resolución de los puzzles, porque descubrimos (o comprobamos) que somos lo suficientemente listos para resolver lo que al principio parece un acertijo sin solución.