Tôi chưa bao giờ thấy nhiều tài nguyên về chủ đề này, nhưng tài nguyên tốt nhất tôi tìm thấy có lẽ là:
Nó cung cấp cái nhìn sâu sắc về kẻ thù AI như thế này:
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
}
}
Với điều này, bạn có thể thấy rằng kẻ thù của bạn có thể sẽ cần một cỗ máy trạng thái để quản lý các trạng thái khác nhau mà chúng có thể ở và mỗi trạng thái sẽ có hành vi riêng để thực hiện mỗi lượt, được mã hóa thành kẻ thù hoặc điều khiển dữ liệu theo kịch bản ngôn ngữ.
Có rất nhiều biến thể ngay cả giữa các JRPG dựa theo lượt, vì vậy không có bộ quy tắc nào cho tất cả chúng. Chẳng hạn, bạn có thể đưa ra tất cả các lệnh của bên trước khi bất kỳ lệnh nào diễn ra hoặc chúng có thể diễn ra ngay sau khi chọn. Thứ tự tấn công có thể là ngẫu nhiên, hoặc thường được xác định bởi chỉ số Tốc độ.
Nhưng ví dụ, giả sử bạn có một hệ thống chiến đấu theo lượt hoàn toàn, trong đó bạn ban hành tất cả các lệnh của nhóm trước, và sau đó tất cả các hành động xảy ra vào cuối lượt. Bạn có thể tiếp cận nó như:
- Lưu trữ tất cả các thực thể (người chơi + kẻ thù) tham gia vào trận chiến trong một danh sách.
- Đối với mỗi người chơi trong danh sách nhận đầu vào và lưu trữ nó.
- Sắp xếp danh sách thực thể theo thuộc tính Tốc độ.
- Đối với mỗi thực thể trong danh sách, nếu đó là một người chơi thực hiện hành động được lưu trữ, nếu không thì chạy tập lệnh AI cho trạng thái hiện tại.
- Lần lượt và lặp lại.
Câu hỏi thường gặp về Cơ học chiến đấu cũng có rất nhiều thông tin hữu ích, đặc biệt là về quản lý thời gian trong các trận chiến. Nhưng thật không may, hệ thống này (còn gọi là ATB hoặc Active Time Battle) được cấp bằng sáng chế để bạn không thể làm bất cứ điều gì tương tự.
EDIT Gần đây tôi cũng tìm thấy trang web này cung cấp nhiều thông tin kỹ thuật về việc triển khai FF7. Thật không may, các phần mô-đun chiến đấu dường như chưa được viết hoàn toàn.