ݺߣ

ݺߣShare a Scribd company logo
게임 인공지능 설계
이야기하려는 내용
• 인공짶ĵ()이란?
• 게임에서의 인공지능
• 실습
• 좋은 인공지능을 만드는 요건
인공짶ĵ()이란?
인공지능이란?
• 인공지능
➢ 인공적(Artificial)으로 만들어진 지적 능력(Intelligence)
➢ ‘기계가 인간과 같이 행동하거나 사고할 수 있을까?’ 원래는 심리학에서부터 시작한 이론
➢ 언어적 지능을 통해 “기계가 지능적 행동을 할 수 있을까?“에서 부터 시작 (튜링 테스트)
➢ 1940~50년에 이미 이론은 있었지만 처리 속도가 컴퓨터의 성능이 감당할 수 없었음
➢ 하지만 현대에 와서는 빅데이터를 기반으로 한 머신 러닝 기술 등이 현대 사회에 크게 기여 중
게임에서의 인공지능
게임에서의 인공지능
• 길 찾기 알고리즘
➢ A* 알고리즘
▪ 시작지에서 목적지까지의 최단거리를 찾는 휴리스틱 이론의 알고리즘
▪ 최단 거리를 찾기 위해 많은 경우의 수를 일일이 계산하기 때문에, 경우의 수가 많아지거나
길이 복잡할 수록 연산량이 폭발적으로 증가
▪ 맵 정보의 변경에 따라 실시간으로 대응 가능
➢ NavMesh AI
▪ 맵 내에서 갈 수 있는 곳과 없는 곳을 미리 설정해 놓고 그 안에서 최단거리를 찾는 알고리즘
▪ 맵 정보를 미리 알고있어야 하기 때문에 네비게이션 매쉬 데이터를 미리 Bake(굽다)해 가지
고 있어야 함
▪ 때문에 Bake 과정이 존재하며, 이 Bake된 NavMesh 데이터는 실시간 변경에 따른 대응이
힘듦
▪ 정해진 오브젝트의 이동에 대해서는 실시간 처리 가능
A* 알고리즘
NavMesh AI
• 명령 계통 구조 (Command Hierarchy)
➢ 각각의 AI에게 상위, 하위 등으로 수준을 나눠 서로 명령을 주거나 받을 수 있도록 하는 구조
▪ Ex.1
✓ 전략만을 구상해 판단하고 지시하는 상위 AI
✓ 지시 받은 명령 내에서 행동을 수행하는 하위 AI
➢ RTS나 각종 시뮬레이션 게임 등에서 주로 사용
StarCraft C&C Red Alert 2
게임에서의 인공지능
• 추측 항법 (Dead Reckoning)
➢ 개체의 현재 위치, 속도, 방향 등의 정보에 근거해 다음 위치를 예측하는 방법
➢ TPS, FPS 게임 등에서 NPC AI가 플레이어를 향해 공격해야 할 경우 사격 정확도 등을 조절 가능
➢ 스포츠 게임에서 각 캐릭터의 위치나 패스 위치 등을 계산해 패스 가로채기 등을 하는 경우에 사용
Uncharted 4 FIFA Online 4
게임에서의 인공지능
• 대형 (Formation)
➢ 집단 이동의 방법으로 특정한 대형을 유지하며 이동하는 방법
➢ RTS 게임이나 비행 시뮬레이션 게임에서 주로 사용
➢ LOL 라인 미니언들도 특정 대형을 유지하며 이동 중
비행 군집 예 보병 군집 예
게임에서의 인공지능
• 유한 상태 기계 (Finite-State Machine, FSM)
➢ 유한한 개수의 상태를 가질 수 있는 기계 모델
➢ 상태마다 정해진 행동이 가능하며, 동시에 하나의 상태만을 가질 수 있다
➢ 어떠한 Event에 의해 다른 상태로 전이될 수 있다
Monster FSM 예 1 Monster FSM 예 2
http://blog.naver.com/PostView.nhn?blogI
d=destiny9720&logNo=220914600833
/skyseer/120629
-fsm-in-unity3d-skyseer
게임에서의 인공지능
실습
실습
• 실습1 : 출근 길
➢ 자신이 출근하는 길을 집을 나온 후부터 도착까지의 흐름을 설계
➢ 내가 할 수 있는 행동의 종류는?
▪ 걷기
▪ 회전
▪ 타기? 내리기?
➢ 어떤 조건에서 행동이 변하는가?
➢ 순차적으로 흐름을 행동 순으로 표현
실습
• 실습2 : 간단한 몬스터 AI 모델 설계
➢ 위에서 나온 FSM 모델을 통해 설계
▪ 상태와 행동만으로 AI를 정의
▪ 해당 상태가 되면 어떤 행동이 가능한가?
▪ 각종 정보에 따라 상태가 변화하는 조건을 설정
➢ 몬스터는 어떻게 스스로 이동할까?
➢ 몬스터가 이동하기 위해 필요한 정보는?
➢ 몬스터는 언제 공격할까?
➢ 몬스터의 생애 주기 설계
➢ 이 몬스터 AI에게 컨셉을 부여해보자
➢ 영리하게 보이기 위해 어떤 보완을 할 수 있을까?
좋은 AI를 만드는 요건
좋은 AI를 만드는 요건
• 유저가 편법을 쓸 수 있게 만들어라
➢ 유저가 어느정도 눈치챌 수 있는 선에서 AI를 상대할 때 편법을 발견해 활용할 수 있게 만들어라
➢ 고전 중에서 시행착오로 개발자가 의도한 편법을 발견하고 이를 이용해 적을 물리쳤을 경우, 적 AI
가 멍청하다는 느낌보단 자신이 똑똑하다는 느낌을 더 받게 만든다
• AI의 사고를 표현하도록 하라
➢ 음성이나 대사, 시야 등의 각종 표현 방법으로 AI가 생각하고 있는 바를 전달하라
▪ Ex1. “방금 저기 누군가 있던 것 같은데…”. -> “내가 잘 못 봤나 보군”
➢ AI에게 개성을 부여해 모두 같은 AI가 아닌 것처럼 보이는 것도 좋은 방법
➢ AI가 아무리 복잡한 계산과 상황 판단 능력을 가지고 있어도 유저가 인지할 수 없다면 알 수 없다
좋은 AI를 만드는 요건
• 예측 가능한 AI를 만들어라
➢ AI는 플레이어의 특정 행동이나 상황에 대해 일관된 반응을 기대할 수 있도록 만들어야 한다
➢ 플레이어가 게임을 통해 패턴을 학습하고 이를 활용해 목표 달성을 위한 계획 설계가 가능해야 한다
▪ Ex1. 경비 NPC는 맵에 떨어진 총을 주워 상자에 반납 -> 발전기 전원이 내려가면 경비들이 일
제히 가장 가까운 상자로 총을 주으러 감 -> 발전기 전원을 강제로 내려 우회로가 생긴다면?
➢ 위 패턴이 일관된다면 플레이어는 계획을 짜고 실행에 옮겨 기대한 효과를 볼 수 있음
➢ 행동이 일관되지 않아 예측이 불가능하다면 계획을 짤 수 없고 게임 플레이에 차질이 생김
➢ 예측 가능하다고 해서 모두 쉬운 게임이 되는 것은 아님
• AI가 게임 시스템과 상호작용하게 하라
➢ 젤다의 전설 –야생의 숨결- 에서는 몬스터 AI가 환경적인 요소까지 접근해 다룰 수 있다
▪ Ex.1 근처에 무기가 있다면 주워서 싸움
▪ Ex.2 무기에 불을 붙여 불 공격 가능
➢ 이러한 행동이 플레이어에게 AI가 똑똑하다는 인식을 줌
➢ 위의 행동 패턴을 인지하고 있다면 이를 이용한 편법도 활용 가능
좋은 AI를 만드는 요건
• 성장하는 AI
➢ 플레이어의 행동에 따라 다르게 반응하는 AI를 만들어라
➢ 과거에 보았던 AI라 할지라도 새로운 능력을 얻어 성장한 것처럼 보이는 것도 좋은 방법이다
※ 실제로 강화학습을 통해 성장하지 않았다 하더라도
• AI가 자체적인 목표를 가지도록 하라
➢ 게임의 의도에 따라 AI의 목표는 “플레이어를 죽인다”가 아닌 그 이상의 목표를 가질 수 있다
▪ Ex.1 플레이어를 죽이려 하는 이유는? -> 내 영역에 침범했고 위협이 됐다고 판단했기 때문 ->
플레이어 이외의 위협이 되는 개체가 접근한다면? -> 그 개체와 전투 실시 (몬스터 헌터 월드)
▪ Ex.2 영역 내에서 새끼를 지키는 AI를 가진 몬스터에게 가장 위협적인 적은, 자신을 공격하는 적
이 아닌 새끼를 공격하는 적이 될 것
정리
정리
• 적들의 멍청한 행동 선택은 게임의 몰입을 방해하며, 그들을 상대해 일방적으로 때려 눕히
는 것은 결코 재미있는 경험이 되지 못한다
• AI는 게임 의도에 부합한 행동을 해야 하며, 행동마다 개성을 부여하면 더욱 흥미로워 진다
• AI는 유저를 죽이기 위해 만들어진 것이 아닌, 좋은 경험을 선사하기 위한 것이다

