Последние месяцы я занимался программированием 2D JRPG (RPG в японском стиле) на C ++ с использованием библиотеки SDL. Режим исследования более или менее сделан. Сейчас я работаю в режиме боя.
Я не смог найти никаких ресурсов о том, как структурирована классическая пошаговая боевая система JRPG. Все, что я нахожу, это обсуждения формулы ущерба. Я пробовал гуглить, искать на доске объявлений gamedev.net и просматривать вопросы, связанные с C ++, здесь, на Stack Exchange. Я также пытался читать исходный код существующих RPG с открытым исходным кодом, но без какого-либо руководства это все равно что пытаться найти иголку в стоге сена.
Я не ищу набор правил, таких как D & D или что-то подобное. Я говорю исключительно о коде и проектировании структуры объекта. Боевая система запрашивает у игрока ввод данных с помощью меню. Затем происходит ход битвы, когда герои и враги выполняют свои действия.
Может кто-то указать мне верное направление? Заранее спасибо.
Ответы:
Я никогда не видел много ресурсов на эту тему, но лучший из найденных мной, вероятно, это:
Он дает представление о AI врагов, например:
При этом вы можете видеть, что вашим врагам, вероятно, понадобится конечный автомат для управления различными состояниями, в которых они могут находиться, и каждое состояние будет иметь свое собственное поведение для выполнения каждого хода, либо жестко закодированного во врага, либо управляемого данными с помощью сценариев язык.
Существует много различий даже между пошаговыми JRPG, поэтому не существует набора правил для всех из них. Например, вы можете выдать все команды вечеринки до того, как какая-либо из них произойдет, или они могут быть выполнены сразу после выбора. Порядок атаки может быть случайным, или чаще определяется по скорости.
Но, например, допустим, у вас есть чисто боевая система, в которой вы сначала выполняете все команды отрядов, а затем все действия происходят в конце хода. Вы можете подойти к этому как:
Battle Механика FAQ также имеет много полезной информации, в частности , об управлении временем в боях. Но, к сожалению, эта система (она же ATB или Active Time Battle) запатентована, поэтому вы не можете сделать ничего подобного.
РЕДАКТИРОВАТЬ Я также недавно нашел этот сайт, который предоставляет много технической информации о реализации FF7. К сожалению, разделы боевого модуля пока еще не написаны полностью.
источник