SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
게임 시스템 디자인 시작하기
이야기하려는 내용
• 시스템이란?
• 시스템 디자인에서 중요한 것
• 시스템과 콘텐츠의 구분
• 시스템 디자인, 왜 어렵나?
• 나도 한번 해보자, 시스템 디자인
• 좋은 시스템이란?
• 주의사항
시스템 디자인이란?
시스템, 시스템, 도대체 시스템이 뭐야?
시스템이란?
• 사전적 정의
1. 체계, 조직, 제도 등의 요소의 집합이나 요소와 요소 간의 집합
2. 어떤 과업의 수행이나 목적 달성을 위해 공동 작업하는 조직화된 구성 요소의 집합
3. 지정된 정보 처리 기능을 수행하기 위하여 조직화되고 규칙적으로 상호작용하는 기기, 방
법, 절차, 그리고 경우에 따라 인간도 포함하는 구성 요소들의 집합
4. 시스템이라는 용어는 정보를 처리하는 데 이용되는 프로그램들, 절차들, 데이터 및
기기들의 다양한 집합이나 조합을 가리키기도 한다
© NAVER 지식백과
한 줄로 요약하면?
[정보를 규칙에 따라 처리하는 절차들의 집합]
System
시스템이란?
• 시스템이라는 친구는 이런 아이
➢ 입력(Input) : 어떠한 데이터(정보)를 가지고
➢ 규칙(Rule) : 정해진 규칙에 따라
➢ 처리(Output) : 목표한 결과물을 내놓음
• 게임에서의 시스템은?
➢ 입력 : 유저의 ↑방향키 조작
➢ 규칙 : ↑입력은 PC를 앞으로 전진시키겠다는 신호로 판단
➢ 처리 : PC를 앞으로 전진시킴
• 우리가 해야 할 일은?
➢ 어떤 데이터를 받을 것인지?
➢ 규칙은 어떠한지?
➢ 어떤 결과물을 내놓을지?
Input
Rule
Output
시스템 디자인에서 중요한 것
쩌는 시스템 기획서 쓰기?
시스템 디자인에서 중요한 것
• 의도를 설정하라!
➢ 어떤 감정을 느끼게 할지에 대한 ‘의도’가 반드시 포함되어 있어야 한다
➢ 게임 디자인은 개발 과정에서 계속 바뀔 수 있으며,
이때 무엇을 어떻게 바꾸는가에 대한 선택의 근간이 되는 것이 바로 의도이다
➢ 의도가 없다면 매 선택의 순간에서의 기준을 세울 수 없다
➢ 게임이란 것은 쉽게 정량화가 되는 공장제품이 아닌, 감성을 담은 공학적 예술품이기에,
매 순간 의도에 맞는 제작 방법이 필요하다
© Inven. DMC5 이츠노 히데아키 디렉터, GDC 2019
진짜 중요함! 별 5개!!
시스템 디자인에서 중요한 것
• 의도 전달을 위한 커뮤니케이션
➢ 이러한 의도를 전달하는 과정 중 하나가 바로 기획서 작성 부분이다
➢ 의도를 충족할 수 있는 내용을 기획서에 담아 작업자에게 전달
➢ 보다 정확한 의도 전달을 위해 의도에 맞는 기술적 지식이 필요
Flow Chart Activity Diagram Database Schema
https://ko.wikipedia.org/wiki https://www.smartdraw.com/activity-diagram/ https://ko.wikipedia.org/wiki
시스템 디자인에서 중요한 것
괴상한 차트나 다이어그램을 만드는 것보다
하나의 레퍼런스를 보여주며 의도를 설명하는 것에 집중!
주의!
시스템 디자인에서 중요한 것
• 의도를 전달하게 되면?
➢ 의도를 충족시킬 방법을 같이 모색할 수 있음
➢ 내가 미처 생각하지 못한 더 좋은 방법이 있을 수도
➢ 구현 중 의도를 더 빛나게 해줄 추가 아이디어 상상이 가능해짐
➢ 시스템의 확장 및 변동 범위를 예측할 수 있음
시스템과 콘텐츠의 구분
어디서부터 어디까지가 시스템인지 잘…
시스템과 콘텐츠의 구분
• 클라크(Clark,C.G)에 의한 산업 분류에 게임 디자인 비유
➢ 1차 산업 = 시스템 디자인
▪ 콘텐츠를 만들기 위한 기본 재료 생산
➢ 2차 산업 = 콘텐츠 디자인
▪ 만들어진 다양한 시스템을 활용해 유저가 먹을 수 있는 콘텐츠로 가공
➢ 3차 산업 = 서비스 디자인
▪ 만들어진 콘텐츠를 유저에게 판매하는 전략 설계
• 구분 정의
➢ 시스템 : 콘텐츠를 만들 수 있는 기본 틀을 제작
➢ 콘텐츠 : 틀 안에서 내용을 바꾸어 만들어진 결과물
우리는 이 단계를 시작하려 함
시스템과 콘텐츠의 구분
• 붕어빵 제작을 예시로
➢ 붕어빵 시스템 디자인
▪ 붕어빵 제작 프로세스 및 파라미터 설계
✓ 붕어빵 틀 제작 - 콘텐츠 의도에 맞게 틀을 선택할 수 있도록
✓ 재료 선택 후 반죽 - 반죽 재료를 선택할 수 있도록
✓ 붕어빵 틀 가열 및 반죽 투입 - 틀을 얼마나 가열할지 선택할 수 있도록
✓ 속 재료 선택 - 속 재료 선택할 수 있도록 (팥, 크림 등등…)
✓ 다시 반죽 투입 - 다시 반죽을 넣는 구간을 선택할 수 있도록
✓ 덮개 덮고 달구기 - 달군 정도에 따라 맛이 변화할 수 있도록
➢ 붕어빵 콘텐츠 디자인
▪ 하나의 시스템으로 다양한 붕어빵을 만들 수 있도록
▪ 프로세스에 기반한 파라미터 설정
✓ 어떤 붕어빵 틀을 선택할지?
✓ 반죽 재료는 무엇인지?
✓ 속 재료로 무엇을 넣을지?
시스템 디자인, 왜 어렵나?
아무리 봐도 모르겠어요 ㅠㅠ
시스템 디자인, 왜 어렵나?
• 인지의 어려움
➢ 콘텐츠는 유저로써 몇 번이고 자연스럽게 경험했지만, 시스템은 겉으론 보이지 않기 때문에 인지의
어려움이 있음
➢ 우리가 밥을 먹을 때 쌀 한 톨의 제작 과정이 보이지 않듯, 유저 입장에서 시스템은 겉으로 드러나지
않음
➢ 보이지 않으니 알 수 없고, 알 수 없으니 당연히 만들 수도 없다!
(우리가 매일 쌀밥을 먹지만, 쌀농사를 할 수 없는 것처럼)
➢ 평소 게임 플레이 중 처리되는 현상에 대한 로직을 생각하는 습관이 필요함
• 프로그래밍 관련 지식의 필요성
➢ 시스템은 확장성과 재사용성을 위해 객체 지향적(OOP)으로 설계되어야 함
▪ Ex1. A ,B 스킬 모두 ‘사거리’라는 값을 가지지만, 사거리가 길고 짧음으로 인해 근거리 스킬, 원거리 스킬의 두 종류의 스킬
이 하나의 파라미터에 의해 만들어질 수 있음
➢ 데이터 테이블을 다루기 위한 데이터 유형에 대한 지식이 필요
▪ Int, float, string, bool 등
시스템 디자인, 왜 어렵나?
• 데이터베이스 관련 지식의 필요성
➢ “아트는 그림으로, 플머는 코드로, 디자이너는 데이터로 말한다”
➢ 신입 디자이너는 대부분 간단한 데이터 작업부터 업무를 시작 (String 수정 등)
➢ 데이터를 잘 다루기 위해선 구조 분석 능력이 필요
▪ 아이템이나 스킬과 같은 대규모 시스템은 다수의 데이터 테이블이 연관되어 있음
▪ 각 테이블 간의 관계성 파악이 가능해야 함
➢ 데이터 모델링
▪ 데이터베이스 구축하기 위한 데이터 간의 관계 분석 및 설계가 가능해야 함
▪ 어떤 데이터를 어디서 참조 받아 어떻게 사용할지?
• 사실 시스템은 우리 근처에 있다
➢ 카페에서의 커피 주문
▪ 커피를 주문한 후 나에게 오기까지의 과정이 어떤 식으로 이루어지는지?
➢ 가위바위보
▪ 플레이어는 어떤 행위가 가능한지?, 가위바위보의 규칙은?
관계형 데이터베이스 관리 시스템
(RDBMS)
https://ko.wikipedia.org/wiki
데이터베이스 정규화
1차 정규화
2차 정규화
3차 정규화
BCNF
나도 한번 해보자, 시스템 디자인
나도 한번 해보자, 시스템 디자인
• 의도 설정
➢ 도대체 왜?! 이 시스템을 만들어야 하는지에 대한 의도를 설명
➢ 이 시스템이 무엇을 하기 위한 시스템인지? 이 시스템으로 무엇을 하고 싶은지?
➢ 간단하게 작성해 방향성을 먼저 확인하자!
• 구성 요소 분해
➢ 시스템이 어떠한 요소(객체)들로 구성되어 있는지 파악
➢ 유사 시스템이나 게임을 보며 어떤 요소들이 시스템을 움직이고 있는지 리서치
➢ 구성 요소를 분해해 하나씩 나열해보자
▪ 커피 주문 시스템의 구성 요소
✓ 고객, 캐셔, 바리스타 등
나도 한번 해보자, 시스템 디자인
• 파라미터 설계
➢ 구성 요소를 움직이기 위해 어떤 데이터(파라미터)들이 필요할지 분석
➢ 구성 요소들이 어떤 데이터(Input, Output)를 주고받는지?
▪ 커피 주문 시스템의 파라미터
✓ 돈, 메뉴, 커피 등
➢ 명확하게 데이터화할 수 있는 것들로 구성
• 기능 설계
➢ 설계한 파라미터를 이용해 구성 요소들은 어떠한 행동이 가능한지?
▪ 커피 주문 시스템의 기능
✓ 메뉴 선택하기, 주문하기, 결제하기, 커피 만들기 등
➢ 구성 요소마다 할 수 있는 기능의 차이도 있을 수 있음
나도 한번 해보자, 시스템 디자인
• 상태 설계
➢ 상태에 따라 사용할 수 있는 기능이나 파라미터의 변화가 있는지?
➢ 상태가 변화하는 조건은 무엇인지? (기능과 파라미터를 이용)
▪ 커피 주문 시스템의 캐셔의 상태
✓ 대기, 주문받기, 결제 요청, 결제 확인, 제조 요청 등
• 규칙 설계
➢ 각 구성요소의 상태, 기능, 파라미터가 작동할 때 필요한 규칙은 어떤 것이 있을지?
➢ 구성 요소들 이외에 시스템 전체를 아우르는 규칙은 무엇이 있을지?
➢ 각 규칙이 서로 충돌했을 경우, 규칙 간의 우선순위는 어떻게 되는지?
➢ 논리적인 허점이 생기지 않기 위해선 어떤 규칙을 정해줘야 할지?
▪ 커피 주문 시스템의 세부 규칙
✓ 고객이 메뉴판에 없는 메뉴를 주문한다면?
✓ 결제를 시도했는데 고객의 돈이 충분하지 않다면?
나도 한번 해보자, 시스템 디자인
• 데이터가 시스템을 숨 쉬게 한다
➢ 디자이너가 변경할 수 있도록 설계해야 하는 파라미터는 무엇일지?
➢ 설계한 파라미터들을 보고 담당 작업자가 실제 작업이 가능하도록 데이터 추상화와 모델링 작업 실시
➢ 효율적인 작업과 휴먼 에러를 줄이기 위한 데이터 정규화 실시
• 테스트 & 피드백
➢ 가상의 Input을 넣어 Rule에 따른 Output 도출 시뮬레이션 진행
➢ 주변 사람들이나 담당 작업자에게 피드백 요청
• 폴리싱
➢ 테스트와 피드백을 통해 발견한 개선점을 보완
좋은 시스템이란?
좋은 시스템이란?
• 확장성과 재사용성을 고려
➢ 게임 개발 프로세스 특성상 디자인 및 개발 과정 중에 시스템 내용이 바뀔 수 있음
▪ 작업자들이 시스템의 확장과 변동 범위를 예측할 수 있도록 (의도 전달)
➢ 일회성 시스템이 아닌, 재사용할 수 있도록 설계
• 허점 없는 규칙
➢ 시스템 흐름 상 논리적으로 막히는 부분이 없도록 설계
▪ 여러 케이스로 시뮬레이션해 보자
▪ 일반적이지 않은 예외 사항에 대해서도 충분히 고민해보자
➢ 시스템의 허점을 노린 편법으로 의도에 빗나간 행위가 가능하진 않은지?
▪ 어뷰징, 허점을 찌른 반복성 플레이 등
좋은 시스템이란?
• 단계별로 항목을 나눠 설명
➢ 시스템 흐름의 단계를 나눠 구성 요소들이 어떻게 유기적으로 동작하는지 설명
➢ 작업자가 각 작업의 크기나 시간을 산정해 개발 우선순위를 결정할 수 있음
➢ 무엇보다 문제 발생 시 추적에 용이함
• 다른 시스템과의 연계
➢ 최근의 콘텐츠는 복잡도가 상승해 하나의 시스템이 아닌 여러 시스템이 서로 맞물림
➢ 여러 시스템이 서로 잘 연계될 수 있도록 설계
➢ Ex1. 아이템
▪ 제작, 분해, 강화, 합성, 각성 등등…
➢ Ex2. 스킬
▪ 조작 -> 유효성 검사 -> 액션 출력 -> 대상 수집 -> 충돌 판정 -> 계산식
주의사항
주의사항
• 완벽함에 집착하지 말라
➢ 우리는 유한한 자원(시간, 돈, 인력) 속에서 개발을 진행 중
➢ 모든 것을 다 할 수 있는 완벽한 시스템이란 없고, 만들 수도 없다
➢ 한 시스템 내에서 의도에 부합한 개발 우선순위를 설정하라
• 기술의 함정
➢ 기술은 의도를 표현하는 수단일 뿐
➢ 의도가 없는 기술은 어디에도 쓰일 수 없다
➢ 먼저 의도를 표현하고 전달하는 것에 집중하라
정리
이런 이야기를 했습니다
• 의도를 설정하라!
• 그 의도를 전달할 좋은 방법과 교재를 찾아라
• 구성 요소를 항목별로 분류하고 규칙을 명확하게 설계하라
• 완벽한 디자인이란 없다. 의도에 맞는 적정선을 찾아라
참고 서적 및 사이트
참고 서적 및 사이트
게임을 움직이게 하는 기본 구성 요소에 대한 기술적 소개 시스템 기획의 기본 개념 및 기초 다지기
참고 서적 및 사이트
• 프로그래머에게 사랑 받는 게임 기획서 작성법
➢ https://www.slideshare.net/iyooha/20101002-53482961
• 게임 기획자를 위한 데이터 테이블 Guide
➢ https://cafe.naver.com/gamecanvas/367
• 시스템 기획의 기본 원리
➢ https://www.youtube.com/watch?v=iIjCkkzpDIc
• 게임 기획자와 프로그래밍 공부
➢ http://sstorm.egloos.com/5534178
• 기획 의도에 충실한 시스템 설계
• https://blog.naver.com/onlybest01/221260745391