More Related Content

What's hot (20)

NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계
NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계
NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계
Imseong Kang
게임제작개론 : #4 게임 밸런싱
게임제작개론 : #4 게임 밸런싱게임제작개론 : #4 게임 밸런싱
게임제작개론 : #4 게임 밸런싱
Seungmo Koo
위대한 게임개발팀의 공통점
위대한 게임개발팀의 공통점위대한 게임개발팀의 공통점
위대한 게임개발팀의 공통점
Ryan Park
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템
QooJuice
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
MinGeun Park
모바일 게임기획 따라하며 배우기
모바일 게임기획 따라하며 배우기모바일 게임기획 따라하며 배우기
모바일 게임기획 따라하며 배우기
Sunnyrider
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
devCAT Studio, NEXON
NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들
Jubok Kim
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
Kay Kim
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012
devCAT Studio, NEXON
게임 개발 파이프라인과 시스템 기획(공개용)
게임 개발 파이프라인과 시스템 기획(공개용)게임 개발 파이프라인과 시스템 기획(공개용)
게임 개발 파이프라인과 시스템 기획(공개용)
ChangHyun Won
[NDC 2021] 게임 PD가 되어 보니
[NDC 2021] 게임 PD가 되어 보니[NDC 2021] 게임 PD가 되어 보니
[NDC 2021] 게임 PD가 되어 보니
Yongha Kim
기획자의 포트폴리오는 어떻게 써야 할까
기획자의 포트폴리오는 어떻게 써야 할까기획자의 포트폴리오는 어떻게 써야 할까
기획자의 포트폴리오는 어떻게 써야 할까
Han Je Sung
[ NDC 14 ] 가죽 장화를 먹게 해주세요 - [ 야생의 땅 : 듀랑고 ] 의 자유도 높은 아이템 시스템 디자인
[ NDC 14 ] 가죽 장화를 먹게 해주세요 - [ 야생의 땅 : 듀랑고 ] 의 자유도 높은 아이템 시스템 디자인 [ NDC 14 ] 가죽 장화를 먹게 해주세요 - [ 야생의 땅 : 듀랑고 ] 의 자유도 높은 아이템 시스템 디자인
[ NDC 14 ] 가죽 장화를 먹게 해주세요 - [ 야생의 땅 : 듀랑고 ] 의 자유도 높은 아이템 시스템 디자인
Jungsoo Lee
게임 시스템 디자인 시작하기
게임 시스템 디자인 시작하기게임 시스템 디자인 시작하기
게임 시스템 디자인 시작하기
ByungChun2
[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?
[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?
[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?
강 민우
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
devCAT Studio, NEXON
게임제작개론: #2 세부 디자인 요소
게임제작개론: #2 세부 디자인 요소게임제작개론: #2 세부 디자인 요소
게임제작개론: #2 세부 디자인 요소
Seungmo Koo
게임제작개론: #3 간접통제와 게임 커뮤니티
게임제작개론: #3 간접통제와 게임 커뮤니티게임제작개론: #3 간접통제와 게임 커뮤니티
게임제작개론: #3 간접통제와 게임 커뮤니티
Seungmo Koo
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리
강 민우
NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계
NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계
NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계
Imseong Kang
게임제작개론 : #4 게임 밸런싱
게임제작개론 : #4 게임 밸런싱게임제작개론 : #4 게임 밸런싱
게임제작개론 : #4 게임 밸런싱
Seungmo Koo
위대한 게임개발팀의 공통점
위대한 게임개발팀의 공통점위대한 게임개발팀의 공통점
위대한 게임개발팀의 공통점
Ryan Park
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템
QooJuice
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
MinGeun Park
모바일 게임기획 따라하며 배우기
모바일 게임기획 따라하며 배우기모바일 게임기획 따라하며 배우기
모바일 게임기획 따라하며 배우기
Sunnyrider
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
devCAT Studio, NEXON
NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들
Jubok Kim
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
Kay Kim
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012
devCAT Studio, NEXON
게임 개발 파이프라인과 시스템 기획(공개용)
게임 개발 파이프라인과 시스템 기획(공개용)게임 개발 파이프라인과 시스템 기획(공개용)
게임 개발 파이프라인과 시스템 기획(공개용)
ChangHyun Won
[NDC 2021] 게임 PD가 되어 보니
[NDC 2021] 게임 PD가 되어 보니[NDC 2021] 게임 PD가 되어 보니
[NDC 2021] 게임 PD가 되어 보니
Yongha Kim
기획자의 포트폴리오는 어떻게 써야 할까
기획자의 포트폴리오는 어떻게 써야 할까기획자의 포트폴리오는 어떻게 써야 할까
기획자의 포트폴리오는 어떻게 써야 할까
Han Je Sung
[ NDC 14 ] 가죽 장화를 먹게 해주세요 - [ 야생의 땅 : 듀랑고 ] 의 자유도 높은 아이템 시스템 디자인
[ NDC 14 ] 가죽 장화를 먹게 해주세요 - [ 야생의 땅 : 듀랑고 ] 의 자유도 높은 아이템 시스템 디자인 [ NDC 14 ] 가죽 장화를 먹게 해주세요 - [ 야생의 땅 : 듀랑고 ] 의 자유도 높은 아이템 시스템 디자인
[ NDC 14 ] 가죽 장화를 먹게 해주세요 - [ 야생의 땅 : 듀랑고 ] 의 자유도 높은 아이템 시스템 디자인
Jungsoo Lee
게임 시스템 디자인 시작하기
게임 시스템 디자인 시작하기게임 시스템 디자인 시작하기
게임 시스템 디자인 시작하기
ByungChun2
[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?
[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?
[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?
강 민우
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
devCAT Studio, NEXON
게임제작개론: #2 세부 디자인 요소
게임제작개론: #2 세부 디자인 요소게임제작개론: #2 세부 디자인 요소
게임제작개론: #2 세부 디자인 요소
Seungmo Koo
게임제작개론: #3 간접통제와 게임 커뮤니티
게임제작개론: #3 간접통제와 게임 커뮤니티게임제작개론: #3 간접통제와 게임 커뮤니티
게임제작개론: #3 간접통제와 게임 커뮤니티
Seungmo Koo
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리
강 민우

Similar to 게임 인공지능 설계 (20)

게임제작개론: #1 게임 구성 요소의 이해
게임제작개론: #1 게임 구성 요소의 이해게임제작개론: #1 게임 구성 요소의 이해
게임제작개론: #1 게임 구성 요소의 이해
Seungmo Koo
지대리 프로젝트
지대리 프로젝트지대리 프로젝트
지대리 프로젝트
GukHwan Ji
레벨디자인 특강 이동훈
레벨디자인 특강 이동훈레벨디자인 특강 이동훈
레벨디자인 특강 이동훈
Donghun Lee
레벨디자인 특강 이동훈
레벨디자인 특강 이동훈레벨디자인 특강 이동훈
레벨디자인 특강 이동훈
Donghun Lee
POSCAT AI seminar 01 완전탐색과 스코어링
POSCAT AI seminar 01 완전탐색과 스코어링POSCAT AI seminar 01 완전탐색과 스코어링
POSCAT AI seminar 01 완전탐색과 스코어링
승진 김
All That Puzzle Games
All That Puzzle GamesAll That Puzzle Games
All That Puzzle Games
Shin Dongwon
NHN NEXT 게임 전공 소개
NHN NEXT 게임 전공 소개NHN NEXT 게임 전공 소개
NHN NEXT 게임 전공 소개
Seungmo Koo
홍길동제안서
홍길동제안서홍길동제안서
홍길동제안서
Lee Jungpyo
홍길동제안서
홍길동제안서홍길동제안서
홍길동제안서
JP Lee
게임디자인 게임시스템
게임디자인   게임시스템게임디자인   게임시스템
게임디자인 게임시스템
Edward Hwang
NDC 2014 Beyond Code: <야생의 땅:듀랑고>의 좌충우돌 개발 과정 - 프로그래머가 챙겨주는 또 다른 개발자 사용 설명서
NDC 2014 Beyond Code: <야생의 땅:듀랑고>의 좌충우돌 개발 과정 - 프로그래머가 챙겨주는 또 다른 개발자 사용 설명서NDC 2014 Beyond Code: <야생의 땅:듀랑고>의 좌충우돌 개발 과정 - 프로그래머가 챙겨주는 또 다른 개발자 사용 설명서
NDC 2014 Beyond Code: <야생의 땅:듀랑고>의 좌충우돌 개발 과정 - 프로그래머가 챙겨주는 또 다른 개발자 사용 설명서
영준 박
재미이론의 시사점과 게임 플레이 개선에 적용방안
재미이론의 시사점과 게임 플레이 개선에 적용방안재미이론의 시사점과 게임 플레이 개선에 적용방안
재미이론의 시사점과 게임 플레이 개선에 적용방안
Sunnyrider
게임 기획자의 생존 전략
게임 기획자의 생존 전략게임 기획자의 생존 전략
게임 기획자의 생존 전략
태성 이
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
ChangHyun Won
[IGC2015] 디앤씨게임즈 이윤환-탐정의 왕과 범죄의 왕 그 3년의 기억
[IGC2015] 디앤씨게임즈 이윤환-탐정의 왕과 범죄의 왕 그 3년의 기억[IGC2015] 디앤씨게임즈 이윤환-탐정의 왕과 범죄의 왕 그 3년의 기억
[IGC2015] 디앤씨게임즈 이윤환-탐정의 왕과 범죄의 왕 그 3년의 기억
강 민우
게임 기획 튜토리얼 (2015 개정판)
게임 기획 튜토리얼 (2015 개정판)게임 기획 튜토리얼 (2015 개정판)
게임 기획 튜토리얼 (2015 개정판)
Lee Sangkyoon (Kay)
03사람과컴ҳ터
03사람과컴ҳ터03사람과컴ҳ터
03사람과컴ҳ터
태성 이
[IGC2015] 아라소판단 김성욱-게임 기획을 변경하게 되는 요인
[IGC2015] 아라소판단 김성욱-게임 기획을 변경하게 되는 요인[IGC2015] 아라소판단 김성욱-게임 기획을 변경하게 되는 요인
[IGC2015] 아라소판단 김성욱-게임 기획을 변경하게 되는 요인
강 민우
[PandoraCube] 게임 프로그래머로 성장하기
[PandoraCube] 게임 프로그래머로 성장하기[PandoraCube] 게임 프로그래머로 성장하기
[PandoraCube] 게임 프로그래머로 성장하기
PandoraCube , Sejong University
레이더즈 기술 사례
레이더즈 기술 사례레이더즈 기술 사례
레이더즈 기술 사례
기룡 남
게임제작개론: #1 게임 구성 요소의 이해
게임제작개론: #1 게임 구성 요소의 이해게임제작개론: #1 게임 구성 요소의 이해
게임제작개론: #1 게임 구성 요소의 이해
Seungmo Koo
지대리 프로젝트
지대리 프로젝트지대리 프로젝트
지대리 프로젝트
GukHwan Ji
레벨디자인 특강 이동훈
레벨디자인 특강 이동훈레벨디자인 특강 이동훈
레벨디자인 특강 이동훈
Donghun Lee
레벨디자인 특강 이동훈
레벨디자인 특강 이동훈레벨디자인 특강 이동훈
레벨디자인 특강 이동훈
Donghun Lee
POSCAT AI seminar 01 완전탐색과 스코어링
POSCAT AI seminar 01 완전탐색과 스코어링POSCAT AI seminar 01 완전탐색과 스코어링
POSCAT AI seminar 01 완전탐색과 스코어링
승진 김
NHN NEXT 게임 전공 소개
NHN NEXT 게임 전공 소개NHN NEXT 게임 전공 소개
NHN NEXT 게임 전공 소개
Seungmo Koo
홍길동제안서
홍길동제안서홍길동제안서
홍길동제안서
JP Lee
게임디자인 게임시스템
게임디자인   게임시스템게임디자인   게임시스템
게임디자인 게임시스템
Edward Hwang
NDC 2014 Beyond Code: <야생의 땅:듀랑고>의 좌충우돌 개발 과정 - 프로그래머가 챙겨주는 또 다른 개발자 사용 설명서
NDC 2014 Beyond Code: <야생의 땅:듀랑고>의 좌충우돌 개발 과정 - 프로그래머가 챙겨주는 또 다른 개발자 사용 설명서NDC 2014 Beyond Code: <야생의 땅:듀랑고>의 좌충우돌 개발 과정 - 프로그래머가 챙겨주는 또 다른 개발자 사용 설명서
NDC 2014 Beyond Code: <야생의 땅:듀랑고>의 좌충우돌 개발 과정 - 프로그래머가 챙겨주는 또 다른 개발자 사용 설명서
영준 박
재미이론의 시사점과 게임 플레이 개선에 적용방안
재미이론의 시사점과 게임 플레이 개선에 적용방안재미이론의 시사점과 게임 플레이 개선에 적용방안
재미이론의 시사점과 게임 플레이 개선에 적용방안
Sunnyrider
게임 기획자의 생존 전략
게임 기획자의 생존 전략게임 기획자의 생존 전략
게임 기획자의 생존 전략
태성 이
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
ChangHyun Won
[IGC2015] 디앤씨게임즈 이윤환-탐정의 왕과 범죄의 왕 그 3년의 기억
[IGC2015] 디앤씨게임즈 이윤환-탐정의 왕과 범죄의 왕 그 3년의 기억[IGC2015] 디앤씨게임즈 이윤환-탐정의 왕과 범죄의 왕 그 3년의 기억
[IGC2015] 디앤씨게임즈 이윤환-탐정의 왕과 범죄의 왕 그 3년의 기억
강 민우
게임 기획 튜토리얼 (2015 개정판)
게임 기획 튜토리얼 (2015 개정판)게임 기획 튜토리얼 (2015 개정판)
게임 기획 튜토리얼 (2015 개정판)
Lee Sangkyoon (Kay)
[IGC2015] 아라소판단 김성욱-게임 기획을 변경하게 되는 요인
[IGC2015] 아라소판단 김성욱-게임 기획을 변경하게 되는 요인[IGC2015] 아라소판단 김성욱-게임 기획을 변경하게 되는 요인
[IGC2015] 아라소판단 김성욱-게임 기획을 변경하게 되는 요인
강 민우
레이더즈 기술 사례
레이더즈 기술 사례레이더즈 기술 사례
레이더즈 기술 사례
기룡 남

게임 인공지능 설계

  • 2. 이야기하려는 내용 • 인공짶ĵ()이란? • 게임에서의 인공지능 • 실습 • 좋은 인공지능을 만드는 요건
  • 4. 인공지능이란? • 인공지능 ➢ 인공적(Artificial)으로 만들어진 지적 능력(Intelligence) ➢ ‘기계가 인간과 같이 행동하거나 사고할 수 있을까?’ 원래는 심리학에서부터 시작한 이론 ➢ 언어적 지능을 통해 “기계가 지능적 행동을 할 수 있을까?“에서 부터 시작 (튜링 테스트) ➢ 1940~50년에 이미 이론은 있었지만 처리 속도가 컴퓨터의 성능이 감당할 수 없었음 ➢ 하지만 현대에 와서는 빅데이터를 기반으로 한 머신 러닝 기술 등이 현대 사회에 크게 기여 중
  • 6. 게임에서의 인공지능 • 길 찾기 알고리즘 ➢ A* 알고리즘 ▪ 시작지에서 목적지까지의 최단거리를 찾는 휴리스틱 이론의 알고리즘 ▪ 최단 거리를 찾기 위해 많은 경우의 수를 일일이 계산하기 때문에, 경우의 수가 많아지거나 길이 복잡할 수록 연산량이 폭발적으로 증가 ▪ 맵 정보의 변경에 따라 실시간으로 대응 가능 ➢ NavMesh AI ▪ 맵 내에서 갈 수 있는 곳과 없는 곳을 미리 설정해 놓고 그 안에서 최단거리를 찾는 알고리즘 ▪ 맵 정보를 미리 알고있어야 하기 때문에 네비게이션 매쉬 데이터를 미리 Bake(굽다)해 가지 고 있어야 함 ▪ 때문에 Bake 과정이 존재하며, 이 Bake된 NavMesh 데이터는 실시간 변경에 따른 대응이 힘듦 ▪ 정해진 오브젝트의 이동에 대해서는 실시간 처리 가능 A* 알고리즘 NavMesh AI
  • 7. • 명령 계통 구조 (Command Hierarchy) ➢ 각각의 AI에게 상위, 하위 등으로 수준을 나눠 서로 명령을 주거나 받을 수 있도록 하는 구조 ▪ Ex.1 ✓ 전략만을 구상해 판단하고 지시하는 상위 AI ✓ 지시 받은 명령 내에서 행동을 수행하는 하위 AI ➢ RTS나 각종 시뮬레이션 게임 등에서 주로 사용 StarCraft C&C Red Alert 2 게임에서의 인공지능
  • 8. • 추측 항법 (Dead Reckoning) ➢ 개체의 현재 위치, 속도, 방향 등의 정보에 근거해 다음 위치를 예측하는 방법 ➢ TPS, FPS 게임 등에서 NPC AI가 플레이어를 향해 공격해야 할 경우 사격 정확도 등을 조절 가능 ➢ 스포츠 게임에서 각 캐릭터의 위치나 패스 위치 등을 계산해 패스 가로채기 등을 하는 경우에 사용 Uncharted 4 FIFA Online 4 게임에서의 인공지능
  • 9. • 대형 (Formation) ➢ 집단 이동의 방법으로 특정한 대형을 유지하며 이동하는 방법 ➢ RTS 게임이나 비행 시뮬레이션 게임에서 주로 사용 ➢ LOL 라인 미니언들도 특정 대형을 유지하며 이동 중 비행 군집 예 보병 군집 예 게임에서의 인공지능
  • 10. • 유한 상태 기계 (Finite-State Machine, FSM) ➢ 유한한 개수의 상태를 가질 수 있는 기계 모델 ➢ 상태마다 정해진 행동이 가능하며, 동시에 하나의 상태만을 가질 수 있다 ➢ 어떠한 Event에 의해 다른 상태로 전이될 수 있다 Monster FSM 예 1 Monster FSM 예 2 http://blog.naver.com/PostView.nhn?blogI d=destiny9720&logNo=220914600833 /skyseer/120629 -fsm-in-unity3d-skyseer 게임에서의 인공지능
  • 12. 실습 • 실습1 : 출근 길 ➢ 자신이 출근하는 길을 집을 나온 후부터 도착까지의 흐름을 설계 ➢ 내가 할 수 있는 행동의 종류는? ▪ 걷기 ▪ 회전 ▪ 타기? 내리기? ➢ 어떤 조건에서 행동이 변하는가? ➢ 순차적으로 흐름을 행동 순으로 표현
  • 13. 실습 • 실습2 : 간단한 몬스터 AI 모델 설계 ➢ 위에서 나온 FSM 모델을 통해 설계 ▪ 상태와 행동만으로 AI를 정의 ▪ 해당 상태가 되면 어떤 행동이 가능한가? ▪ 각종 정보에 따라 상태가 변화하는 조건을 설정 ➢ 몬스터는 어떻게 스스로 이동할까? ➢ 몬스터가 이동하기 위해 필요한 정보는? ➢ 몬스터는 언제 공격할까? ➢ 몬스터의 생애 주기 설계 ➢ 이 몬스터 AI에게 컨셉을 부여해보자 ➢ 영리하게 보이기 위해 어떤 보완을 할 수 있을까?
  • 15. 좋은 AI를 만드는 요건 • 유저가 편법을 쓸 수 있게 만들어라 ➢ 유저가 어느정도 눈치챌 수 있는 선에서 AI를 상대할 때 편법을 발견해 활용할 수 있게 만들어라 ➢ 고전 중에서 시행착오로 개발자가 의도한 편법을 발견하고 이를 이용해 적을 물리쳤을 경우, 적 AI 가 멍청하다는 느낌보단 자신이 똑똑하다는 느낌을 더 받게 만든다 • AI의 사고를 표현하도록 하라 ➢ 음성이나 대사, 시야 등의 각종 표현 방법으로 AI가 생각하고 있는 바를 전달하라 ▪ Ex1. “방금 저기 누군가 있던 것 같은데…”. -> “내가 잘 못 봤나 보군” ➢ AI에게 개성을 부여해 모두 같은 AI가 아닌 것처럼 보이는 것도 좋은 방법 ➢ AI가 아무리 복잡한 계산과 상황 판단 능력을 가지고 있어도 유저가 인지할 수 없다면 알 수 없다
  • 16. 좋은 AI를 만드는 요건 • 예측 가능한 AI를 만들어라 ➢ AI는 플레이어의 특정 행동이나 상황에 대해 일관된 반응을 기대할 수 있도록 만들어야 한다 ➢ 플레이어가 게임을 통해 패턴을 학습하고 이를 활용해 목표 달성을 위한 계획 설계가 가능해야 한다 ▪ Ex1. 경비 NPC는 맵에 떨어진 총을 주워 상자에 반납 -> 발전기 전원이 내려가면 경비들이 일 제히 가장 가까운 상자로 총을 주으러 감 -> 발전기 전원을 강제로 내려 우회로가 생긴다면? ➢ 위 패턴이 일관된다면 플레이어는 계획을 짜고 실행에 옮겨 기대한 효과를 볼 수 있음 ➢ 행동이 일관되지 않아 예측이 불가능하다면 계획을 짤 수 없고 게임 플레이에 차질이 생김 ➢ 예측 가능하다고 해서 모두 쉬운 게임이 되는 것은 아님 • AI가 게임 시스템과 상호작용하게 하라 ➢ 젤다의 전설 –야생의 숨결- 에서는 몬스터 AI가 환경적인 요소까지 접근해 다룰 수 있다 ▪ Ex.1 근처에 무기가 있다면 주워서 싸움 ▪ Ex.2 무기에 불을 붙여 불 공격 가능 ➢ 이러한 행동이 플레이어에게 AI가 똑똑하다는 인식을 줌 ➢ 위의 행동 패턴을 인지하고 있다면 이를 이용한 편법도 활용 가능
  • 17. 좋은 AI를 만드는 요건 • 성장하는 AI ➢ 플레이어의 행동에 따라 다르게 반응하는 AI를 만들어라 ➢ 과거에 보았던 AI라 할지라도 새로운 능력을 얻어 성장한 것처럼 보이는 것도 좋은 방법이다 ※ 실제로 강화학습을 통해 성장하지 않았다 하더라도 • AI가 자체적인 목표를 가지도록 하라 ➢ 게임의 의도에 따라 AI의 목표는 “플레이어를 죽인다”가 아닌 그 이상의 목표를 가질 수 있다 ▪ Ex.1 플레이어를 죽이려 하는 이유는? -> 내 영역에 침범했고 위협이 됐다고 판단했기 때문 -> 플레이어 이외의 위협이 되는 개체가 접근한다면? -> 그 개체와 전투 실시 (몬스터 헌터 월드) ▪ Ex.2 영역 내에서 새끼를 지키는 AI를 가진 몬스터에게 가장 위협적인 적은, 자신을 공격하는 적 이 아닌 새끼를 공격하는 적이 될 것
  • 19. 정리 • 적들의 멍청한 행동 선택은 게임의 몰입을 방해하며, 그들을 상대해 일방적으로 때려 눕히 는 것은 결코 재미있는 경험이 되지 못한다 • AI는 게임 의도에 부합한 행동을 해야 하며, 행동마다 개성을 부여하면 더욱 흥미로워 진다 • AI는 유저를 죽이기 위해 만들어진 것이 아닌, 좋은 경험을 선사하기 위한 것이다