| # DANDO VIDA

## Continuamos con los Personajes Semi Inteligentes, examinando las principales características que los hacen creíbles y educándolos con cariño para que lleguen a ser gente de provecho en su maravilloso mundo aventurero.

Un clásico método de dar vida casi real a un personaje en una aventura, copiado de los juegos de rol, es determinar su carácter por medio de seis factores.

Tres mentales: ego, inteligencia e intuición. Tres fsicos: destreza, fuerza y cosntitución.

Pero en los juegos de rol, las combinaciones, son pocas, porque sólo tienen una amplitud desde 3 hasta 18 (los números mínimos y maximos obtenidos por la suma de los 3 dados).

El ordenador amplía este campo aún más, se puede escoger una puntuación total y dividirla entre estos seis atributos, ello puede llegar a dar números astronómicos de posibilidades.

Cojamos el ejemplo de los mismos seis caracteres para definir una personalidad y, siguiendo al pie de la letra los de los tres dados, tendremos una puntuación desde 3 a 18 para cada carácter, o lo que es lo mismo, 16 posibilidades.

Ello quiere decir que podemos crear personalidades diferentes hasta un número de 16 elevado a la sexta, lo que nos dará la bonita suma de más de 16 millones de individuos diferentes.

No es pues, problema de variedad, sino de molestarse un poquito en darles combinaciones aceptables de atributos.

Los seis rasgos que hemos definido para nuestro personaje deben interactuar sutilmente en nuestros juegos y el desenlace final del personaje y de la historia depende siempre de su correcta combinación y el uso que hagan de sus facultades.

Todo personaje debe ser consecuente con sus capacidades, es decir, nada ganamos con haber tenido la paciencia de crear un buen personaje, para que luego se comporte de una forma disacorde con su manera de ser. Habremos perdido el tiempo y, lo que es peor, el jugador se sentirá engañado.

Así, un personaje al que hayamos dotado de una alta capacidad de intuición, será capaz de encontrar puertas y escondites secretos con facilidad. Mientras que uno con un bajo nivel en esta característica, sólo los encontrará por azar o porque se tropiece con ellos.

De manera similar, un sujeto con un ego alto se mantendrá en la brecha, aunque las circunstancias le sean adversas. Mientras que uno con un eguito pequeñito, gritará "mamá" muy pronto.

Y así continuamos con nuestra aventura, con cada característica variando levemente a medida que el juego se desarrolla y el personaje descubre mágicos mejunjes que le aumentan su poder, o resulta herido en una pelea, lo que disminuye en fuerza y constitución.

Como ves, las variaciones pueden llegar a ser infinitas.

### LA MEZCLA IDEAL

No nos cabe duda de que con los cada vez más sofisticados creadores, los tiros irán por ese camino y el factor de role, o sea la creación de los personajes llegará a ser el factor dominante en este tipo de juegos.

Lo ideal sería llegar a una combinación de la tradicional aventura en texto, más unos gráficos impresionantes, móviles y cambiantes según transcurra la acción, todo ello enriquecido con unos personajes muy completos y creados por el propio jugador al principio del juego.

Mejor aún si esos seres van aprendiendo, es decir ganando en personalidad a medida que "viven" su vida.

Así tendríamos la ventaja de un amplio vocabulario y una libre elección, (imposible en las aventuras-arcades), con muchos e interesantes problemas para resolver, pero contaríamos también con características típicas de los juegos de rol, una multitud de posibles variaciones en el mismo juego derivadas de la capacidad de escoger y formar cualquiera de esos 16.000.000 de personajes posibles de que hablábamos al comienzo.

Entonces si los personajes seudo inteligentes añaden tanto a una aventura, ¿por qué los vemos tan poco, por no decir casi nunca?

La razón es obvia: si hay que incluir otra gente en el juego también habrá que incluir una enorme cantidad de datos en forma de mensajes; bien sean como discursos, es decir, todo lo que el personaje tenga que decir, o como información, es decir, descripciones que le digan al jugador lo que el PSI estpa haciendo.

Además de lo anterior se necesita comprobar cientos de condiciones que determinan cuando deben aparecer estos mensajes; y todo ello va a consumir una cantidad enorme de la ya escasa memoria.

