턴 기반 전략 게임을위한 복잡한 게임 AI


26

턴 기반 전략 게임 프로젝트를 연구하고이 주제에 대한 좋은 자료를 찾고 있습니다. 이 게임은 국가가 서로 싸우고, 유닛을 배치하고,이 유닛이 6 각형 타일 맵에서 움직이며 서로를 공격 할 수있는 전형적인 전쟁 게임입니다.

특히 문명 V의 AI가 어떻게 구성되어 있는지에 관심이 있습니다! Wikipedia에 따르면이 게임은 게임 AI의 각기 다른 계층에 4 가지 AI 시스템을 사용합니다.

  • 전술 AI는 개별 유닛을 제어
  • 작전 인공 지능이 전쟁 전선 전체를 감독
  • 전략적 AI는 제국 전체를 관리합니다
  • 그랜드 전략 AI는 장기 목표를 설정하고 게임에서 승리하는 방법을 결정합니다

개념적으로 이것은 복잡한 AI를 달성하는 것이 의미가있는 것처럼 보이며 이러한 AI 시스템이 어떻게 작동하고 함께 작동하는지에 대해 궁금해합니다. 전술 AI는 단일 장치 (이동, 공격, 수리, 후퇴 등)의 의사 결정을 처리하기 때문에 이해하기가 가장 쉽지만 다른 AI 시스템은 실제로 흥미로운 곳이라고 생각합니다. 예를 들어 운영 AI는 무엇을하고 어떻게 수행합니까? 나는 이것이 Firaxis Games에 의해 가장 잘 알려진 비밀이라고 확신하지만 이것에 대해 더 많은 것을 알기 위해 이것에 대한 토론을 시작하는 것이 좋습니다.

또한 턴 기반 전략 게임 AI를 다루는 좋은 책을 아는 사람이 있다면 그것을 아는 것이 좋습니다. 분명히 이것은 웹에서 드문 드문 시드 된 주제입니다. "예제 별 게임 AI 프로그래밍"을 받았지만이 책은 상위 목표 지향적 AI보다 단일 에이전트 행동 AI에 관한 것입니다.

답변:


19

DampeS8N의 시작 문단에 동의하지만 (즉, 게임 AI는 플레이어 가 현명 하다고 생각할 수있을 정도로 똑똑해야합니다 ),이 질문은 좀 더 정교 해질 필요가 있다고 생각 합니다. 사용중인 데이터 구조는 모든 수준에서 FSM이 될 수 있지만 개별 시스템의 작동 방식에 대한 질문에 실제로 대답하지는 않습니다 .

면책 조항 : 나는 문명 게임을 거의하지 않았으므로 게임 플레이에 대한 나의 이해가 제한적입니다. 명백한 오류가 있으면 사과드립니다. 저를 바로 잡으십시오. 기꺼이 편집하겠습니다.

원본 IGN 기사 에서 인용을 할 것 입니다.

1. 전술 AI

최하위 레벨에서 전술 AI는 현재의 부대를 사용하여 지역 규모의 전투에서 승리합니다.

이것은 아마도 서브 시스템의 가장 표준적인 부분 일 것입니다. FSM, 비헤이비어 트리 (또는 AI의 난이도에 따라 임의의 동작을 수행)를 사용하여이를 수행 할 수있는 방법은 무한합니다.

그러나이 게임은 위험과 유사한 턴 기반 게임이므로 각 유닛에 점수가 부여 될 가능성이 높습니다. 그런 다음 다양한 변수 (충성도, 지형 보너스 등)에 따라이 점수에 승수가 추가됩니다.

결과는 다음과 같이 계산됩니다.

If (AI unit score >> (much greater) enemy unit score) Then Completely destroy enemy unit
If (AI unit score > (somewhat greater) enemy unit score) Then Partially destroy enemy unit
If (AI unit score < (somewhat less) enemy unit score) Then Partially destroy AI unit
If (AI unit score << (much less) enemy unit score) Then Completely destroy AI unit

AI가 전투 중에이 점수를 극대화하려고 시도하는 것이 합리적입니다.

엡실론 값을 추가하면 (예 : 작은 무작위 실패 / 실패 가능성) AI가 꽤 괜찮아 보입니다 (아무도 완벽한 상대를 원하는 사람은 없습니다!).

