Au cours des derniers mois, j'ai été occupé à programmer un JRPG 2D (RPG de style japonais) en C ++ à l'aide de la bibliothèque SDL. Le mode d'exploration est plus ou moins fait. Maintenant, je m'attaque au mode bataille.
Je n'ai pas pu trouver de ressources sur la structure d'un système de combat JRPG au tour par tour classique. Je ne trouve que des discussions sur la formule des dommages. J'ai essayé de googler, de rechercher le babillard de gamedev.net et de parcourir les questions liées à C ++ ici sur Stack Exchange. J'ai également essayé de lire le code source des RPG open source existants, mais sans un guide quelconque, c'est comme essayer de trouver une aiguille dans une botte de foin.
Je ne cherche pas un ensemble de règles comme D&D ou quelque chose de similaire. Je parle uniquement de conception de code et de structure d'objet. Un système de combat demande au joueur de saisir des informations à l'aide de menus. Ensuite, le tour de bataille est exécuté lorsque les héros et les ennemis exécutent leurs actions.
Est-ce que quelqu'un peut-il me montrer la bonne direction? Merci d'avance.
Réponses:
Je n'ai jamais vu beaucoup de ressources à ce sujet non plus, mais la meilleure que j'ai trouvée est probablement la:
Il donne un aperçu de l'IA des ennemis comme celle-ci:
Avec cela, vous pouvez voir que vos ennemis auront probablement besoin d'une machine à états pour gérer les différents états dans lesquels ils peuvent être, et chaque état aura son propre comportement pour exécuter chaque tour, soit codé en dur pour l'ennemi, soit piloté par les données par un script Langue.
Il y a beaucoup de variations, même entre les JRPG au tour par tour, il n'y a donc pas d'ensemble de règles pour chacun d'eux. Par exemple, vous pouvez émettre toutes les commandes du groupe avant qu'elles aient lieu, ou elles peuvent avoir lieu immédiatement après le choix. L'ordre d'attaque peut être aléatoire ou plus souvent déterminé par la statistique de vitesse.
Mais par exemple, supposons que vous ayez un système de combat au tour par tour, où vous émettez d'abord toutes les commandes de groupe, puis toutes les actions se déroulent à la fin du tour. Vous pouvez l'approcher comme:
La FAQ Battle Mechanics contient également de nombreuses informations utiles, en particulier sur la gestion du temps dans les batailles. Mais malheureusement, ce système (alias ATB ou Active Time Battle) est breveté, vous ne pouvez donc rien faire de similaire.
EDIT J'ai également récemment trouvé ce site Web qui fournit de nombreuses informations techniques sur la mise en œuvre de FF7. Malheureusement, les sections du module de combat ne semblent pas encore entièrement écrites.
la source