### UN PELÍN DE BASIC

Sin meternos en honduras vamos a inicar la explicación viendo como programaríamos en BASIC uno de estos personajes, para pasar posteriormente a estudiar su planteamiento por medio de parsers más sofisticados. Todas las acciones que se refieren al personaje pueden ponerse en marcha dentro del programa con una rutina que desde ahora en adelante llamaremos "Manejadora de PSI".

En resumen se trataría de una rutina que puede aceptar datos para cualquier personaje del juego, procesarlos, decidir si hay que tomar alguna acción o no como respuesta y, en caso positivo, cuál es la acción adecuada (por ejemplo, mover el personaje), para luego volver al programa principal.

Hay dos tipos de "manejadores de PSIs": el Sincrónico y el Asincrónico.

Asincrónico significa que la rutina es llamada independientemente de las acciones del jugador; en otras palabras, sin tener relación con lo que esté pasando en el programa principal se hace una súbita llamada al "manejador de PSI" para que ejecute acciones.

Tanto en el Hobbit como en el Valhalla se empleaba esta técnica, es decir, si te sentabas sin teclear nada podías ver a todos los personajes continuar con sus vidas preprogramadas mientras un mensaje del tipo "El tiempo pasa..." aparecía de vez en cuando en la pantalla.

Pero este sistema Asincrónico, aunque da una mayor impresión de realidad al personaje, es muy difícil de lograr por medio del Basic, a menos que tengas un ordenador que acepte órdenes por interrupción de este lenguaje (MSX. Amstrad).

EL sistema Sincrónico es de una programación más sencilla, en él se llama al "manejador del PSIs" en un momento dado, generalmente cuando el jugador da una orden; y éste es el que usaremos.

### HABLANDO Y RECORDANDO

Otros dos atributos de los más importantes y sobre todo los que hay que dotar a los PSIs son:

El habla, pues los personajes deben ser capaces de contestar al jugador con frases interesantes, o lo que es más impactante, hablarle sin que éste lo haya hecho.

La historia, lo que significa que el personaje no sólo debe de tener una idea de lo que sucede a su alrededor, sino también de lo que ha sucedido previamente, para actuar de acuerdo con ello.

El mejor ejemplo de personaje con "historia" que se me ocurre es THOR, en el Valhalla, quien tomaba adecuada nota de tus acciones y actuaba después en consecuencia.

El dejar que el jugador pueda hablar a un personaje presenta otro problema: se requiere el uso de un parser (que en realidad es esa pequeña parte de un creador de aventura que acepta y traduce el input del jugador).

Por ello no incluimos esta virguería en nuestro rudimentario programa, pero dejamos el terreno abierto por si tú lo quieres hacer en el futuro (a menos que use un creador).

Sin embargo no dejaremos mudo a nuestro pobre PSI, sino que le haremos decir alguna que otra chorrada.

### LLUVIA DE IFES

Vamos a ello: el primer problema que tenemos que resolver es cómo comprobar una condición para ver si es cierta o falsa, porque créeme amigo, vamos a tener muchas condiciones que comprobar y necesitamos tener un método eficiente.

La forma más normal de hacerlo es con la orden IF del Basic.

Veamos unos simples ejemplos: (las órdenes de Basic están con grandúscula y los comentarios entre paréntesis con chicúscula)

Lo siento por esta aclaración sobrante, pero nuestros lectores habituales no suelen saber mucho de programación.

IF (el jugador está en un calabozo) AND IF (las ratas están hambrientas) THEN PRINT (!Socorrooo, que me meriendan!).

IF (el jugador está en un calabozo) AND IF (las ratas están muertas) AND IF (el jugador tiene hambre) THEN PRINT (¡mmmmm, qué ratas más exquisitas!).

IF (el jugador no está en el calabozo) THEN PRINT (¡viva la libertás!).

Vale, los ejemplos anteriores son muy bonitos, pero a este paso te encontrarás muy pronto escribiendo cientos de IFs para cada mensaje que quieras imprimir en pantalla, y esas son las malas noticias.

Pero las buenas noticias son que hay una forma de hacerlo sin poner ningún IF, y ello lo veremos en la próxima entrega.

Andrés R. Samudio.

>