게임 툴 개발의 미래

23
게임 툴에 대하여 김학현 [email protected] @shuaiharry http://www.linkedin.com/pub/harry-kim/14/672/19a

Upload: harryhakhyun-kim

Post on 05-Jul-2015

2.261 views

Category:

Technology


7 download

DESCRIPTION

게임 툴이 가져야 하는 기능을 살펴보고 새로운 트레인드인 HTML5 툴등에 대해서 고민해봅시다

TRANSCRIPT

Page 1: 게임 툴 개발의 미래

게임 툴에 대하여

김학현 [email protected]

@shuaiharry http://www.linkedin.com/pub/harry-kim/14/672/19a

Page 2: 게임 툴 개발의 미래

개요

미들웨어에서 현재 가장 빠르게 변하고 있는 것은

툴이 아닐까요?

그리고 좋은 툴을 만들기란

일반적으로 매우 어렵습니다.

Page 3: 게임 툴 개발의 미래

개요

문서 보다는 코드내 깔끔한 주석이

깔끔한 주석 보다는 스스로 설명하는 코드가 최고

모바일에서는 복잡 보다는 단순함이 최고,

두번 클릭보다는 한번 클릭이 최고.

함수도 인자 두개 보다는 하나가 읽기 쉽다는데,

Page 4: 게임 툴 개발의 미래

개요

그렇다면 툴은?

스스로 다음에 할 일을 알려주는 툴이 최고가 아닐까요?

사용자의 행동을 예측

Page 5: 게임 툴 개발의 미래

개요 - 갑자기 툴을 고민한 이유는?

모바일 시대에 접어들면서,

경험 있는 프로그래머가 필요한 곳은 어디일까도 사실은 하나의 고민 요소!

엔진

GUI툴

또 어디에?

Page 6: 게임 툴 개발의 미래

툴 개발 워크플로우

기본 툴 개발

=> 디자이너 사용

=> 피드백 받아서 기능 추가

=> 계속 반복 -> 기능들을 찾기 어려워짐!

=> 스티브 잡스 "사용자는 실제 원하는 것을 모른다..."? 음?

=> 기능 추가 요청을 받으면, 왜 그런 기능이 필요한지 다시 생각...=> 옵션이나 창을 새로 만들지 않고 필요한 상황에 바로 사용 가능하도록 생성.

Page 7: 게임 툴 개발의 미래

좋은 툴을 만드려면?

시리얼라이제이션(+Reflection?)

파일 처리

멀티 유저 지원

GUI 개발의 독립성.

멀티플랫폼 - 모바일 시대?

프로퍼티그리드

컴포넌트 패턴

플러그인

Page 8: 게임 툴 개발의 미래

Serialization / Reflection

C++ 기본적으로 언어적 지원이 적어, LLVM 등으로 컴파일해서 적용하거나, 복잡한 프레임워크가 필요한 경우가 많음

Reflection Havok GDC 2012 - Robustification Source code Insomniac Frame work - 보면 좋다고들 하지만 어렵네요.

C++ 11 은 도움이 될까? - 편리성 이외에 언어적 지원은 여전 히 적다고 합니다.

C#은 좀 더 편하긴 하지만 Managed 코드는 여전히 고생스럽습니다.

Page 9: 게임 툴 개발의 미래

Serialization / Reflection

툴에 필연적인 데이타 연동

C++ -> Managed ->C# C++ -> 연동코드(Swig) -> Lua/Phython

LLVM 은 프로퍼티를 분석해서 데이타베이스를 구착하면 좀 더 편리해짐

Havok GDC 2012 - Robustification

Page 11: 게임 툴 개발의 미래

멀티 유저 작업

파일 변화 감지

-Focus 를 얻을때 Reload

-로드된 파일 체크

-폴더 단위로 감시하는 API 도 있다고 합니다. (가상머신상에서는 매우 느려질 수 있음)

파일 분리

기능 단위 분리(배경 레이어등 사용) - 지형, 배경 오브젝트, 배경 이펙트...etc

사용자 단위 분리

Page 12: 게임 툴 개발의 미래

Client-server archtecture on tools인솜니악은 성공적으로 썼다더라.

우리도 할 수 있을까? 난이도는?http://www.insomniacgames.com/ron-pieket-a-clientserver-tools-architecture/http://www.tomgaulton.com/articles/http://www.itshouldjustworktm.com/?p=875

Web 으로 하면 배포가 필요 없고 DB 연동이 편하다더라 - 가벼운 수정 툴이라면 최고?

- 참고 Goolgle IO 의 게임 툴 개발 이야기!

툴에서 직접 저장(DB 연동)할 수 있도록 하면 편리하다. http://www.insomniacgames.com/new-generation-of-insomniacgames-tools-as-webapp/

Page 13: 게임 툴 개발의 미래

GUI

새로 온 디자이너가 쓰는 걸 잘 관찰 이미 쓰던 사람은 GUI 개선에 도움이 안될지도.

마야/맥스 UI 를 모두 지원해야 할까?

- 디자이너가 추후에 많이 추가되어도 교육 비용이 적어질 수 있도록(scalable?)

툴 프로그래머 이외에는 GUI 작업없이 UI 에 바로 추가될 수 있어야 함. - GUI 독립성? - 프로퍼티를 C++ 에 가볍게 추가할 수 있고 ,바로 프로퍼티 그리드에서 수정가능할 수 있게 되어야 함