Weitere ähnliche Inhalte

Was ist angesagt?

게임 기획자의 생존 전략
게임 기획자의 생존 전략게임 기획자의 생존 전략
게임 기획자의 생존 전략
태성 이
 
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
devCAT Studio, NEXON
 

Was ist angesagt? (20)

위대한 게임개발팀의 공통점
위대한 게임개발팀의 공통점위대한 게임개발팀의 공통점
위대한 게임개발팀의 공통점
 
게임 기획자의 생존 전략
게임 기획자의 생존 전략게임 기획자의 생존 전략
게임 기획자의 생존 전략
 
게임제작개론 : #4 게임 밸런싱
게임제작개론 : #4 게임 밸런싱게임제작개론 : #4 게임 밸런싱
게임제작개론 : #4 게임 밸런싱
 
[PandoraCube] 게임 디자인 원리
[PandoraCube] 게임 디자인 원리[PandoraCube] 게임 디자인 원리
[PandoraCube] 게임 디자인 원리
 
게임 개발 파이프라인과 시스템 기획(공개용)
게임 개발 파이프라인과 시스템 기획(공개용)게임 개발 파이프라인과 시스템 기획(공개용)
게임 개발 파이프라인과 시스템 기획(공개용)
 
게임제작개론 : #6 게임 시스템 구조에 대한 이해
게임제작개론 : #6 게임 시스템 구조에 대한 이해게임제작개론 : #6 게임 시스템 구조에 대한 이해
게임제작개론 : #6 게임 시스템 구조에 대한 이해
 
