17
게임 기획과 OOD 소프트웨어 공학로서의 게임 기획론

게임 기획과 Oop

  • Upload
    snugdc

  • View
    155

  • Download
    6

Embed Size (px)

DESCRIPTION

세미나 자료

Citation preview

Page 1: 게임 기획과 Oop

게임 기획과 OOD

소프트웨어 공학로서의 게임 기획론

Page 2: 게임 기획과 Oop

목차

게임 기획이란 ? 게임 기획 직무의 구성

Page 3: 게임 기획과 Oop

게임 기획이란 ? 게임 기획 무용론

게임 개발하는 데 기획자 필요 없다 게임 기획이란 ?

“ 프로그래밍과 그래픽을 제외한 모든 것” ( 김형진 , NCsoft, 개발 7 실 실장 )

“ 게임 플레이의 감각 요소들을 수치로 환원시키는 모든 작업” ( 신영택 , 대학생 )

모든 제작 개별 요소들을 통합하여 게임이라는 형태로 최종 완성시키는 일련의 작업들 .

뉴미디어 언어의 특징 ( 레프 마노비치 2003) 수적 재현 – Numeric Representation 모듈성 자동화 , 가변성 , 부호 변환

Page 4: 게임 기획과 Oop

게임 개발 직무의 영역•서버•클라이언트

•PD•PM•디렉터•시스템 디자인

•전투•정치 / 경제•커뮤니티•성장•PvP

•시나리오 라이터•밸런서•퀘스트 기획•레벨 디자이너•아이템 컨덴츠 기획•UI 기획•제작 진행•외주 관리

•아트 디렉터•애니메이터•컨셉 아티스트

•캐릭터•배경

•터레인 빌더•3D 모델러

•캐릭터•배경

•이펙터

최적화

구현 검토

설정 주도권

템포 vs 동작미

구성 주도권

기능 vs 장식

일정

Page 5: 게임 기획과 Oop

소프트웨어 설계와 게임 디자인 : 유사성 게임 디자인 -> 소프트웨어 디자인 -> 소프

트웨어 설계 소프트웨어 설계의 단계

요구사항 분석 시스템 디자인 세부 디자인 구현 통합 필드 테스트 사후 지원

=> 기획의 영역

=> 프로그래머의 영역

=> QA 의 영역

Page 6: 게임 기획과 Oop

소프트웨어 설계와 게임 디자인 : 차이점 요구 사항 분석

“ 재미”라는 Spec 규정하기 난해함 유동적 주관적

시스템 디자인 복잡도가 높은 소프트웨어 유기적인 통합 필수 실시간 반응의 총합 경우의 수 측정 난해함

Page 7: 게임 기획과 Oop

나쁜 프로세스 모호한 기획 – 자연어 , 희망사항 , 스펙 없음

나쁜 기획서의 예 문제 분석에 시간 낭비하는 프로그램 팀 프로그램팀에 종속되는 기획 하드 코딩 구현 후 드러나는 비일치 잦은 병목 현상 – 작업량의 몰리는 현상 기획 방향 수정 – 프로그램팀 휴업 상태 다시 수정 – 하드 코딩 늘어지는 일정 – 떨어지는 사기

Page 8: 게임 기획과 Oop

좋은 프로세스 구축을 위한 해결책 보다 명확한 문제 분석을 기반으로 시스템 디자인 문

서 작성 자연어가 아닌 Object Oriented Design 에 근거한 기획 문서

사용 . 기획의 전문 영역 확보 기획자가 프로그래머에 종속되지 않고 파트너의 위치로 격

상시킬 것 Game Design Environment (GDE) 구축

프로그래머를 게임 컨덴츠와 분리시킬 것 완벽한 기획 보다는 유연한 컨덴츠 변경을 중시 재미를 위한 테스트 기간을 충분히 확보 고기 ( 컨덴츠 ) 를 확보하지 말고 낚시대 ( 도구 ) 를 확보해라

!

Page 9: 게임 기획과 Oop

Object Oriented Design (OOD)

객체란 ? 추상 ( 抽象 ) 화 와 추상화 과정 컴퓨터에서의 추상화 OOD, OOP 의 용어 캡슐화 Encapsulation 객체는 인터페이스를 가진다 . Class Hierarchy / 상속

Page 10: 게임 기획과 Oop

객체란 ? 무형 , 유형의 인간이 인지하는 모든 것

사람 , 자동차 , 전화 , 꿈 객체의 특징