Page 14: 게임 툴 개발의 미래

멀티플랫폼

QT 윈도우/맥 지원

마야 2011 부터 사용

C++ 기반이며, 모바일등을 이유로 맥에서도 돌아가야 한다면 좋은 선택

C# 모노? 어떤가요? http://answers.unity3d.com/questions/9675/is-unity-engine-written-in-monoc-or-c.html

HTML5 http://www.appmobi.com/?q=node/158

Page 15: 게임 툴 개발의 미래

Property Grid

일단 실제 추가 방법은

여기서(gamedevforever)

UI 는 프로퍼티가 추가되면 자동으로 확장

즉 대다수 프로그래머는 툴 GUI 에 대해 알 필요가 없어야 함

엔진 내 프로퍼티가 자동으로 프로퍼티 그리드에 추가되서 디자이너가 수정 할 수 있어야 함.

Page 16: 게임 툴 개발의 미래

Component Pattern

컴포넌트 단위로 프로퍼티 그리도 연동되면 수정하기 매우 편리 대부분의 툴 기반 엔진에서 사용중인 방법

엔티티에 필요한 컴포넌트를 추가하고, 컴포넌트의 프로퍼티를 수정할 수 있도록 컴포넌트 별로 프로퍼티 그리드가 있음

컴포넌트 패턴에 관한 건 아래 글들 참고 http://www.dev3d.net/bbs/view.php?id=pds&page=4&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=106

http://cagetu.egloos.com/4291564

http://www.insomniacgames.com/three-new-systems-of-dynamic-components/

Page 17: 게임 툴 개발의 미래

플러그인 시스템

"이상적"으로는 엔진 빌드없이,

간단한 DLL 만으로 UI 패널 추가가 가능해야 함

현실에서 지원하기는 좀 까다롭지만,

마야 같은 경우는 충실히 지원되고 있고,

매우 편리하게 사용가능

Page 18: 게임 툴 개발의 미래

게임 클라이언트 어태치 툴

실행 중인 게임과 통신 가능한 툴

렌더링 엔진이 따로 없는 미들웨어의 경우 선택하기 좋은 방법 - 즉 게임 클라이언트를 뷰어로 사용 가능

디버깅 정보 등을 보여줄 수 있음 - 메모리 사용량, 엔티티나 컴포넌트 네임 및 로딩 경로등 표시

게임 클라이언트에서 보여줄 디버깅 옵션 제어- 와이어프레임등

Page 19: 게임 툴 개발의 미래

GUI 툴에 대한 생각

앞으로 발전 가능성이 매우 높은 분야- 프로타이핑용과 실제 개발 용을 구분해서 생각하지 않으면 실제 개발 단계에서 고생하는 경우가 많은 분야이기도 함

MFC - 여전히 C++ 와 Visual Studio 조합에서 높은 생산성을 보여주는 툴

XAML - WPF, Silverlight Expression Blend - 잘만든 XAML GUI 툴이라고 함

Noesis GUI - XAML 을 실제 게임 UI 에 사용하려는 새로운 가능성

XCode Storyboard - 프로토타이핑용 GUI 툴의 가능성을 보여줌. - 꼭 사용해보세요!

Flash Scaleform - GUI 툴의 발전 가능성을 보여줌

Page 20: 게임 툴 개발의 미래

Visual Editors

새로운 Visual 툴을 요구하는 시대

앞으로 많은 발전이 있을 분야로 생각 됨

Visual Shaderhttp://www.dev3d.net/bbs/data/pds/VisualShaderEditor.pdfhttp://graphics.cs.brown.edu/games/AbstractShadeTrees/http://www.lumonix.net/shaderfx.html

Visual Scripthttp://en.wikipedia.org/wiki/Visual_programming_languagehttp://www.uscript.net/home/http://www.unrealengine.com/features/kismet/

Page 21: 게임 툴 개발의 미래

유명한 미들웨어 툴들

다음 세대 미들웨어들은 어떤 툴을 가지고 나올까요?

SpeedTree

ShaderFX

Terrain Tools http://www.quadsoftware.com http://www.planetside.co.uk/

Page 22: 게임 툴 개발의 미래

프로그래머 개발 툴 생각.

개발 툴도 크게 발전하고 있습니다. - Attlassian 이나 Smartbear 같은 경우는 이미 큰 시장을 형성하고 있는 것으로 보임

Visual Studio 2008/2010, XCode - Visual Assist - 아직도 많이 쓰는 플러그인.

버전관리 SVN,Perforce...Git, Mercurial, WinMerge,Araxis

이슈관리 http://www.atlassian.com/software http://smartbear.com/products/software-development/code-review/code-review-tools http://premake.sourceforge.net/

빌드 관리 http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET http://www.dev3d.net/bbs/view.php?id=pds&page=5&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=94

문서작업 - 구글 독스

수다도 필요해요 - .http://agit.kakao.com

Page 23: 게임 툴 개발의 미래

정리

툴은 시간이 걸리지만 개발효과를 볼 수 있는 부분이 아닐까 싶습니다.

모바일 시대에도 툴 개발은 여전히 유효하고,

HTML5 등을 이용한 가벼운 툴 개발등의 새로운 경향이 생기지 않을까 싶습니다.

멋진 툴에 도전해봅시다.!