게임 인공지능 설계
게임 인공지능 설계게임 인공지능 설계
게임 인공지능 설계
 
쩌는게임기획서 이렇게 쓴다
쩌는게임기획서 이렇게 쓴다쩌는게임기획서 이렇게 쓴다
쩌는게임기획서 이렇게 쓴다
 
게임강연정리
게임강연정리게임강연정리
게임강연정리
 
[PandoraCube] 게임 기획자 면접 시 가장 많이 하는 질문들과 나의 답
[PandoraCube] 게임 기획자 면접 시 가장 많이 하는 질문들과 나의 답[PandoraCube] 게임 기획자 면접 시 가장 많이 하는 질문들과 나의 답
[PandoraCube] 게임 기획자 면접 시 가장 많이 하는 질문들과 나의 답
 
게임 기획 튜토리얼 (2015 개정판)
게임 기획 튜토리얼 (2015 개정판)게임 기획 튜토리얼 (2015 개정판)
게임 기획 튜토리얼 (2015 개정판)
 
게임제작개론: #1 게임 구성 요소의 이해
게임제작개론: #1 게임 구성 요소의 이해게임제작개론: #1 게임 구성 요소의 이해
게임제작개론: #1 게임 구성 요소의 이해
 
[IGC2015] 엔씨소프트 김주용-내가 사랑한 MMO들
[IGC2015] 엔씨소프트 김주용-내가 사랑한 MMO들[IGC2015] 엔씨소프트 김주용-내가 사랑한 MMO들
[IGC2015] 엔씨소프트 김주용-내가 사랑한 MMO들
 
