SlideShare a Scribd company logo
GPG 2. Section 3. Artificial Intelligence

Strategic Assessment
Techniques
                 DevRookie GPG Study, 2012. 2. 10. Hebory




전략적 판단 기법
전략 게임을 개발하는 M사의 김대리




             당장 게임 AI
              만들어와
몇 가지 정해진 성장 패턴을 정해 두고 사용

If (드론 == 5) 빌드(스포닝폴)
Else If (드론 == 7) 생성(저글링)
Else If (저글링 > 10) 공격 끝~!

If (드론 == 9) 생성(오버)
Else If (드론 == 12) 생성(해처리)
… 룰루 랄라~

      그까이꺼 대충 짜는 김대리
너 해고!



        …
전략적 평가 기법들?
이 글에서 말하고자 하는 것
   전략 게임을 예로 들어 전술적 행동을 위한
AI의 판단 근거로 이용하는 정보의 종류와 방법
Paul Tozour

     Ion Storm Austin의
  Thief 3를 위한 AI 개발

     MS MechWarrior 4
       전투 AI(봇) 개발



글쓴이는 누구일까?
플레이어가 현재 소유한 모든 자산을
트리 형태로 분류하여 표현한 것


       자원 배정 트리
루트 : 플레이어의 전체 자산
 말단 노드 : 구체적인 유닛 종류
            유닛의 총 수
                총 HP
          사망한 유닛 총 수
          통계적 정보 보관




자원 배정 트리
AI 자신을 포함한 전체 플레이어의
자원 배정 트리를 관리
플레이어가 현재 가지고 있는 또는
생산할 수 있는 자산들만 담는다


            자료 구조
트리를 통한 의사 결정을 위해
각 노드별로 적절한 우선순위를 적용
시행 착오를 통해 적절한 값 조절


      배정 적합도 계산
루트
                  1.0

      군사
      0.3               경제
                  정보    0.6
                  0.1

공격
0.2         방어


                    배정 적합도 계산
            0.1
플레이어가 현재 소유한 자산의
수치적 분석 결과


     현재 배정의 결정
현재 배정의 결정
현재 배정의 결정
각 노드의 평가치를 구한 후
부모 노드로 합산
루트 노드에는 모든 자식 노드들의
배정값들이 모이게 됨

      배정 적합도 계산
각 노드의 배정값과 원래 노드의
적합도 값을 비교하여 적합도 판단



      배정 적합도 계산
자원 배정 트리는 기본적으로
어떤 새 유닛들을 생산할 것이며
기존 유닛들에게 어떤 역할을 맡길
것인지를 결정하는데 유용

      전략적 의사 결정
구분    마린   파이어뱃   고스트

 마린    0     -1     -2

파이어뱃   1     0      -1        유닛들 간의
고스트    2     1      0
                         상대적 강도를 기반한
                     전투 균형 테이블을 제작 후
                   어떠한 결정을 내릴 때 참고한다.


                   전략적 의사 결정
트리 안에 어떤 노드가 유효했는지,
어떤 노드가 실패했는지 등의
역사적 정보를 관리하여 참고


      전략적 의사 결정
이를 통해 개성있는
AI 플레이어를 창조

     전략적 의사 결정
실제 구현상의 어려운 점은
각 유닛들에 대한 평가 방법을 찾는 것
각 노드에 쓰이는 수치 단위들을
그 노드가 속한 모든 유닛들의
값들과 공통의 단위 사용

           값들의 측정
게임 안의 서로 다른 자산 종류들
사이의 모든 의존성들을
나타내는 자료 구조


        의존성 그래프
창병을 생성하려면 병영이 필요
제국의 시대에 들어가려면 성을 건설


          생성 의존성
생성 의존성
마법사는 마나가 필요
마나는 오직 사원에서만 생성
즉, 사원이 있어야 마법사가 유용


          지원 의존성