2. 운영 AI

그로부터 한 걸음 더 나아가서, 인공 지능 인공 지능은 어떤 전투와 싸울 것인지 선택하고 필요한 부대를 이용할 수있게합니다.

나는 이것에 몇 가지 포인트가 있다고 생각합니다.

  • 현재 강도 평가
  • 유닛 강화
  • 선택 / 피해야 할 싸움 평가

현재 힘 평가 -이것은 단지 영향 맵 을 비명을 지 릅니다 . 16 진 격자에 쉽게 표현할 수 있습니다. 이 하위 시스템은 전투 지향적이므로 영향 값은 주변에있는 각 유닛의 강도 값을 나타낼 수 있습니다. 작은 육각형 지역에 집중된 대규모 군대가 있다면 영향 값이 크며 작전 AI는 이것을 선택하여 전투를 평가할 때 이것을 고려합니다. 잊지 말고, 상대 군대의 영향력 값도 계산됩니다. 이를 통해 운영 AI는 잠재적 인 들어오는 위협을 예측할 수 있습니다.

유닛의 강화 -AI는 영향 맵에서 반대 진영에 대한 정보를 수신하여 어떤 유닛이 가장 위협이 많은지를 결정할 수 있습니다. 그런 다음 AI는 근접 유닛에게 명령을 내려 위협 당을 강화하고 강화할 수 있습니다.

선택 / 피해야 할 싸움 평가 -여기에서 몇 가지 상황이 발생할 수 있습니다. AI가 유닛이 위협에 처한 것을 감지하고이를 도울 수있는 근처 유닛이없는 경우 a) 유닛을 희생하기로 결정 (예를 들어 대체 할 수없는 장군 대신 보병이 적은 경우) 또는 b) 유닛 주문 후퇴합니다. 반대로, AI가 군대 근처에서 약한 적 유닛을 감지하면 유닛이이 적을 꺼내도록 명령 할 수 있습니다.

실시간 전략 게임에서 영향 맵을 사용 하는 괜찮은 논문 이 있습니다.

3. 전략적 AI

전략적 AI는 도시를 건설 할 위치와 도시와의 관계에 중점을두고 제국 전체를 관리합니다.

"어디에서 도시를 건설해야합니까?" 위치 평가처럼 들립니다. 체스 프로그램 및 기타 게임은이를 사용하여 주어진 위치의 바람직 성을 결정합니다. 예를 들면 다음과 같습니다.

16 진 A : 자원과 근접, 높은 지형, 아군과 근접, 적과 근접 16 진 B : 자원과, 중간 레벨 지형, 아군과 중간 거리, 적과 거리

위치 평가 기능은 다음과 같은 세 가지 요소를 취할 수 있습니다.

Score = Proximity to resources (closer yields a higher score) + 
terrain elevation (higher yields higher score) + 
proximity to allies (closer is better) + 
proximity to enemies (farther is better)

그리고 어느 육각형이 더 높은 점수를 얻었는지, 도시가 세워지는 곳이 될 것입니다. 평가 기능에 대한 자세한 내용은 여기를 참조하십시오 .

나는 전략적 인공 지능이 인공 지능이 추구하는 승리의 유형에 따라 게임에 많은 의사 프리 베이크 전략을 가지고 있다고 생각한다.

4. 그랜드 전략 AI

사다리의 맨 위에는 게임을 이길 방법을 결정하는 거대한 전략적 AI가 있습니다.

나는 이것이 아마도 가장 간단한 것 같아서, 그것이 실제로보다 인상적이라는 인상을줍니다. 이와 같은 게임에서는 한정된 수의 승리 유형 만 있습니다. 이 기사에서는 얼라이언스 승리 등이 있다고 가정 할 때 정복 승리를 언급합니다.이 유형 중 하나를 임의로 선택하여 다른 시스템으로 전달하는 것만 큼 간단합니다.

편집 : 물론 DampeS8N이 지적한 것처럼 맵 유형은 최상의 승리 조건을 지시 할 수 있습니다.이 경우 디자이너 또는 다른 변수를 고려하여 평가 기능에 의해 하드 코딩 될 수 있습니다.