스토리텔링과 비주얼 내러티브: 놀 치프틴은 어떻게 형님이 되었나
스토리텔링과 비주얼 내러티브: 놀 치프틴은 어떻게 형님이 되었나스토리텔링과 비주얼 내러티브: 놀 치프틴은 어떻게 형님이 되었나
스토리텔링과 비주얼 내러티브: 놀 치프틴은 어떻게 형님이 되었나
 
NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요
NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요
NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요
 
NDC 2015 게임 기획자에게 들려주는 괜찮은 이야기 _ 이태성
NDC 2015 게임 기획자에게 들려주는 괜찮은 이야기 _ 이태성NDC 2015 게임 기획자에게 들려주는 괜찮은 이야기 _ 이태성
NDC 2015 게임 기획자에게 들려주는 괜찮은 이야기 _ 이태성
 
[IGC 2016] 실전시나리오라이팅 - PD가 원하면 나는 쓴다
[IGC 2016] 실전시나리오라이팅 - PD가 원하면 나는 쓴다[IGC 2016] 실전시나리오라이팅 - PD가 원하면 나는 쓴다
[IGC 2016] 실전시나리오라이팅 - PD가 원하면 나는 쓴다
 
게임 디렉팅 튜토리얼
게임 디렉팅 튜토리얼게임 디렉팅 튜토리얼
게임 디렉팅 튜토리얼
 
게임제작개론 : #0 과목소개
게임제작개론 : #0 과목소개게임제작개론 : #0 과목소개
게임제작개론 : #0 과목소개
 
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
 

Ähnlich wie 게임 시스템 디자인 시작하기

Game Development Process Management
Game Development Process ManagementGame Development Process Management
Game Development Process Management
changehee lee
 
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
devCAT Studio, NEXON
 
게임제작개론 9
게임제작개론 9게임제작개론 9
게임제작개론 9
Seokmin No
 

Ähnlich wie 게임 시스템 디자인 시작하기 (20)

데이터가 흐르는 조직 만들기 - 마이리얼트립
데이터가 흐르는 조직 만들기 - 마이리얼트립데이터가 흐르는 조직 만들기 - 마이리얼트립
데이터가 흐르는 조직 만들기 - 마이리얼트립
 
How to Create Value from Data, and Its Difficulty
How to Create Value from Data, and Its DifficultyHow to Create Value from Data, and Its Difficulty
How to Create Value from Data, and Its Difficulty
 
소프트웨어 개발 프로세스 배경 설명
소프트웨어 개발 프로세스 배경 설명소프트웨어 개발 프로세스 배경 설명
소프트웨어 개발 프로세스 배경 설명
 
Recommendatioin system basic
Recommendatioin system basicRecommendatioin system basic
Recommendatioin system basic
 
데이터를 비즈니스에 활용하기 왜 어려울까?
데이터를 비즈니스에 활용하기 왜 어려울까?데이터를 비즈니스에 활용하기 왜 어려울까?
데이터를 비즈니스에 활용하기 왜 어려울까?
 
분석과 설계
분석과 설계분석과 설계
분석과 설계
 
플랫폼 디자이너 없이 디자인 시스템을 구축하는 프로덕트 디자이너의 우당탕탕 고통 연대기
플랫폼 디자이너 없이 디자인 시스템을 구축하는 프로덕트 디자이너의 우당탕탕 고통 연대기플랫폼 디자이너 없이 디자인 시스템을 구축하는 프로덕트 디자이너의 우당탕탕 고통 연대기
플랫폼 디자이너 없이 디자인 시스템을 구축하는 프로덕트 디자이너의 우당탕탕 고통 연대기
 
Pivotal Labs 고객사례 - Coinone
Pivotal Labs 고객사례 - CoinonePivotal Labs 고객사례 - Coinone
Pivotal Labs 고객사례 - Coinone
 
Game Development Process Management
Game Development Process ManagementGame Development Process Management
Game Development Process Management
 
Things Data Scientists Should Keep in Mind
Things Data Scientists Should Keep in MindThings Data Scientists Should Keep in Mind
Things Data Scientists Should Keep in Mind
 
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
 
2017 주요 기술 흐름 및 개요
2017 주요 기술 흐름 및 개요2017 주요 기술 흐름 및 개요
2017 주요 기술 흐름 및 개요
 
애자일 스크럼과 JIRA
애자일 스크럼과 JIRA 애자일 스크럼과 JIRA
애자일 스크럼과 JIRA
 
[NDC 2011] 게임 개발자를 위한 데이터분석의 도입
[NDC 2011] 게임 개발자를 위한 데이터분석의 도입[NDC 2011] 게임 개발자를 위한 데이터분석의 도입
[NDC 2011] 게임 개발자를 위한 데이터분석의 도입
 
UX 디자인 7가지 비밀: 비밀 4
UX 디자인 7가지 비밀: 비밀 4UX 디자인 7가지 비밀: 비밀 4
UX 디자인 7가지 비밀: 비밀 4
 
NDC17 장창완(최종)
NDC17 장창완(최종)NDC17 장창완(최종)
NDC17 장창완(최종)
 
[IGC2018] 펄어비스 김광삼 - 대면 커뮤니케이션 주도의 게임 디자인과 게임 개발법
[IGC2018] 펄어비스 김광삼 - 대면 커뮤니케이션 주도의 게임 디자인과 게임 개발법[IGC2018] 펄어비스 김광삼 - 대면 커뮤니케이션 주도의 게임 디자인과 게임 개발법
[IGC2018] 펄어비스 김광삼 - 대면 커뮤니케이션 주도의 게임 디자인과 게임 개발법
 
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
 
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출 NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출
 
게임제작개론 9
게임제작개론 9게임제작개론 9
게임제작개론 9
 

게임 시스템 디자인 시작하기

  • 2. 이야기하려는 내용 • 시스템이란? • 시스템 디자인에서 중요한 것 • 시스템과 콘텐츠의 구분 • 시스템 디자인, 왜 어렵나? • 나도 한번 해보자, 시스템 디자인 • 좋은 시스템이란? • 주의사항
  • 3. 시스템 디자인이란? 시스템, 시스템, 도대체 시스템이 뭐야?
  • 4. 시스템이란? • 사전적 정의 1. 체계, 조직, 제도 등의 요소의 집합이나 요소와 요소 간의 집합 2. 어떤 과업의 수행이나 목적 달성을 위해 공동 작업하는 조직화된 구성 요소의 집합 3. 지정된 정보 처리 기능을 수행하기 위하여 조직화되고 규칙적으로 상호작용하는 기기, 방 법, 절차, 그리고 경우에 따라 인간도 포함하는 구성 요소들의 집합 4. 시스템이라는 용어는 정보를 처리하는 데 이용되는 프로그램들, 절차들, 데이터 및 기기들의 다양한 집합이나 조합을 가리키기도 한다 © NAVER 지식백과 한 줄로 요약하면? [정보를 규칙에 따라 처리하는 절차들의 집합]
  • 5. System 시스템이란? • 시스템이라는 친구는 이런 아이 ➢ 입력(Input) : 어떠한 데이터(정보)를 가지고 ➢ 규칙(Rule) : 정해진 규칙에 따라 ➢ 처리(Output) : 목표한 결과물을 내놓음 • 게임에서의 시스템은? ➢ 입력 : 유저의 ↑방향키 조작 ➢ 규칙 : ↑입력은 PC를 앞으로 전진시키겠다는 신호로 판단 ➢ 처리 : PC를 앞으로 전진시킴 • 우리가 해야 할 일은? ➢ 어떤 데이터를 받을 것인지? ➢ 규칙은 어떠한지? ➢ 어떤 결과물을 내놓을지? Input Rule Output
  • 6. 시스템 디자인에서 중요한 것 쩌는 시스템 기획서 쓰기?
  • 7. 시스템 디자인에서 중요한 것 • 의도를 설정하라! ➢ 어떤 감정을 느끼게 할지에 대한 ‘의도’가 반드시 포함되어 있어야 한다 ➢ 게임 디자인은 개발 과정에서 계속 바뀔 수 있으며, 이때 무엇을 어떻게 바꾸는가에 대한 선택의 근간이 되는 것이 바로 의도이다 ➢ 의도가 없다면 매 선택의 순간에서의 기준을 세울 수 없다 ➢ 게임이란 것은 쉽게 정량화가 되는 공장제품이 아닌, 감성을 담은 공학적 예술품이기에, 매 순간 의도에 맞는 제작 방법이 필요하다 © Inven. DMC5 이츠노 히데아키 디렉터, GDC 2019 진짜 중요함! 별 5개!!
  • 8. 시스템 디자인에서 중요한 것 • 의도 전달을 위한 커뮤니케이션 ➢ 이러한 의도를 전달하는 과정 중 하나가 바로 기획서 작성 부분이다 ➢ 의도를 충족할 수 있는 내용을 기획서에 담아 작업자에게 전달 ➢ 보다 정확한 의도 전달을 위해 의도에 맞는 기술적 지식이 필요 Flow Chart Activity Diagram Database Schema https://ko.wikipedia.org/wiki https://www.smartdraw.com/activity-diagram/ https://ko.wikipedia.org/wiki
  • 9. 시스템 디자인에서 중요한 것 괴상한 차트나 다이어그램을 만드는 것보다 하나의 레퍼런스를 보여주며 의도를 설명하는 것에 집중! 주의!
  • 10. 시스템 디자인에서 중요한 것 • 의도를 전달하게 되면? ➢ 의도를 충족시킬 방법을 같이 모색할 수 있음 ➢ 내가 미처 생각하지 못한 더 좋은 방법이 있을 수도 ➢ 구현 중 의도를 더 빛나게 해줄 추가 아이디어 상상이 가능해짐 ➢ 시스템의 확장 및 변동 범위를 예측할 수 있음
  • 11. 시스템과 콘텐츠의 구분 어디서부터 어디까지가 시스템인지 잘…
  • 12. 시스템과 콘텐츠의 구분 • 클라크(Clark,C.G)에 의한 산업 분류에 게임 디자인 비유 ➢ 1차 산업 = 시스템 디자인 ▪ 콘텐츠를 만들기 위한 기본 재료 생산 ➢ 2차 산업 = 콘텐츠 디자인 ▪ 만들어진 다양한 시스템을 활용해 유저가 먹을 수 있는 콘텐츠로 가공 ➢ 3차 산업 = 서비스 디자인 ▪ 만들어진 콘텐츠를 유저에게 판매하는 전략 설계 • 구분 정의 ➢ 시스템 : 콘텐츠를 만들 수 있는 기본 틀을 제작 ➢ 콘텐츠 : 틀 안에서 내용을 바꾸어 만들어진 결과물 우리는 이 단계를 시작하려 함
  • 13. 시스템과 콘텐츠의 구분 • 붕어빵 제작을 예시로 ➢ 붕어빵 시스템 디자인 ▪ 붕어빵 제작 프로세스 및 파라미터 설계 ✓ 붕어빵 틀 제작 - 콘텐츠 의도에 맞게 틀을 선택할 수 있도록 ✓ 재료 선택 후 반죽 - 반죽 재료를 선택할 수 있도록 ✓ 붕어빵 틀 가열 및 반죽 투입 - 틀을 얼마나 가열할지 선택할 수 있도록 ✓ 속 재료 선택 - 속 재료 선택할 수 있도록 (팥, 크림 등등…) ✓ 다시 반죽 투입 - 다시 반죽을 넣는 구간을 선택할 수 있도록 ✓ 덮개 덮고 달구기 - 달군 정도에 따라 맛이 변화할 수 있도록 ➢ 붕어빵 콘텐츠 디자인 ▪ 하나의 시스템으로 다양한 붕어빵을 만들 수 있도록 ▪ 프로세스에 기반한 파라미터 설정 ✓ 어떤 붕어빵 틀을 선택할지? ✓ 반죽 재료는 무엇인지? ✓ 속 재료로 무엇을 넣을지?
  • 14. 시스템 디자인, 왜 어렵나? 아무리 봐도 모르겠어요 ㅠㅠ
  • 15. 시스템 디자인, 왜 어렵나? • 인지의 어려움 ➢ 콘텐츠는 유저로써 몇 번이고 자연스럽게 경험했지만, 시스템은 겉으론 보이지 않기 때문에 인지의 어려움이 있음 ➢ 우리가 밥을 먹을 때 쌀 한 톨의 제작 과정이 보이지 않듯, 유저 입장에서 시스템은 겉으로 드러나지 않음 ➢ 보이지 않으니 알 수 없고, 알 수 없으니 당연히 만들 수도 없다! (우리가 매일 쌀밥을 먹지만, 쌀농사를 할 수 없는 것처럼) ➢ 평소 게임 플레이 중 처리되는 현상에 대한 로직을 생각하는 습관이 필요함 • 프로그래밍 관련 지식의 필요성 ➢ 시스템은 확장성과 재사용성을 위해 객체 지향적(OOP)으로 설계되어야 함 ▪ Ex1. A ,B 스킬 모두 ‘사거리’라는 값을 가지지만, 사거리가 길고 짧음으로 인해 근거리 스킬, 원거리 스킬의 두 종류의 스킬 이 하나의 파라미터에 의해 만들어질 수 있음 ➢ 데이터 테이블을 다루기 위한 데이터 유형에 대한 지식이 필요 ▪ Int, float, string, bool 등
  • 16. 시스템 디자인, 왜 어렵나? • 데이터베이스 관련 지식의 필요성 ➢ “아트는 그림으로, 플머는 코드로, 디자이너는 데이터로 말한다” ➢ 신입 디자이너는 대부분 간단한 데이터 작업부터 업무를 시작 (String 수정 등) ➢ 데이터를 잘 다루기 위해선 구조 분석 능력이 필요 ▪ 아이템이나 스킬과 같은 대규모 시스템은 다수의 데이터 테이블이 연관되어 있음 ▪ 각 테이블 간의 관계성 파악이 가능해야 함 ➢ 데이터 모델링 ▪ 데이터베이스 구축하기 위한 데이터 간의 관계 분석 및 설계가 가능해야 함 ▪ 어떤 데이터를 어디서 참조 받아 어떻게 사용할지? • 사실 시스템은 우리 근처에 있다 ➢ 카페에서의 커피 주문 ▪ 커피를 주문한 후 나에게 오기까지의 과정이 어떤 식으로 이루어지는지? ➢ 가위바위보 ▪ 플레이어는 어떤 행위가 가능한지?, 가위바위보의 규칙은? 관계형 데이터베이스 관리 시스템 (RDBMS) https://ko.wikipedia.org/wiki 데이터베이스 정규화 1차 정규화 2차 정규화 3차 정규화 BCNF
  • 17. 나도 한번 해보자, 시스템 디자인
  • 18. 나도 한번 해보자, 시스템 디자인 • 의도 설정 ➢ 도대체 왜?! 이 시스템을 만들어야 하는지에 대한 의도를 설명 ➢ 이 시스템이 무엇을 하기 위한 시스템인지? 이 시스템으로 무엇을 하고 싶은지? ➢ 간단하게 작성해 방향성을 먼저 확인하자! • 구성 요소 분해 ➢ 시스템이 어떠한 요소(객체)들로 구성되어 있는지 파악 ➢ 유사 시스템이나 게임을 보며 어떤 요소들이 시스템을 움직이고 있는지 리서치 ➢ 구성 요소를 분해해 하나씩 나열해보자 ▪ 커피 주문 시스템의 구성 요소 ✓ 고객, 캐셔, 바리스타 등
  • 19. 나도 한번 해보자, 시스템 디자인 • 파라미터 설계 ➢ 구성 요소를 움직이기 위해 어떤 데이터(파라미터)들이 필요할지 분석 ➢ 구성 요소들이 어떤 데이터(Input, Output)를 주고받는지? ▪ 커피 주문 시스템의 파라미터 ✓ 돈, 메뉴, 커피 등 ➢ 명확하게 데이터화할 수 있는 것들로 구성 • 기능 설계 ➢ 설계한 파라미터를 이용해 구성 요소들은 어떠한 행동이 가능한지? ▪ 커피 주문 시스템의 기능 ✓ 메뉴 선택하기, 주문하기, 결제하기, 커피 만들기 등 ➢ 구성 요소마다 할 수 있는 기능의 차이도 있을 수 있음
  • 20. 나도 한번 해보자, 시스템 디자인 • 상태 설계 ➢ 상태에 따라 사용할 수 있는 기능이나 파라미터의 변화가 있는지? ➢ 상태가 변화하는 조건은 무엇인지? (기능과 파라미터를 이용) ▪ 커피 주문 시스템의 캐셔의 상태 ✓ 대기, 주문받기, 결제 요청, 결제 확인, 제조 요청 등 • 규칙 설계 ➢ 각 구성요소의 상태, 기능, 파라미터가 작동할 때 필요한 규칙은 어떤 것이 있을지? ➢ 구성 요소들 이외에 시스템 전체를 아우르는 규칙은 무엇이 있을지? ➢ 각 규칙이 서로 충돌했을 경우, 규칙 간의 우선순위는 어떻게 되는지? ➢ 논리적인 허점이 생기지 않기 위해선 어떤 규칙을 정해줘야 할지? ▪ 커피 주문 시스템의 세부 규칙 ✓ 고객이 메뉴판에 없는 메뉴를 주문한다면? ✓ 결제를 시도했는데 고객의 돈이 충분하지 않다면?
  • 21. 나도 한번 해보자, 시스템 디자인 • 데이터가 시스템을 숨 쉬게 한다 ➢ 디자이너가 변경할 수 있도록 설계해야 하는 파라미터는 무엇일지? ➢ 설계한 파라미터들을 보고 담당 작업자가 실제 작업이 가능하도록 데이터 추상화와 모델링 작업 실시 ➢ 효율적인 작업과 휴먼 에러를 줄이기 위한 데이터 정규화 실시 • 테스트 & 피드백 ➢ 가상의 Input을 넣어 Rule에 따른 Output 도출 시뮬레이션 진행 ➢ 주변 사람들이나 담당 작업자에게 피드백 요청 • 폴리싱 ➢ 테스트와 피드백을 통해 발견한 개선점을 보완
  • 23. 좋은 시스템이란? • 확장성과 재사용성을 고려 ➢ 게임 개발 프로세스 특성상 디자인 및 개발 과정 중에 시스템 내용이 바뀔 수 있음 ▪ 작업자들이 시스템의 확장과 변동 범위를 예측할 수 있도록 (의도 전달) ➢ 일회성 시스템이 아닌, 재사용할 수 있도록 설계 • 허점 없는 규칙 ➢ 시스템 흐름 상 논리적으로 막히는 부분이 없도록 설계 ▪ 여러 케이스로 시뮬레이션해 보자 ▪ 일반적이지 않은 예외 사항에 대해서도 충분히 고민해보자 ➢ 시스템의 허점을 노린 편법으로 의도에 빗나간 행위가 가능하진 않은지? ▪ 어뷰징, 허점을 찌른 반복성 플레이 등
  • 24. 좋은 시스템이란? • 단계별로 항목을 나눠 설명 ➢ 시스템 흐름의 단계를 나눠 구성 요소들이 어떻게 유기적으로 동작하는지 설명 ➢ 작업자가 각 작업의 크기나 시간을 산정해 개발 우선순위를 결정할 수 있음 ➢ 무엇보다 문제 발생 시 추적에 용이함 • 다른 시스템과의 연계 ➢ 최근의 콘텐츠는 복잡도가 상승해 하나의 시스템이 아닌 여러 시스템이 서로 맞물림 ➢ 여러 시스템이 서로 잘 연계될 수 있도록 설계 ➢ Ex1. 아이템 ▪ 제작, 분해, 강화, 합성, 각성 등등… ➢ Ex2. 스킬 ▪ 조작 -> 유효성 검사 -> 액션 출력 -> 대상 수집 -> 충돌 판정 -> 계산식
  • 26. 주의사항 • 완벽함에 집착하지 말라 ➢ 우리는 유한한 자원(시간, 돈, 인력) 속에서 개발을 진행 중 ➢ 모든 것을 다 할 수 있는 완벽한 시스템이란 없고, 만들 수도 없다 ➢ 한 시스템 내에서 의도에 부합한 개발 우선순위를 설정하라 • 기술의 함정 ➢ 기술은 의도를 표현하는 수단일 뿐 ➢ 의도가 없는 기술은 어디에도 쓰일 수 없다 ➢ 먼저 의도를 표현하고 전달하는 것에 집중하라
  • 28. 이런 이야기를 했습니다 • 의도를 설정하라! • 그 의도를 전달할 좋은 방법과 교재를 찾아라 • 구성 요소를 항목별로 분류하고 규칙을 명확하게 설계하라 • 완벽한 디자인이란 없다. 의도에 맞는 적정선을 찾아라
  • 29. 참고 서적 및 사이트
  • 30. 참고 서적 및 사이트 게임을 움직이게 하는 기본 구성 요소에 대한 기술적 소개 시스템 기획의 기본 개념 및 기초 다지기
  • 31. 참고 서적 및 사이트 • 프로그래머에게 사랑 받는 게임 기획서 작성법 ➢ https://www.slideshare.net/iyooha/20101002-53482961 • 게임 기획자를 위한 데이터 테이블 Guide ➢ https://cafe.naver.com/gamecanvas/367 • 시스템 기획의 기본 원리 ➢ https://www.youtube.com/watch?v=iIjCkkzpDIc • 게임 기획자와 프로그래밍 공부 ➢ http://sstorm.egloos.com/5534178 • 기획 의도에 충실한 시스템 설계 • https://blog.naver.com/onlybest01/221260745391