게임 툴 개발의 미래

3,187 views

Published on

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

Published in: Technology
0 Comments
9 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,187
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
20
Comments
0
Likes
9
Embeds 0
No embeds

No notes for slide

게임 툴 개발의 미래

  1. 1. 게임 툴에 대하여 김학현 kimhakhyun@gmail.com @shuaiharry http://www.linkedin.com/pub/harry-kim/14/672/19a
  2. 2. 개요미들웨어에서 현재 가장 빠르게 변하고 있는 것은툴이 아닐까요?그리고 좋은 툴을 만들기란일반적으로 매우 어렵습니다.
  3. 3. 개요문서 보다는 코드내 깔끔한 주석이깔끔한 주석 보다는 스스로 설명하는 코드가 최고모바일에서는 복잡 보다는 단순함이 최고,두번 클릭보다는 한번 클릭이 최고.함수도 인자 두개 보다는 하나가 읽기 쉽다는데,
  4. 4. 개요그렇다면 툴은?스스로 다음에 할 일을 알려주는 툴이 최고가아닐까요?사용자의 행동을 예측
  5. 5. 개요 - 갑자기 툴을 고민한 이유는?모바일 시대에 접어들면서,경험 있는 프로그래머가 필요한 곳은 어디일까도 사실은 하나의 고민 요소!엔진GUI툴또 어디에?
  6. 6. 툴 개발 워크플로우기본 툴 개발=> 디자이너 사용=> 피드백 받아서 기능 추가=> 계속 반복 -> 기능들을 찾기 어려워짐!=> 스티브 잡스 "사용자는 실제 원하는 것을 모른다..."? 음?=> 기능 추가 요청을 받으면, 왜 그런 기능이 필요한지 다시 생각...=> 옵션이나 창을 새로 만들지 않고 필요한 상황에 바로 사용 가능하도록생성.
  7. 7. 좋은 툴을 만드려면?시리얼라이제이션(+Reflection?)파일 처리멀티 유저 지원GUI 개발의 독립성.멀티플랫폼 - 모바일 시대?프로퍼티그리드컴포넌트 패턴플러그인
  8. 8. Serialization / ReflectionC++기본적으로 언어적 지원이 적어, LLVM 등으로 컴파일해서 적용하거나, 복잡한 프레임워크가 필요한 경우가 많음 Reflection Havok GDC 2012 - Robustification Source code Insomniac Frame work- 보면 좋다고들 하지만 어렵네요.C++ 11 은 도움이 될까? - 편리성 이외에 언어적 지원은 여전 히 적다고 합니다.C#은 좀 더 편하긴 하지만 Managed 코드는 여전히 고생스럽습니다.
  9. 9. Serialization / Reflection툴에 필연적인 데이타 연동 C++ -> Managed ->C# C++ -> 연동코드(Swig) -> Lua/PhythonLLVM 은 프로퍼티를 분석해서 데이타베이스를구착하면 좀 더 편리해짐 Havok GDC 2012 - Robustification
  10. 10. 파일처리파일 UIDhttp://en.wikipedia.org/wiki/URI_scheme파일 타입 정리http://en.wikipedia.org/wiki/Internet_media_type애셋/패키징 시스템http://www.insomniacgames.com/bob-sprentall-asset-build-management/
  11. 11. 멀티 유저 작업파일 변화 감지 -Focus 를 얻을때 Reload -로드된 파일 체크 -폴더 단위로 감시하는 API 도 있다고 합니다.(가상머신상에서는 매우 느려질 수 있음)파일 분리 기능 단위 분리(배경 레이어등 사용) - 지형, 배경 오브젝트, 배경 이펙트...etc 사용자 단위 분리
  12. 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=875Web 으로 하면 배포가 필요 없고 DB 연동이 편하다더라- 가벼운 수정 툴이라면 최고?- 참고 Goolgle IO 의 게임 툴 개발 이야기!툴에서 직접 저장(DB 연동)할 수 있도록 하면편리하다.http://www.insomniacgames.com/new-generation-of-insomniacgames-tools-as-webapp/
  13. 13. GUI새로 온 디자이너가 쓰는 걸 잘 관찰이미 쓰던 사람은 GUI 개선에 도움이 안될지도.마야/맥스 UI 를 모두 지원해야 할까?- 디자이너가 추후에 많이 추가되어도 교육 비용이 적어질 수 있도록(scalable?)툴 프로그래머 이외에는 GUI 작업없이 UI 에 바로 추가될 수 있어야 함.- GUI 독립성? - 프로퍼티를 C++ 에 가볍게 추가할 수 있고 ,바로 프로퍼티 그리드에서 수정가능할 수 있게 되어야 함
  14. 14. 멀티플랫폼QT 윈도우/맥 지원 마야 2011 부터 사용 C++ 기반이며, 모바일등을 이유로 맥에서도돌아가야 한다면 좋은 선택C# 모노? 어떤가요? http://answers.unity3d.com/questions/9675/is-unity-engine-written-in-monoc-or-c.htmlHTML5 http://www.appmobi.com/?q=node/158
  15. 15. Property Grid일단 실제 추가 방법은 여기서(gamedevforever)UI 는 프로퍼티가 추가되면 자동으로 확장즉 대다수 프로그래머는 툴 GUI 에 대해 알 필요가 없어야 함엔진 내 프로퍼티가 자동으로 프로퍼티 그리드에 추가되서 디자이너가 수정 할 수 있어야 함.
  16. 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/
  17. 17. 플러그인 시스템"이상적"으로는 엔진 빌드없이,간단한 DLL 만으로 UI 패널 추가가 가능해야 함현실에서 지원하기는 좀 까다롭지만,마야 같은 경우는 충실히 지원되고 있고,매우 편리하게 사용가능
  18. 18. 게임 클라이언트 어태치 툴실행 중인 게임과 통신 가능한 툴렌더링 엔진이 따로 없는 미들웨어의 경우 선택하기 좋은 방법- 즉 게임 클라이언트를 뷰어로 사용 가능디버깅 정보 등을 보여줄 수 있음- 메모리 사용량, 엔티티나 컴포넌트 네임 및 로딩 경로등 표시게임 클라이언트에서 보여줄 디버깅 옵션 제어- 와이어프레임등
  19. 19. GUI 툴에 대한 생각앞으로 발전 가능성이 매우 높은 분야- 프로타이핑용과 실제 개발 용을 구분해서 생각하지 않으면 실제 개발 단계에서 고생하는 경우가 많은 분야이기도 함MFC- 여전히 C++ 와 Visual Studio 조합에서 높은 생산성을 보여주는 툴XAML - WPF, Silverlight Expression Blend - 잘만든 XAML GUI 툴이라고 함 Noesis GUI - XAML 을 실제 게임 UI 에 사용하려는 새로운 가능성XCode Storyboard - 프로토타이핑용 GUI 툴의 가능성을 보여줌. - 꼭 사용해보세요!Flash Scaleform - GUI 툴의 발전 가능성을 보여줌
  20. 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.htmlVisual Scripthttp://en.wikipedia.org/wiki/Visual_programming_languagehttp://www.uscript.net/home/http://www.unrealengine.com/features/kismet/
  21. 21. 유명한 미들웨어 툴들다음 세대 미들웨어들은 어떤 툴을 가지고 나올까요?SpeedTreeShaderFXTerrain Toolshttp://www.quadsoftware.comhttp://www.planetside.co.uk/
  22. 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
  23. 23. 정리툴은 시간이 걸리지만 개발효과를 볼 수 있는부분이 아닐까 싶습니다.모바일 시대에도 툴 개발은 여전히 유효하고,HTML5 등을 이용한 가벼운 툴 개발등의 새로운 경향이 생기지 않을까 싶습니다.멋진 툴에 도전해봅시다.!

×