객체는 내면과 내면을 감싸는 외피를 가진다 . 내면은 외피 내부로 숨겨지며 이를 추상이라고 한다 . 객체는 외피를 가짐으로써 주변사물과 독립적으로 구분될 수 있

다 . 객체는 외피를 가짐으로써 관찰대상이 될 수 있다 . 구체적인 형태를 가지지 않는 것들 - 경제 , 국가 - 도 객체가 될

수 있다 . 객체에 대한 정의는 상대적이다 . 객체는 객체를 포함할 수 있다 .

객체는 속성과 행동으로 표현 할 수 있다 . 속성 : 색 , 길이 , 속도와 같이 객체의 성질을 나타내며 프로그

램에서는 변수로 표현 된다 . – attribute , member field 행동 (behavior) : 객체의 쓰임을 나타내며 프로그램에서는 함수

( 메소드 ) 로 표현 된다 . - method

Page 11: 게임 기획과 Oop

추상 ( 抽象 ) 화 와 추상화 과정

개가 바로 치아와 삽살개 셰퍼드등 이 세계에 존재하는 여러가지 개의 성질을 가지는 것들의 유일한 원본

멍멍 소리를 내고 , 꼬리를 흔들며 , 다리가 4 개고 , 코가 뾰족한 특징을 가지는 동물들을 개라고 정의

추상화 과정이란 어떤 구체적인 사물로 부터 공통적인 속성을 찾아내어서 그것들을 포괄할 수 있는 상위의 포괄적 개념

Page 12: 게임 기획과 Oop

수적 추상화 예 : 자동차

원자의 레벨

원자 단위의 시뮬레이션 ?

부품의 레벨

부품 외양의 충돌시뮬레이션

전자 회로 시뮬레이션

공기 저항 유체 역학 ?

지면의 요철과의 충돌시뮬레이션

운전자 근육 시뮬레이션

기능적 레벨

속도위치

가속도감속도

지면마찰력공기저항력

색깔이름

자동차 명

액셀레이터브레이크핸들 회전

Page 13: 게임 기획과 Oop

OOD, OOP 의 용어 Class

하드 디스크에 정적으로 존재하는 class 파일 , 추상 데이타 타입 (Abstract Data Type) 이다 . method 과 member variable 로 이루어진다 .

Object 메모리에 동적으로 존재하는 클래스의 모습이다 .

Instance object 가 어떤 속성이 부여되어 있는 상태 . 프로그램에서 object 가 불리어지는 이름이다 .

Member variable class 에서 변수 또는 상수로 정의한다 . 객체의 값 ( 속성 ) 이 저장된다 .

Method class 에서 함수처럼 정의한다 . 객체의 행동을 표현할 때 쓰인다 .

Page 14: 게임 기획과 Oop

캡슐화 Encapsulation 추상화 시킨 자료를 클

래스라는 개념으로 포함 시키는 것을 의미

클래스란 객체의 속성과 기능을 정의하는 문장이다 .

높은 모듈성(modularity) 과 정보의 은닉성 (information hiding) 을 제공 한다 . 은닉성이란 객체의 외부

접근에 대한 통제를 의미

public class Ex001Car{

int intSpeed;int intColor;String strCarName;

public void speedUp(){

intSpeed ++;}

public void speedDown(){

intSpeed --;}

}

Page 15: 게임 기획과 Oop

객체는 인터페이스를 가진다 .

객체는 일반적으로 유일하며 , 각 객체는 고유의 특징과 행동특징을 가지는 것으로 정의할 수 있다 . 클래스란 이러한 객체의 고유 특성과 행동특징을 함께 묶어놓은 개념이다

문제영역은 빛의 조절이며 이 문제를 해결하기 위해서 켜기 , 끄기 , 밝게하기 , 어둡게 하기라는 인터페이스 들이 필요하다

클래스의 이름은 Light 라고 했다 . 자 이제 여러분이 전구를 하나 샀다고 하면 이로서 It 이라는 새로운 객체가 생성되는 것이다.

Page 16: 게임 기획과 Oop

Class Hierarchy / 상속

Page 17: 게임 기획과 Oop

Game Design Environment (GDE)

컨덴츠를 기획하지 말고 컨덴츠를 생산할 수 있는 도구 (Tool) 을 기획하는 것

Script 의 Spec 을 디자인할 수 있는 능력 GDE 의 도구

Script Language : Lua 유연한 데이터 입력 형식 : XML

GDE

프로그래머 기획자

구현 / 개선 / 유지 컨덴츠 양산

Spec 정의