domingo, 22 de junio de 2008

La simplicidad de todo esto.


Del proyecto que he elegido como primera incursión en los videjuegos. Es tan sencillo que cualquier programador con conocimientos en Java y tiempo libre podría terminarlo en plan borrador en tan sólo una semana. Yo, yo es otra historia: ni tengo conocimientos profundos de Java, ni tengo el tiempo libre de un estudiante perezoso.

He estado tan ausente porque al fin tengo ADSL en casa, y mientras esperaba pensaba: "¿Para qué malgastar tiempo y dinero en la conexión móvil-modem?". He ahí el motivo de tanto tiempo de silencio.

El bucle principal del juego consiste en el jugador dando vueltas por las mazmorras recogiendo tesoros y avanzando en su misión, hasta que tropieza con un monstruo, donde habrá tres sucesos posibles: 1) Que el jugador entre en el espacio vital del monstruo y tome la iniciativa del ataque; 2) Que el monstruo entre en el espacio vital del jugador, con lo cual este debe de defenderse del ataque; 3) Burlarlo.


Esto hace que el juego gire por completo en dos rutinas muy similares, la de ataque y la de defensa. La secuencia de lucha es un bucle que alterna ambas rutinas hasta que uno de los dos contrincantes acaba vencido (salvo excepciones como huir). Por ejemplo, si hemos sido atacados, comienza la rutina de defensa (ver imagen: haz click sobre ella para verla a alta resolución), en la cual se nos indica qué monstruo nos está atacando y que elijamos un tesoro del inventario a modo de defensa. Cabe mencionar el apartado de la lucha contra Lich, que se puede apreciar en el diagrama, pero que lo dejaré para comentar en más profundidad para otro día. Otro monstruo especial es el Vampiro Mental, el cual también tiene sus peculiaridades, como bien se refleja en su nombre. Si el arma elegida no es apropiada (este asunto lo veremos en otro artículo), la defensa falla y somos heridos. Al alcanzar las 3 heridas perdemos la vida y el juego. Si la defensa es buena, aún así se llama al módulo de armas averiadas, en el cual, hay ciertas probabilidades de que el arma usada como defensa quede destruida (si estamos heridos más probabilidades hay de que el arma se rompa). Y el bucle de lucha pasa a la rutina de ataque, es nuestro turno de golpear.



(Clica en el diagrama para verlo a máxima resolución.) Nuevamente se nos pide un arma en inventario para usarla como arma de ataque, si el arma es efectiva, causaremos heridas al monstruo. Esto aumenta un valor asociado al monstruo que es la probabilidad de matarlo, de forma que con el random 100 de nuestro ataque, a más heridas, más probabilidades hay de matarlo. Un ejemplo: nos enfrentamos a una serpiente gigante la cual tiene un porcentaje de que podamos matarla inicial de 30. Si nuestra arma es apropiada para herirla se lanza un dado de 100 caras, un random (100) + 1. Si el resultado es menor que 30, la mataremos de un golpe, si el resultado es mayor que 30, no ha sido un golpe crítico y la herimos solamente, pero el porcentaje de probabilidad de matarla aumenta, porque tiene más heridas que antes. En nuestro turno de ataque, podemos romper el bucle de la batalla huyendo en uno de los cuatro puntos cardinales, lo cual también se puede hacer con el hechizo teleporteo. El tesoro a usar a modo de arma de ataque también puede ser un hechizo, pero consumen mucha fuerza (50 unidades, casi nada). El avatar del jugador además de las heridas tiene un valor llamado fuerza. La fuerza se va decrementando poco a poco al explorar la mazmorra. Decrece más deprisa si está herido (como si perdiese sangre), y la única forma de ganar fuerza es matando monstruos. Al eliminar a uno, su [porcentaje de probabilidad de matarlo - 100] se suma a nuestra fuerza. Esto quiere decir que si logramos matar a la serpiente en el primer golpe, se sumaría a nuestra fuerza 100 - 30 = 70 puntos de fuerza, lo cual no está nada mal. Un esqueleto de tres al cuarto tiene de porcentaje inicial 70, con lo cual al matarlo sólo nos proporciona 30. La fuerza también se decrementa por cada movimiento de lucha o defensa.

Y eso es todo, sólo a esto se reduce el juego, moverse de habitación en habitación consiguiendo tesoros (armas) y usándolas para matar monstruos y extraerles su fuerza vital, con el objetivo de tener tanta fuerza y poder para poder vencer al temible Lich. Estos dos diagramas presentados conforman el núcleo del juego.

Los he realizado para tener claro el mecanismo del juego extraído del listado original del libro (en BASIC), en otra ocasión os comentaré como pienso implementar todo esto en Java. Pues, salvo ligeros ajustes en la jugabilidad que pienso hacer en una etapa tardía del proyecto, en un principio pienso implementar estos módulos tal cual.

No hay comentarios: