Necesito ideas para combate por turnos

Started by Drumpi, November 03, 2009, 01:48:33 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Drumpi

Hola a todos:

Pues nada, que tengo un problema que me lleva de cabeza unas cuantas noches.
Supongo que estaréis al tanto de Venturer, de qué es lo que es, y supongo que habreis leido que Spirus y yo queremos implementar un sistema de combate por turnos para él.
Pues no tengo ni idea de cómo hacerlo.

El primer frente lo tengo con los ataques. La idea es que se puedan configurar cada posible ataque en un fichero. Que sea de texto o binario es igual, pues vamos a hacer un editor para ello. Obviamente va a tener el campo con el nombre y el daño que hace, pero se me plantea la duda de cómo representar el efecto gráfico en pantalla (hacer una explosión, un corte, una pequeña animación...).

Luego está el jugador, que obviamente llevará una lista de estos ataques posibles, y tendré que seleccionar cuales puede hacer (por nivel, por aprender,...). Y lo que es peor: las variabls que usará, porque lo básico es que tenga HP (vida), EXP (experiencia con la que subir un nivel), LVL (niveles de experiencia), pero ¿y si el jugador quiere añadir barra de MAGIA u otras que afecten al uso de los ataques?

Los enemigos van parejos al protagonista, pero se les añade el tema de IA. La IA podría ir programada tambien en varios ficheros, y que según el enemigo que sea o la zona donde esté, use uno u otro. La pega es qué debe llevar ese fichero. La idea es crear perfiles como "agresivo", "cobarde", "sólo usa ataques fuertes", "más peligroso a menor energía"... Pero de una forma tan sencilla que un usuario de venturer pueda usarlo (obviamente, crearemos otro editor).

Y luego está el tema de que no se si añadiré modificadores: el tipo agua afecta más al tipo fuego... No se ni cómo programarlos, ni como integrarlos. Se me ocurre que en un editor visual se represente cada tipo de ataque con una esfera, y con el ratón se una con una flecha quien vence a quien...

Tengo ligeras ideas, pero me preocupa el tema de la IA, y que no se cómo hacer para que el "programador" me diga cómo debe hacerse el efecto del golpe.
He visto algún juego del género que implementa dichos combates, y se ve al enemigo delante, eliges ataque, efecto visual (sencillo, un parpadeo en el 80% de las veces, en otra una transición, pero tampoco sé como hacer que programen una transición), le quitas energía, y luego él ataca. Demasiado simple... creo.

A ver si me echais un pequeño cable, por favor.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

La momia que fuma

Respecto a dificultad y comportamiento de la IA por ejemplo, lo que hacia yo en invento-fighting, era segun la situación lanzar un rand de 0 a 100 para ver si hacia un ataque o algo, por ejemplo:

Si estabas saltando hacia el enemigo desde una distancia en la que lo pudieses alcanzar, lanzaba un rand de 0 a 100 y segun el nivel de dificultad, el enemigo tenía cierto porcentaje (if(rand(0,100)<=25, por ejemplo) de usar la patada alta, que contrarestaba cualquier ataque aereo (Menos el proyectil aereo de las ultimas versiones, claro). En el nivel de dificultad máximo la probabilidad era de 100% para que el jugador solo pudiese encajar un ataque aereo si pillaba al rival desprevenido haciendo otra cosa.

Asi que por ejemplo estaría bien que en el script de Venturer el usuario pudiese especificar la probabilidad en % de que el rival haga determinados ataques. También estaría bien poder dividir estos comportamientos en bloques, según la vida del rival, para que cuando se vea con el agua al cuello haga ataques a la desesperada o haga curaciones. Combinando las dos cosas creo que sería mas flexible que los perfiles que dices, y aun así no quedaría demasiado complicado para el usuario.

Espero que te sirva de algo y no sea algo evidente que ya tenias en mente XD, si se me ocurre algo más ya te comentaré.

Drumpi

Algo así intuía, pero si que me has ayudado mucho con nuevas ideas y reorganizándo mi mente, que a veces se lía más que una cuerda guardada en un armario. Es un buen punto de partida.

Lo que no sé es cómo hacer lo de los ataques/transiciones. En un juego vi que usaban un mapa del tamaño de la pantalla y que usaban una escala de blanco a negro para indicar el orden de los pixels que cambiaban, pero me parece un sistema demasiado lento (comprobar todos los pixels de un color, modificar los pixels en pantalla, repetir 255 veces más).
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

La momia que fuma

Quote from: Drumpi on November 03, 2009, 06:04:37 PMLo que no sé es cómo hacer lo de los ataques/transiciones. En un juego vi que usaban un mapa del tamaño de la pantalla y que usaban una escala de blanco a negro para indicar el orden de los pixels que cambiaban, pero me parece un sistema demasiado lento (comprobar todos los pixels de un color, modificar los pixels en pantalla, repetir 255 veces más).

No entiendo muy bien a que te refieres...si te refieres a transiciones de pantalla, aqui rescatadas de la viejuna y sin embargo querida Divnet tienes dos, una de Pixel y otra mía

Drumpi

Sí, es a transiciones de pantalla, pero la cuestión no es programarlas, sino que el que use venturer pueda crearlas.
También puedo crearlas yo y que elija cual quiere usar, pero le resta libertad al usuario. Aunque pensándolo bien, puedo meter los dos métodos.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)