요약
나는 이런 종류의 시스템에 대해 정말로 중요하게 생각하는 것은 서브 시스템이 계층화되는 방식이며 실제로 서로에게 많은 통신을 할 필요는 없다는 것입니다. 구성 요소가 느슨하게 결합 된 하향식 아키텍처로 보입니다. 기술 설계 관점에서 보면 깨끗하고 유연하며 아마도 신흥 행동 및 / 또는 Subsumption Architecture 에서 영감을 얻습니다 .

나는이 게시물의 길이에 대해 정말로 사과한다. 그것은 약간의 짐승으로 바뀌었다 :(

어느 쪽이든, 그것이 도움이되기를 바랍니다!


2
"이것은 아마도 가장 간단한 것 같아서 실제보다 더 인상적이라고 생각합니다." 나는 확실하지 않다. 단순히 정복 승리를 가기로 결정하는 것과 전쟁을 선포 할 사람, 과장된 사람인지, 평화를 위해 고소 할 것인지의 여부, 공격하기에 가장 약한 대상, 구축해야 할 유닛, 획득 등의 차이점이 있습니다 올바른 전략적 자원이 서로 싸우는 두 원수를 야기 할 수있는 방법을 찾는 우리의 군대가 강력하게 등이 단계는 것입니다 많은 당신이 그것에게 신용을주는 것보다 더 복잡하게는.
Nicol Bolas

1
와우, 나는 나의 대답이 조금 길어지고 있다고 생각했다. LOL. 멋진 쇼.
DampeS8N

1
주목할만한 것은 Civ는 단순한 승리 조건이 없다는 것입니다. 이길 방법이 많이 있습니다. 경이, 과학 발전, 정복, 외교 등을 구축합니다. 갈 곳을 고르는 것은 종종 매우 어렵고,지도의 조건에 따라 바뀔 수 있습니다. 예를 들어, 방금 만난 사람이 과학보다 앞서 있다는 것을 발견 할 수 있으며, 그 길을 버리고 새로운 길을 찾아야합니다. 가능한 한 오랫동안 옵션을 열어 두는 데 성공하는 경우가 종종 있습니다.
DampeS8N

@NicolBolas는 그것보다 훨씬 더 복잡 할 수 있지만, 모든 점은 AI의 낮은 수준에 대한 책임으로 보입니다. 누가 전쟁을 선포할지 결정-> 운영. 공격하기 가장 약한 대상-> 작전 / 전술. 올바른 자원 확보-> 운영 / 전략. 이것은 전적으로 추측되지만, 하위 시스템이 가장 낮은 수준의 커플 링을 보장하기위한 특정 전략을 책임지는 것은 당연합니다.
Ray Dey

1
@RayDey : AI 획득 방법을 결정해야하므로 리소스 획득과 같은 일에 최고 수준의 AI가 관여해야합니다. 외교가 그것을 얻을 수 있습니다. 자원으로 확장하면 얻을 수 있습니다. 작전 레벨은 다른 전술과 달리 싸울 것인지 결정하기에 적절한 장소가 아닙니다. 커플 링은 문명과 같은 게임에 필수적입니다. 모든 것이 그 게임의 다른 모든 것에 영향을 미칩니다. 많은 결합없이 의사 결정을 내리는 효과적인 AI를 가질 수 없습니다. 문명 V의 AI가 ... 특히 밝은되지 않는 이유하지만 그 설명 할 수)
니콜 올가미

9

일반적으로 게임의 AI는 '복잡한'것으로 생각되어서는 안됩니다. 최소한의 노력으로 원하는 것을 얻는 것이 전부입니다. 게임의 이름은 Emergence입니다.

이 경우 기본 개념이 잘못되었습니다. 이 4 개의 시스템은 전혀 협력 할 필요가 없습니다. 그들은 단지 그들이하는 것처럼 보일 필요가 있습니다. 그들은 당신이 생각하는 것보다 훨씬 더 많이 제거 될 수 있습니다.

어려움의 순서를 반대로 바꿨습니다. Civ AI의 가장 어려운 요소는 전술적 AI이며 그 뒤에는 작전이 있습니다. 전략은 아마도 매우 간단하고, 웅대 한 AI는 여전히 더 간단 할 것입니다.

