Saya belum pernah melihat banyak sumber tentang hal ini, tetapi yang terbaik yang saya temukan mungkin adalah:
Ini memberikan wawasan tentang musuh-musuh AI seperti ini:
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
}
}
Dengan ini Anda dapat melihat bahwa musuh Anda mungkin akan membutuhkan mesin negara untuk mengelola berbagai negara tempat mereka berada, dan masing-masing negara bagian akan memiliki perilaku sendiri untuk mengeksekusi setiap belokan, baik yang disandikan ke dalam musuh, atau didorong oleh data oleh skrip bahasa.
Ada banyak variasi bahkan di antara JRPG berbasis giliran, jadi tidak ada seperangkat aturan untuk semuanya. Misalnya, Anda dapat mengeluarkan semua perintah pihak sebelum salah satu dari mereka berlangsung, atau mereka dapat dilakukan segera setelah memilih. Urutan serangan mungkin acak, atau lebih sering ditentukan oleh stat Kecepatan.
Tapi misalnya, misalkan Anda memiliki sistem pertarungan murni berbasis belokan, di mana Anda mengeluarkan semua perintah partai terlebih dahulu, dan kemudian semua tindakan terjadi di akhir belokan. Anda bisa mendekatinya seperti:
- Simpan semua entitas (pemain + musuh) yang berpartisipasi dalam pertempuran dalam daftar.
- Untuk setiap pemain dalam daftar, dapatkan input dan simpan.
- Urutkan daftar entitas dengan atribut Speed.
- Untuk setiap entitas dalam daftar, jika pemain menjalankan tindakan yang disimpan, jalankan skrip AI untuk kondisi saat ini.
- Maju berbalik dan ulangi.
The Pertempuran Mekanika FAQ juga memiliki banyak informasi yang berguna, khususnya tentang manajemen waktu dalam pertempuran. Namun sayangnya sistem ini (alias ATB atau Active Time Battle) dipatenkan sehingga Anda tidak dapat membuat hal serupa.
EDIT Saya juga baru-baru ini menemukan situs web ini yang menyediakan banyak informasi teknis tentang implementasi FF7. Sayangnya bagian modul pertempuran tampaknya belum sepenuhnya ditulis.