손노리 / 서 관희 A Game Business Division of Plenus Entertainment 게임 개발 지원 시스템과 사례 안녕하세요. 손노리의 서 관희입니다. 필요한 추가 내용은 이 곳 슬라이드 노트에 적겠습니다. 손노리 / 서 관희 A Game Business Division of Plenus Entertainment
손노리 - sonnori 1993년 소규모 개발팀으로 시작하여 RPG, Action, Adventure, FPS, Online Game 분야의 15 타이틀의 게임을 제작. 게임 제작에 관하여 여전히 체계적이지 못한 부분도 있지만 외국과의 격차를 줄이기 위해 나름대로 노력 중.
게임 개발의 체계화 필요 게임 개발 점차 방대해 짐. 평균 퀄리티 이상의 게임을 제작 하기 위해서 개발의 효율성을 모색. H/W의 발전. 저장 매체 용량 발전. 여러 장르를 포함하는 퓨전화. 2D3D로 바뀌면서 게임 개발이 3배로 어려워 졌다는 느낌. 개발팀의 규모도 3~5배 이상 불어 남. 평균 퀄리티 이상의 게임을 제작 하기 위해서 개발의 효율성을 모색. 온라인 게임은 출시 이후에도 개발이 계속 되기 때문에 개발 기간의 장기화.
게임 개발에서의 공유 (1/2) 초기에는 팀 작업 시 5.25인치 디스켓으로 데이터를 교환 했다.(*1) 게임 개발에서의 공유 (1/2) 초기에는 팀 작업 시 5.25인치 디스켓으로 데이터를 교환 했다.(*1) LAN과 Windows가 본격적으로 사용되기 시작한 95년부터 보다 활발한 데이터 공유가 시작 되었다. 물론 WARCRAFT의 역할이 컸다. Microsoft Visual Source Safe를 사용 하면서 진정한 팀 작업의 위력을 절감. [*1] 93년에는 프린터 포트를 이용한 파일 전송도 굉장하게 느껴지던 시절.
게임 개발에서의 공유 (2/2) Share, Share, Share ! Share - What ? Share - How ? 게임 개발에서의 공유 (2/2) Share, Share, Share ! 팀원간 공유 팀원과 프로듀서와의 공유 팀과 경영진과의 공유 Share - What ? 정보 (Information) 자산 (Assets) Share - How ? 단순히 1개의 게시판이라도 함께 사용 하기 시작하면 도움이 된다. 정보는 데이터와 구별해야 한다. 게임 개발에서 발견되는 모든 것들이 데이터라고 할 수 있지만 그 중에서 의미를 지니고 의사 결정에 도움을 주는 것이야 말로 정보라고 할 수 있습니다. 예를 들어, 어떤 게임 출시 소식 같은 게임 웹진에서 쉽게 얻을 수 있는 뉴스들 중에서도 “경쟁작에 대한 리뷰” 또는 “새로운 아이디어를 제공할 수 있는 기사” 같은 것들은 모두가 공유 할 만한 가치를 지닌 정보라고 할 수 있겠죠. 무분별한 뉴스 덤프는 오히려 작업에 방해가 될 수 있습니다. -_-; 자산은 게임 리소스(배경 데이터, 이미지, 사운드, 실행 파일) 보다 넓은 의미로 봐야 한다고 생각 합니다. 즉, 컨셉 이미지, 설정/기획서, 결과물을 위한 중간/소스 데이터, 홍보 동영상, 로고 데이터, 심지어 월별 예산 액셀 파일, 게임 개발 철학 등등 게임 개발에 필요한 모든 것들(물론 뒤에 나올 강의 내용에서는 디지털화 할 수 있는 것들 만을 말하죠.)이 자산이라고 생각 합니다.
스텝 페이지 – Staff Pages (1/2) 초기에 사내 전용 Web 서버를 만들고 “공지/잡담/팀 게시판”으로 시작. 모두 사용하도록 유도 하기 위해 모든 개발자의 IE 첫 페이지를 스텝 페이지로 강제 지정. 현재는 공개/비공개 게시판 포함하여 30여 개의 게시판, 10여 개의 지원 시스템 페이지와 툴이 있음.
스텝 페이지 – Staff Pages (2/2) 업무 지원 시스템 달력 기능 (개인,일부,전체 일정 기록) 기안서 / 지출결의서 각종 문서 창고, 교육 자료 주간 업무 보고 회의실 / 숙직실 예약, 야근 신청 입사 원서 처리 소프트웨어 등록 (정품 등록) Log 분석 (웹, 온라인 게임) E-Mail 처리 공유 Bookmark 인쇄에 나온 개발 지원이 라기 보다는 업무 지원 시스템이 맞겠습니다. (초안이다 보니 ^^) 달력은 팀 내 데드라인 공지, 직원 생일, 외부 손님 방문, 면접 일정, 세미나 일정 등등의 공적인 내용의 공유도 되고 집세 내는 날 카드 빛 값는 날, 청소 하는 날 같은 개인적인 일정 까지 달별로 알 수 있어서 편리 합니다. 팀은 많아지고 회의실은 고정되어 있다 보니 “회의실 예약” 시스템을 개발했는데 불편할 줄로만 생각 했던 것과 달리 무척 잘 이용되어 지고 있다. 특히 회의시간이 끝나면 다음 차례 그룹이 이전 그룹을 합법적으로 쫓아 낼 수 있기 때문에 이용률이 높았으며 부가적으로 회의의 처음과 끝이 명확하게 시간 단위로 끝날 수 있어서 좋았다. (삼성 같은 대기업에서는 회의실 예약 시간이 지나면 PPT 도중일지라도 전기가 나가던데 그런 정도의 강제성을 띄지는 않는다. ^^; ) “입사 원서 처리” 는 관리급 인원의 주요 업무 중 하나. 이를 편하게 하는 것은 그들의 주당 40시간 중 5~10% 정도를 효과적으로 쓰게 만들어 준다. 주간 업무 보고는 팀장용 팀원용이 따로 있는데 개인적으로 본인은 거의 쓰질 않고 있으나 팀원들에게는 꼭 작성 하도록 강요 하고 있습니다. 실질적으로 업무 파악에 도움되기도 하지만, 빠트리고 안 쓰는 날은 정말 정말 바쁘거나 정신이 다른 곳에 분산되어 있다는 것을 짐작 할 수 있게 해줍니다. (본인은 주로 후자)
개발 지원 시스템 벅스 라이브 (Bugs Live !) 데이터 세이프 (Data Safe) 작업 페이지 (Work Page)
벅스 라이브 - Bugs Live 화이트데이 출시 전 QA단계에서 개발된 버그 추적 시스템 (Bug Tracking System). 반복되는 테스트 & 리포트를 효율적으로 관리하고자 모색한 결과. Bugzilla를 모델로 우리 목적에 맞게 APM(*1)으로 개발. 출시 때 까지 보통 1,000 ~ 1,700개 정도의 버그가 리포팅 됨. *1) APM : Apache Web Server+ Php + MySQL을 말합니다.
데이터 세이프 – Data Safe (1/2) 개발자가 게임 데이터를 효과적으로 공유 & 관리 하기 위한 In-House 자산 관리 툴 (Asset Management Tool) 여러 명이 함께 수정 해야 할 공동의 데이터 배경 배치 데이터, 각종 속성 파일, 스크립트 모든 팀원이 항상 최신 버전의 데이터를 공유 복잡한 것에 어려움을 느끼므로 최대한 단순한 인터페이스가 필요. 기본 개념은 VSS Explorer, WinCVS와 비슷.
데이터 세이프 – Data Safe (2/2) 기능 자체 개발 이유 관련된 툴 Client Only, Need Only File Server (Samba) Check In/Out, Undo, History, Get Latest 자체 개발 이유 무료 (다른 것들은 가격이 비싸다) 기능이 단순하고 속도가 빠르다. 관련된 툴 VSS, Perforce, Alienbrain, CVS (Free) 온라인 게임 개발을 하면서 변경된 파일만 찾아 내야 할 필요성이 요구됨.
작업 페이지 – Work Page (1/2) 화이트데이 막판 작업에 사용. 팀 내 커뮤니케이션에 기여. 바쁜 업무 중인 사람을 방해 하지 않고 사소한 일을 부탁하려는 의도에서 개발 됨. Post-It을 모니터에 붙이는 것에서 착안 팀 내 커뮤니케이션에 기여. 주요 업무 배분, 주간 업무 일지 기능, 같은 파트 사람들 일정 확인 기능 추가. Web Based, APM으로 개발.
작업 페이지 – Work Page (2/2) 화이트데이 이후 발견된 단점 Web Based이기 때문에 느린 속도. 업무 전달 내용을 당사자(1:1)만 알 수 있음. 업무의 예상 시간과 달성률을 알 수 없음. 관리자가 전체 진행 사항을 파악 할 수 없음. 완료 된 업무를 다른 사람에 전달 할 수가 없음. 신규 프로젝트나 온라인 게임에는 부적절. 팀원간 불화가 있는 경우 이를 더욱 부채질. 최근에 이를 보안하고 MS Project와 비슷한 기능을 할 수 있는 시스템 기획 중.
개발 지원 시스템과 그 외… 어디까지나 툴은 도구이지, 목적이 아니다. 개발자에게 외면 당하는 시스템은 필요가 없다. 필요성을 느낄 때만 만들고 수정 하라. 단번에 모든 것을 얻을 수는 없다. (*1) 툴을 만들 개발자가 없다면 벽과 포스트잇을 이용. MS Project의 간트 (Gantt) 차트의 항목을 결정하는 것은 무척이나 어렵다. (*2) 게임 개발에 XP(eXtreme Programming)를 적용해 보고 싶다. [1] 우리는 이런 시스템을 개발하는데 5년이 걸렸다. 하지만 개발 기간이 오래 걸리기 때문이 아니라 필요성을 느끼는데 그 만큼의 시간이 들었기 때문이다. [2] 일정 관리만 전담 할 수 있고, 게임 개발 경험이 많고, 성격 좋고, 파워도 있는 PM이라면 추천해 드리고 싶다. 물론 그 유용함은 인정하지만 “재롱이에게 아무리 물어 봐도” 배우기 어렵고 적용하기 힘들다. 비용도 만만치 않다. XP(Extreme Programming) 란, 96년 경부터 Ken Beck 등에 의해 제안된 개발 수법으로 “테스트, 코드 리뷰, 잦은 코드 릴리즈”를 통합하여 높은 품질의 코드를 만들어 내는 공고한 소프트웨어 엔지니어링 방법론이라고 한다. XP를 이루는 큰 축은 Pair Programming(한 코드를 두 명이 짝지어서 작업) , Refactoring (초기 설계보다 재설계를 중시) 라고 할 수 있다.
Thanks Further Reading 추후 질문 사항은 아래로 SAM Teaching Yourself Extreme Programming in 21 Days (번역서 : 초보자를 위한 eXtreme 프로그래밍/인포북 ) Taking Your Project to the MAT: Implementing Milestone Acceptance Tests by Chris Hind (Microsoft Games). GDMag-May, 2002. 추후 질문 사항은 아래로 Email : kwanny@sonnori.co.kr