구성 요소 간의 통신은 단순한 시스템과 비슷하고 실제 통신과는 다릅니다. 높은 수준에서 낮은 수준으로 다음과 같이 보입니다.

그랜드 AI

지도의 상태를 평가하십시오. AI가 가지고있는 지식 (모든 것이거나 플레이어 인 경우에만있을 수있는 지식)이 주어지면 최종 목표가 가장 빠른 목표를 결정합니다. 그것은 가능성이있다 유한 상태 기계 일부 번호 사각 사각을 수행하고 목표를 선택합니다. 아마도 그것은 더 이국적인 것입니다. 유전자 알고리즘 가능성 또는 베이지안 기반 보내 드릴 . 그런 다음 "더 많은 과학"과 같은 메시지가 표시됩니다.

스트랫 AI

그런 다음 동일한 정보를 많이 사용하여 사용할 수있는 기능을 살펴 봅니다. 그것은 전반적인 목표를 달성하려고 노력하지만 게임의 더 자세한 측면에 대해서도 걱정합니다. 내가 전쟁 중입니까? 배고픈 사람들이 있습니까? 곧. 아마도 Finite-state machine 일 수도 있습니다. Fuzzy Logic (실제로 FSM의 진화 일 것입니다) 간단한 FSM이라고 가정 해 봅시다. 특정 기준에 따라 이번 라운드에서 발생해야 할 다른 사항을 결정하는 순서로 위의 질문을합니다. 나는 전쟁 중이다. 군인들을 훈련시키기 위해 돈을 할당한다. 내 사람들은 굶주리고 과학적으로 무언가를 짓기보다는 곡물 창고를 짓습니다.

구축 할 유닛을 고르는 것은 우리가 어떻게 분리하고 있는지에 따라 Strat AI 또는 Op AI의 일부가 될 수 있습니다.

옵션 AI

사용 가능한 유닛을 가지고 다른 전쟁 전선으로 이동하도록 할당합니다. 새로운 유닛이 배치되면 갈등의 전반적인 형태를 결정합니다. 아마도 FSM 일 것입니다. 전선 A의 적군이 유닛 B에 약한 유닛으로 공격하고 있으며 유닛 B에 강한 다른 전선보다 더 많은 유닛 B를 그곳에 보낼 것입니다. 그것은 유닛에게 일반 명령을 내릴 것입니다. 마음대로 공격하십시오. 후퇴. 곧.

전술 AI

단위마다 다릅니다. 각 유형의 단위는 일반적인 순서와 다르게 반응합니다. 자살을 의도 한 부대는 퇴각 명령을 무시할 수 있습니다. 비난당한 유닛은 전투하라는 지시를 받더라도 퇴각 할 수 있습니다. Civ는 일반적으로 이런 종류의 것에서 매우 밝습니다. 일반적으로 Civ의 모든 장치는 해당 명령을 따릅니다. 그들이 아래에있는 더 큰 질서를 감안할 때, 그들은 FSM입니다. 다쳤습니까? 나는 물러서서 치유해야한다. 이 위치에서 이점이 있습니까? 공격. 나도 공격에 가까워? 물러나 다. 그리고이 FSM의 복잡성이 효과적이고 지능적으로 설득력을 발휘할 수있는 3 가지 이상일 필요는 없습니다.

이것이 향상 될 수 있습니까?

물론입니다. 문제는 플레이어가 알아 차릴 수 있는지입니다. 그리고 99 %는 그렇지 않습니다.

이제 이것은 모든 의사 결정 AI입니다. 여기에는 다른 AI 서브 시스템이 있습니다. 유닛이 위치까지 가장 짧은 경로를 찾도록하는 A * 또는 다른 경로 찾기 알고리즘이 있습니다. 새로운 도시를 시작하기에 가장 좋은 위치를 찾는 알고리즘이 있습니다. 곧. AI로 그룹화되는 경우가 많으며 AI의 '생각'부분보다 훨씬 더 복잡합니다. 실제로 FSM이 요구하는 질문에 대한 답을 찾는 코드는 종종 FSM 자체보다 훨씬 복잡합니다. 정확히 어떻게 결정합니까?


Bayesian based doohicky-awesome
Brian Broom
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.