자원 배정 트리는 현재 사용 할 수
있는 자산들만 담지만
의존성 그래프는 게임에 존재할 수
있는 모든 종류의 자산을 담는다


        의존성 그래프
의존성 그래프의 가장 우선적이며
명백한 용도는 어떠한 목표를
달성하기 위한 계획을 수립하는 것


          경제적 계획
공격 지향형 AI
방어 지향형 AI
급한 성격의 AI
계획 지향적인 AI


             경제적 계획
본래의 가치
해당 자산 그 자체로 가치가 있는 경우
강한 자식 의존성
다른 자산을 생산하거나 지원하는 데 필수적인 자산
약한 부모 의존성
약하다는 건 공격하기 쉽다는 뜻



      취약한 의존성 찾기
의존성 그래프는 상대 플레이어의
현재 자산을 추정하고 불완전한
정보에 기반해서 전략적 판단을
내리는 데 도움이 된다.


         전략적 추정
자식 쪽으로 의존성을 추적하는 것
병영의 존재를 확인함으로써
그 병영에 의존하는 창병이
생길것을 예측


          순방향 추정
부모 쪽으로 의존성을 추적하는 것
창병이 있음을 발견하면
병영이 존재함을 알 수 있음


          역방향 추정
결론
     그냥 잘 짜면 됨
         배고파~

More Related Content

Viewers also liked

[11 0730] gpg 2.1.11 게임에 내장되는 프로파일링 모듈(공개)
[11 0730] gpg 2.1.11 게임에 내장되는 프로파일링 모듈(공개)[11 0730] gpg 2.1.11 게임에 내장되는 프로파일링 모듈(공개)
[11 0730] gpg 2.1.11 게임에 내장되는 프로파일링 모듈(공개)SeungMin Yang
 
Gpg 1.13 ~ 1.14
Gpg 1.13 ~ 1.14Gpg 1.13 ~ 1.14
Gpg 1.13 ~ 1.14sj k
 
[0604 석재호]광택성사전필터링
[0604 석재호]광택성사전필터링[0604 석재호]광택성사전필터링
[0604 석재호]광택성사전필터링Jaeho Seok
 
