나는이 주제에 대해 많은 리소스를 보지 못했지만 내가 찾은 최고의 것은 아마도 다음과 같습니다.
다음과 같이 적 AI에 대한 통찰력을 제공합니다.
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 간에도 많은 변형이 있으므로 모든 규칙에 대한 규칙 세트는 없습니다. 예를 들어, 모든 당사자 명령을 실행하기 전에 모든 당사자 명령을 발행 하거나 선택 후 즉시 실행할 수 있습니다. 공격 순서는 무작위이거나 속도 통계에 의해 더 자주 결정될 수 있습니다.
그러나 예를 들어, 순전히 턴 기반 전투 시스템을 가지고 있는데, 여기서 모든 파티 명령을 먼저 낸 다음 모든 행동이 턴이 끝날 때 발생합니다. 당신은 다음과 같이 접근 할 수 있습니다 :
- 전투에 참여한 모든 개체 (플레이어 + 적)를 목록에 저장합니다.
- 목록에있는 각 플레이어마다 입력을 받아 저장하십시오.
- 속도 속성별로 엔티티 목록을 정렬하십시오.
- 목록의 각 엔티티에 대해 플레이어 인 경우 저장된 조치를 실행하고, 그렇지 않으면 현재 상태에 대한 AI 스크립트를 실행하십시오.
- 선회하고 반복하십시오.
그만큼 전투 역학 자주 묻는 질문은 또한 전투에서 시간 관리에 대한 특히 유용한 정보를 많이 가지고 있습니다. 그러나 불행히도이 시스템 (일명 ATB 또는 Active Time Battle)은 특허를 받았으므로 비슷한 것을 만들 수 없습니다.
편집 최근에는 FF7 구현에 대한 많은 기술 정보를 제공하는 이 웹 사이트 를 찾았습니다 . 불행히도 전투 모듈 섹션은 아직 완전히 작성되지 않은 것 같습니다.