스토리텔링과 비주얼 내러티브: 놀 치프틴은 어떻게 형님이 되었나Lee Sangkyoon (Kay)이 슬라이드는 2010년 넥슨 개발자 컨퍼런스에서 발표한
"마비노기 영웅전"의 내러티브적 시도에 대한 자료입니다.
동영상이 많이 포함된 슬라이드 특성 때문에
발표 당시에는 웹에 슬라이드를 공유하지 않았었고,
5년이 지난 후에야 뒤늦게 공유하게 되었습니다.
2010년 자료이고, 당시 발표자 두 명은 모두 영웅전 프로젝트를 떠나
현재는 다른 프로젝트를 진행하고 있기 때문에
슬라이드의 내용은 현재의 "마비노기 영웅전"과는
개발 기조와 의도, 방식 등에 차이가 있을 수 있습니다.
프로그래머에게 사랑받는 게임 기획서 작성법Lee Sangkyoon (Kay)IGC2015 에서 강연한 자료입니다. 프로그래머와 게임 기획자(Game Designer) 양쪽을 모두 이해하는 입장에서 기획서를 다루는 조금 파격적인 방법론과 프로그래머와 소통하는 방법에 대해 설명합니다.
NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계Imseong KangNDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계.
빌드별로 PDF를 만들었더니 300장 넘게 나오지만 실제 슬라이드는 130여 장입니다.
[NDC 2021] 게임 PD가 되어 보니Yongha Kim저는 운 좋게도 게임 PD로서 지난 10년 동안 몇 개의 게임을 개발하고, 서비스하는 경험을 가질 수 있었습니다.
본 세션에서는 제가 그동안 개발했던 게임들을 간단히 돌아보고, 개발 과정에서 시행착오를 통해 배운 것들을 살펴보려고 합니다.
개인적인 경험이라 편향이 있을 수 있겠지만, 게임 PD나 디렉터 커리어를 목표로 하시는 분들께 참고가 될 수 있으면 좋겠습니다.
[ NDC 14 ] 가죽 장화를 먹게 해주세요 - [ 야생의 땅 : 듀랑고 ] 의 자유도 높은 아이템 시스템 디자인 Jungsoo Lee[ NDC 14 ] 가죽 장화를 먹게 해주세요 - [ 야생의 땅 : 듀랑고 ] 의 자유도 높은 아이템 시스템 디자인
따로 발표용 스크립트가 없어 PPT에 부연설명 및 사진 등을 추가한 버전입니다.
문의 사항이 있을 경우 lune89@nexon.co.kr로 연락주세요.
게임 시스템 디자인 시작하기ByungChun2시스템 디자인을 시작해보려는 또는 이제 막 시작한 게임 디자인 지망생 및 주니어 게임 기획자들에게 도움이 됐으면 하는 마음에 작성했습니다.
목차
1. 시스템이란?
2. 시스템 디자인에서 중요한 것
3. 시스템과 콘텐츠의 구분
4. 시스템 디자인, 왜 어렵나?
5. 나도 한번 해보자, 시스템 디자인
6. 좋은 시스템이란?
7. 주의사항
NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계Imseong KangNDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계.
빌드별로 PDF를 만들었더니 300장 넘게 나오지만 실제 슬라이드는 130여 장입니다.
[NDC 2021] 게임 PD가 되어 보니Yongha Kim저는 운 좋게도 게임 PD로서 지난 10년 동안 몇 개의 게임을 개발하고, 서비스하는 경험을 가질 수 있었습니다.
본 세션에서는 제가 그동안 개발했던 게임들을 간단히 돌아보고, 개발 과정에서 시행착오를 통해 배운 것들을 살펴보려고 합니다.
개인적인 경험이라 편향이 있을 수 있겠지만, 게임 PD나 디렉터 커리어를 목표로 하시는 분들께 참고가 될 수 있으면 좋겠습니다.
[ NDC 14 ] 가죽 장화를 먹게 해주세요 - [ 야생의 땅 : 듀랑고 ] 의 자유도 높은 아이템 시스템 디자인 Jungsoo Lee[ NDC 14 ] 가죽 장화를 먹게 해주세요 - [ 야생의 땅 : 듀랑고 ] 의 자유도 높은 아이템 시스템 디자인
따로 발표용 스크립트가 없어 PPT에 부연설명 및 사진 등을 추가한 버전입니다.
문의 사항이 있을 경우 lune89@nexon.co.kr로 연락주세요.
게임 시스템 디자인 시작하기ByungChun2시스템 디자인을 시작해보려는 또는 이제 막 시작한 게임 디자인 지망생 및 주니어 게임 기획자들에게 도움이 됐으면 하는 마음에 작성했습니다.
목차
1. 시스템이란?
2. 시스템 디자인에서 중요한 것
3. 시스템과 콘텐츠의 구분
4. 시스템 디자인, 왜 어렵나?
5. 나도 한번 해보자, 시스템 디자인
6. 좋은 시스템이란?
7. 주의사항
NDC 2014 Beyond Code: <야생의 땅:듀랑고>의 좌충우돌 개발 과정 - 프로그래머가 챙겨주는 또 다른 개발자 사용 설명서영준 박(과거 NDC 2014에서 했던 강연 자료입니다. 발표 당시엔 공유에 힘든 부분이 있어 게임 출시 이후에 공개되는 점 양해를 드립니다.)
프로그래머의 시각에서 게임 개발 프로세스를 보면, 여러 에이전트 들이 특정한 목적을 가지고 동시에 정보를 처리하는 일련의 로직 조합이라고 생각해볼 수 있습니다. 테크니컬 하게 정보 처리 로직을 작성하고 그 효율을 탐구하는 업무가 바로 프로그래머의 주요 업무 중 하나입니다. 그렇다면 프로그래머의 시각으로 개발 프로세스를 접근해 보면 새로운 인사이트를 얻는 부분이 있지 않을까요?
<야생의 땅:듀랑고>에는 새로움이 가득한 도전이 많이 있습니다. 이러한 새로움을 향한 도전은, 비단 게임 피처 뿐만 아니라 개발 프로세스에서도 마찬가지로 녹아 있습니다. 실제로 개발 프로세스 관리에 수많은 시도들이 있었고 지금도 계속 되고 있습니다.
그간 시도했던 여러 개발 프로세스에 대한 소개를 하고, 그것을 활용한 피처 개발, 프로토타이핑 사례 등을 공유하고자 합니다.
[PandoraCube] 게임 프로그래머로 성장하기PandoraCube , Sejong University2019.05.07 판도라큐브 세미나
제작자: 프로그래밍 파트 강민석
코멘트: 주제를 너무 늦게 결정하여 자료조사가 미흡하고 ppt도 많이 엉성하게 만들어졌습니다. 만족스러운 ppt를 학기 중에 한번이라도 만들어보고 싶었는데 이번에도 아쉬운 점만 많이 남네요...ㅠㅠ
비고: 없음
판도라큐브는 세종대학교 소프트웨어융합대학 소속의 게임 제작 동아리입니다.
매주 회의마다 게임 제작과 관련된 주제로 세미나를 개최합니다.
모든 자료는 세미나 자료 제작자의 동의 하에 업로드됩니다.
세미나의 소유 및 책임은 제작자가 지닙니다.
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는 유저를 죽이기 위해 만들어진 것이 아닌, 좋은 경험을 선사하기 위한 것이다