[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규ChangKyu Song
 
[NDC2014] 반응적 라이브 개발
[NDC2014] 반응적 라이브 개발[NDC2014] 반응적 라이브 개발
[NDC2014] 반응적 라이브 개발
ChangKyu Song
 
GPG Study 4.3 카메라 제어기법
GPG Study 4.3 카메라 제어기법GPG Study 4.3 카메라 제어기법
GPG Study 4.3 카메라 제어기법
연우 김
 
Gpg study5.5
Gpg study5.5Gpg study5.5
Gpg study5.5
연우 김
 
Windows system - memory개념잡기
Windows system - memory개념잡기Windows system - memory개념잡기
Windows system - memory개념잡기ChangKyu Song
 
GPG 1.2 템플릿 메타프로그래밍을 이용한 빠른 수학 연산
GPG 1.2 템플릿 메타프로그래밍을 이용한 빠른 수학 연산GPG 1.2 템플릿 메타프로그래밍을 이용한 빠른 수학 연산
GPG 1.2 템플릿 메타프로그래밍을 이용한 빠른 수학 연산
Taeung Ra
 
Ai 그까이거
Ai 그까이거Ai 그까이거
Ai 그까이거
도형 임
 
Gpg gems1 1.3
Gpg gems1 1.3Gpg gems1 1.3
Gpg gems1 1.3david nc
 

Viewers also liked (12)

[11 0730] gpg 2.1.11 게임에 내장되는 프로파일링 모듈(공개)
[11 0730] gpg 2.1.11 게임에 내장되는 프로파일링 모듈(공개)[11 0730] gpg 2.1.11 게임에 내장되는 프로파일링 모듈(공개)
[11 0730] gpg 2.1.11 게임에 내장되는 프로파일링 모듈(공개)
 
Gpg 1.13 ~ 1.14
Gpg 1.13 ~ 1.14Gpg 1.13 ~ 1.14
Gpg 1.13 ~ 1.14
 
[0604 석재호]광택성사전필터링
[0604 석재호]광택성사전필터링[0604 석재호]광택성사전필터링
[0604 석재호]광택성사전필터링
 
GPG 1권 4.12 VIPM
GPG 1권 4.12 VIPMGPG 1권 4.12 VIPM
GPG 1권 4.12 VIPM
 
[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규
 
[NDC2014] 반응적 라이브 개발
[NDC2014] 반응적 라이브 개발[NDC2014] 반응적 라이브 개발
[NDC2014] 반응적 라이브 개발
 
GPG Study 4.3 카메라 제어기법
GPG Study 4.3 카메라 제어기법GPG Study 4.3 카메라 제어기법
GPG Study 4.3 카메라 제어기법
 
Gpg study5.5
Gpg study5.5Gpg study5.5
Gpg study5.5
 
Windows system - memory개념잡기
Windows system - memory개념잡기Windows system - memory개념잡기
Windows system - memory개념잡기
 
GPG 1.2 템플릿 메타프로그래밍을 이용한 빠른 수학 연산
GPG 1.2 템플릿 메타프로그래밍을 이용한 빠른 수학 연산GPG 1.2 템플릿 메타프로그래밍을 이용한 빠른 수학 연산
GPG 1.2 템플릿 메타프로그래밍을 이용한 빠른 수학 연산
 
Ai 그까이거
Ai 그까이거Ai 그까이거
Ai 그까이거
 
Gpg gems1 1.3
Gpg gems1 1.3Gpg gems1 1.3
Gpg gems1 1.3
 

More from SeungMin Yang

[12 0324] 빛과 그림자
[12 0324] 빛과 그림자[12 0324] 빛과 그림자
[12 0324] 빛과 그림자SeungMin Yang
 
[12 0114] 비실사 렌더링 기법
[12 0114] 비실사 렌더링 기법[12 0114] 비실사 렌더링 기법
[12 0114] 비실사 렌더링 기법SeungMin Yang
 
[11 0212] 정렬, 선택, 탐색 알고리즘
[11 0212] 정렬, 선택, 탐색 알고리즘[11 0212] 정렬, 선택, 탐색 알고리즘
[11 0212] 정렬, 선택, 탐색 알고리즘SeungMin Yang
 
[11 0702] 추상 인터페이스를 이용한 프로그래밍
[11 0702] 추상 인터페이스를 이용한 프로그래밍[11 0702] 추상 인터페이스를 이용한 프로그래밍
[11 0702] 추상 인터페이스를 이용한 프로그래밍SeungMin Yang
 
[11 0702] 스마트 하지 못한 개발자의 스마트폰 게임 개발 하기(공개용)
[11 0702] 스마트 하지 못한 개발자의 스마트폰 게임 개발 하기(공개용)[11 0702] 스마트 하지 못한 개발자의 스마트폰 게임 개발 하기(공개용)
[11 0702] 스마트 하지 못한 개발자의 스마트폰 게임 개발 하기(공개용)SeungMin Yang
 
내 마음대로 정리 해 본 ndc 발표 자료
내 마음대로 정리 해 본 ndc 발표 자료내 마음대로 정리 해 본 ndc 발표 자료
내 마음대로 정리 해 본 ndc 발표 자료SeungMin Yang
 
알고리즘 스터디 NP-완비
알고리즘 스터디 NP-완비알고리즘 스터디 NP-완비
알고리즘 스터디 NP-완비SeungMin Yang
 
[Gpg1권] 5.3 정점 색상 보간을 이용한 모의 실시간 조명
[Gpg1권] 5.3 정점 색상 보간을 이용한 모의 실시간 조명[Gpg1권] 5.3 정점 색상 보간을 이용한 모의 실시간 조명
[Gpg1권] 5.3 정점 색상 보간을 이용한 모의 실시간 조명SeungMin Yang
 
그래프 알고리즘
그래프 알고리즘그래프 알고리즘
그래프 알고리즘
SeungMin Yang
 

More from SeungMin Yang (9)

[12 0324] 빛과 그림자
[12 0324] 빛과 그림자[12 0324] 빛과 그림자
[12 0324] 빛과 그림자
 
[12 0114] 비실사 렌더링 기법
[12 0114] 비실사 렌더링 기법[12 0114] 비실사 렌더링 기법
[12 0114] 비실사 렌더링 기법
 
[11 0212] 정렬, 선택, 탐색 알고리즘
[11 0212] 정렬, 선택, 탐색 알고리즘[11 0212] 정렬, 선택, 탐색 알고리즘
[11 0212] 정렬, 선택, 탐색 알고리즘
 
[11 0702] 추상 인터페이스를 이용한 프로그래밍
[11 0702] 추상 인터페이스를 이용한 프로그래밍[11 0702] 추상 인터페이스를 이용한 프로그래밍
[11 0702] 추상 인터페이스를 이용한 프로그래밍
 
[11 0702] 스마트 하지 못한 개발자의 스마트폰 게임 개발 하기(공개용)
[11 0702] 스마트 하지 못한 개발자의 스마트폰 게임 개발 하기(공개용)[11 0702] 스마트 하지 못한 개발자의 스마트폰 게임 개발 하기(공개용)
[11 0702] 스마트 하지 못한 개발자의 스마트폰 게임 개발 하기(공개용)
 
내 마음대로 정리 해 본 ndc 발표 자료
내 마음대로 정리 해 본 ndc 발표 자료내 마음대로 정리 해 본 ndc 발표 자료
내 마음대로 정리 해 본 ndc 발표 자료
 
알고리즘 스터디 NP-완비
알고리즘 스터디 NP-완비알고리즘 스터디 NP-완비
알고리즘 스터디 NP-완비
 
[Gpg1권] 5.3 정점 색상 보간을 이용한 모의 실시간 조명
[Gpg1권] 5.3 정점 색상 보간을 이용한 모의 실시간 조명[Gpg1권] 5.3 정점 색상 보간을 이용한 모의 실시간 조명
[Gpg1권] 5.3 정점 색상 보간을 이용한 모의 실시간 조명
 
그래프 알고리즘
그래프 알고리즘그래프 알고리즘
그래프 알고리즘
 

[12 0210] gpg 2.3.7 전략적 판단 기법

  • 1. GPG 2. Section 3. Artificial Intelligence Strategic Assessment Techniques DevRookie GPG Study, 2012. 2. 10. Hebory 전략적 판단 기법
  • 2. 전략 게임을 개발하는 M사의 김대리 당장 게임 AI 만들어와
  • 3. 몇 가지 정해진 성장 패턴을 정해 두고 사용 If (드론 == 5) 빌드(스포닝폴) Else If (드론 == 7) 생성(저글링) Else If (저글링 > 10) 공격 끝~! If (드론 == 9) 생성(오버) Else If (드론 == 12) 생성(해처리) … 룰루 랄라~ 그까이꺼 대충 짜는 김대리
  • 6. 이 글에서 말하고자 하는 것 전략 게임을 예로 들어 전술적 행동을 위한 AI의 판단 근거로 이용하는 정보의 종류와 방법
  • 7. Paul Tozour Ion Storm Austin의 Thief 3를 위한 AI 개발 MS MechWarrior 4 전투 AI(봇) 개발 글쓴이는 누구일까?
  • 8. 플레이어가 현재 소유한 모든 자산을 트리 형태로 분류하여 표현한 것 자원 배정 트리
  • 9. 루트 : 플레이어의 전체 자산 말단 노드 : 구체적인 유닛 종류 유닛의 총 수 총 HP 사망한 유닛 총 수 통계적 정보 보관 자원 배정 트리
  • 10. AI 자신을 포함한 전체 플레이어의 자원 배정 트리를 관리 플레이어가 현재 가지고 있는 또는 생산할 수 있는 자산들만 담는다 자료 구조
  • 11. 트리를 통한 의사 결정을 위해 각 노드별로 적절한 우선순위를 적용 시행 착오를 통해 적절한 값 조절 배정 적합도 계산
  • 12. 루트 1.0 군사 0.3 경제 정보 0.6 0.1 공격 0.2 방어 배정 적합도 계산 0.1
  • 13. 플레이어가 현재 소유한 자산의 수치적 분석 결과 현재 배정의 결정
  • 16. 각 노드의 평가치를 구한 후 부모 노드로 합산 루트 노드에는 모든 자식 노드들의 배정값들이 모이게 됨 배정 적합도 계산
  • 17. 각 노드의 배정값과 원래 노드의 적합도 값을 비교하여 적합도 판단 배정 적합도 계산
  • 18. 자원 배정 트리는 기본적으로 어떤 새 유닛들을 생산할 것이며 기존 유닛들에게 어떤 역할을 맡길 것인지를 결정하는데 유용 전략적 의사 결정
  • 19. 구분 마린 파이어뱃 고스트 마린 0 -1 -2 파이어뱃 1 0 -1 유닛들 간의 고스트 2 1 0 상대적 강도를 기반한 전투 균형 테이블을 제작 후 어떠한 결정을 내릴 때 참고한다. 전략적 의사 결정
  • 20. 트리 안에 어떤 노드가 유효했는지, 어떤 노드가 실패했는지 등의 역사적 정보를 관리하여 참고 전략적 의사 결정
  • 21. 이를 통해 개성있는 AI 플레이어를 창조 전략적 의사 결정
  • 22. 실제 구현상의 어려운 점은 각 유닛들에 대한 평가 방법을 찾는 것 각 노드에 쓰이는 수치 단위들을 그 노드가 속한 모든 유닛들의 값들과 공통의 단위 사용 값들의 측정
  • 23. 게임 안의 서로 다른 자산 종류들 사이의 모든 의존성들을 나타내는 자료 구조 의존성 그래프
  • 24. 창병을 생성하려면 병영이 필요 제국의 시대에 들어가려면 성을 건설 생성 의존성
  • 26. 마법사는 마나가 필요 마나는 오직 사원에서만 생성 즉, 사원이 있어야 마법사가 유용 지원 의존성
  • 27. 자원 배정 트리는 현재 사용 할 수 있는 자산들만 담지만 의존성 그래프는 게임에 존재할 수 있는 모든 종류의 자산을 담는다 의존성 그래프
  • 28. 의존성 그래프의 가장 우선적이며 명백한 용도는 어떠한 목표를 달성하기 위한 계획을 수립하는 것 경제적 계획
  • 29. 공격 지향형 AI 방어 지향형 AI 급한 성격의 AI 계획 지향적인 AI 경제적 계획
  • 30. 본래의 가치 해당 자산 그 자체로 가치가 있는 경우 강한 자식 의존성 다른 자산을 생산하거나 지원하는 데 필수적인 자산 약한 부모 의존성 약하다는 건 공격하기 쉽다는 뜻 취약한 의존성 찾기
  • 31. 의존성 그래프는 상대 플레이어의 현재 자산을 추정하고 불완전한 정보에 기반해서 전략적 판단을 내리는 데 도움이 된다. 전략적 추정
  • 32. 자식 쪽으로 의존성을 추적하는 것 병영의 존재를 확인함으로써 그 병영에 의존하는 창병이 생길것을 예측 순방향 추정
  • 33. 부모 쪽으로 의존성을 추적하는 것 창병이 있음을 발견하면 병영이 존재함을 알 수 있음 역방향 추정
  • 34. 결론 그냥 잘 짜면 됨 배고파~