Я ніколи не бачив багато ресурсів на цю тему, але найкращий, який я знайшов, - це, мабуть, такий:
Він надає уявлення про ворогів ШІ, таких як цей:
AI: Setup
{
TempVar:TurnsUntilGrenade = 3
TempVar:GrenadeAmmo = 4
}
AI: Main
{
If (Stage == 0) Then
{
If (TempVar:TurnsUntilGrenade == 0) Then
{
If (TempVar:GrenadeAmmo > 0) Then
{
Choose Random Opponent with Lowest HP
Use Hand Grenade on Target
TempVar:GrenadeAmmo = TempVar:GrenadeAmmo - 1
TempVar:TurnsUntilGrenade = 3
} Else {
Choose Random Opponent with Lowest HP
Use <Machine Gun> on Target
}
} Else {
Choose Random Opponent
Use <Machine Gun> on Target
TempVar:TurnsUntilGrenade = TempVar:TurnsUntilGrenade - 1
}
} Else {
If (TempVar:GrenadeAmmo > 0) Then
{
Choose Random Opponent with Lowest HP
Use Hand Grenade on Target
TempVar:GrenadeAmmo = TempVar:GrenadeAmmo - 1
} Else {
Choose Random Opponent
Use <Machine Gun> on Target
}
}
}
AI: Counter - General
{
If (Grenade Combatant's HP <= 3 * [Grenade Combatant's Max HP / 4]) Then
{
Stage = 1
} Else {
Stage = 0
}
}
З цього ви бачите, що вашим ворогам, ймовірно, потрібна державна машина для управління різними станами, в яких вони можуть знаходитися, і кожна держава матиме власну поведінку для виконання кожного повороту, або твердо закодованого у ворога, або керованого даними за допомогою сценарію мова.
Навіть між покроковими JRPG, існує велика кількість варіацій, тому для всіх не існує набору правил. Наприклад, ви можете видавати всі команди партії до того, як відбудеться будь-яка з них, або вони можуть відбутися відразу після вибору. Порядок атаки може бути випадковим або частіше визначати статистикою швидкості.
Наприклад, скажімо, у вас є суто поворотна система бою, де ви видаєте спочатку всі партійні команди, а потім усі дії відбуваються в кінці черги. Ви можете підійти до нього так:
- Зберігайте у списку всі сутності (гравці + вороги), що беруть участь у битві.
- Кожен гравець у списку отримує інформацію та зберігає його.
- Сортуйте список об'єктів за атрибутом Speed.
- Для кожного об'єкту у списку, якщо гравець виконує збережену дію, в іншому випадку запустіть сценарій AI для поточного стану.
- Заздалегідь поверніть і повторіть.
Battle Механіка FAQ також має багато корисної інформації, зокрема , про управління часом в боях. Але, на жаль, ця система (ака ATB або Active Time Battle) запатентована, тому ви не можете зробити нічого подібного.
EDIT Я нещодавно знайшов цей веб-сайт, який надає багато технічної інформації щодо впровадження FF7. На жаль, розділи бойового модуля, здається, ще не повністю написані.