Los últimos meses he estado ocupado programando un JRPG 2D (RPG de estilo japonés) en C ++ usando la biblioteca SDL. El modo de exploración está más o menos hecho. Ahora estoy abordando el modo de batalla.
No he podido encontrar ningún recurso sobre cómo se estructura un clásico sistema de batalla JRPG por turnos. Todo lo que encuentro son discusiones sobre la fórmula del daño. He intentado buscar en Google, buscar en el tablero de mensajes de gamedev.net y rastrear preguntas relacionadas con C ++ aquí en Stack Exchange. También he intentado leer el código fuente de los juegos de rol de código abierto existentes, pero sin una guía de algún tipo es como tratar de encontrar una aguja en un pajar.
No estoy buscando un conjunto de reglas como D&D o algo similar. Estoy hablando exclusivamente de código y diseño de estructura de objeto. Un sistema de batalla le pide al jugador que ingrese usando los menús. A continuación, el turno de batalla se ejecuta mientras los héroes y los enemigos ejecutan sus acciones.
¿Alguien puede señalarme en la dirección correcta? Gracias por adelantado.
Respuestas:
Nunca he visto muchos recursos sobre este tema, pero el mejor que he encontrado es probablemente el:
Proporciona información sobre la IA de los enemigos como esta:
Con esto, puede ver que sus enemigos probablemente necesitarán una máquina de estado para administrar los diferentes estados en los que pueden estar, y cada estado tendrá su propio comportamiento para ejecutar cada turno, ya sea codificado en el enemigo o impulsado por datos mediante una secuencia de comandos idioma.
Hay mucha variación incluso entre JRPG basados en turnos, por lo que no hay un conjunto de reglas para todos ellos. Por ejemplo, puede emitir todos los comandos de grupo antes de que cualquiera de ellos tenga lugar, o pueden tener lugar inmediatamente después de elegir. El orden de ataque puede ser aleatorio, o más a menudo determinado por la estadística de Velocidad.
Pero, por ejemplo, supongamos que tiene un sistema de batalla basado exclusivamente en turnos, en el que primero emite todos los comandos de grupo y luego toda la acción ocurre al final del turno. Podrías abordarlo como:
Las Preguntas frecuentes sobre Battle Mechanics también tienen mucha información útil, en particular sobre la gestión del tiempo en las batallas. Pero desafortunadamente este sistema (también conocido como ATB o Active Time Battle) está patentado, por lo que no puede hacer nada similar.
EDITAR También encontré recientemente este sitio web que proporciona mucha información técnica sobre la implementación de FF7. Desafortunadamente, las secciones del módulo de batalla aún no parecen estar completamente escritas.
fuente