(과거 NDC 2014에서 했던 강연 자료입니다. 발표 당시엔 공유에 힘든 부분이 있어 게임 출시 이후에 공개되는 점 양해를 드립니다.)
프로그래머의 시각에서 게임 개발 프로세스를 보면, 여러 에이전트 들이 특정한 목적을 가지고 동시에 정보를 처리하는 일련의 로직 조합이라고 생각해볼 수 있습니다. 테크니컬 하게 정보 처리 로직을 작성하고 그 효율을 탐구하는 업무가 바로 프로그래머의 주요 업무 중 하나입니다. 그렇다면 프로그래머의 시각으로 개발 프로세스를 접근해 보면 새로운 인사이트를 얻는 부분이 있지 않을까요?
<야생의 땅:듀랑고>에는 새로움이 가득한 도전이 많이 있습니다. 이러한 새로움을 향한 도전은, 비단 게임 피처 뿐만 아니라 개발 프로세스에서도 마찬가지로 녹아 있습니다. 실제로 개발 프로세스 관리에 수많은 시도들이 있었고 지금도 계속 되고 있습니다.
그간 시도했던 여러 개발 프로세스에 대한 소개를 하고, 그것을 활용한 피처 개발, 프로토타이핑 사례 등을 공유하고자 합니다.
NDC 2014 Beyond Code: <야생의 땅:듀랑고>의 좌충우돌 개발 과정 - 프로그래머가 챙겨주는 또 다른 개발자 사용 설명서
1. What ! Studio / 넥슨코리아
박영준
Beyond Code
<야생의 땅:듀랑고>의 좌충우돌 개발 과정
프로그래머가 챙겨주는 또 다른 개발자 사용 설명서
2. 제 소개
박영준 (gp2k@nexon.co.kr)
프로젝트 이력
넥슨, 왓 스튜디오, 프로그래머, 파트장, PM
– 야생의 땅: 듀랑고
– 전투, 애니메이션 시스템, AI 서버, 클라이언트
넥슨, 마비노기 영웅전 프로젝트
강연 내역
2013년: 신입사원 교육 - 손맛이 사는 액션게임 만들기
2012년: NDC, 마비노기 영웅전 카이 포스트모템 - 시선
을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지
2011년: NDC, 마비노기 영웅전 액션 시스템 - 기민하고
다채로운 액션 프로토타이핑 비결
3. 목차 프로그래머의 미덕, 프로그래머의 미흡
불법 야근러를 막아라 – 일정을 맞추는 방법
Divide And Conquer
일을 쪼개라
시간을 쪼개라
인력을 쪼개라
니 말이 맞아? 내 말이 맞아? - 의도를 맞추는 방법
비전 얼라인
테스트 주도형 피처 개발
QA 주도형 개발
결론
4. “공룡시대 야생 환경에 던져진 현대인이 되어,
사실적 풍취의 탐험, 사냥, 개척, 사회 건설을 플레이하는
새로운 체험의 모바일 MMORPG”
게임의 소개
야생 환경
현대인
원주민공룡
공룡
창발성
사회 건설
개척
탐험
사냥
5. 왓 스튜디오의 개발 과정?
Agile ? XP ?
• Yes and No
• 이론적으로 완벽한 개발 방법론을 설명하는 게 아님
사례 중심 소개
• 100% 저희 스튜디오가 실제로 경험하고 삽질하며 개선
했던 살아있는 개발 방법론입니다
• 정교함은 떨어지지만 내 몸에 맞는…
이런 논쟁이 발현할 수 있었던 문화 소개?
• 이정수 : <가죽 장화를 먹게 해주세요>
• 최호영 : <가죽 장화를 먹게 해달라니>
6. Beyond Code! Why not!?
우리 스튜디오의 작업 과정을 코딩 한다면!?
논리적 데이터 흐름을 제어 : 프로그래밍
저작 작업의 흐름을 제어 : 게임 개발 프로세스
프로그래머는 시스템을 설계하고 구현합니다.
• 시스템 : 프로세스
프로그래머는 객체 사이의 디자인에 관심이 많습니다.
• 객체 : 사람 혹은 소그룹
• 사이 : 관계
• 디자인 : 파이프라이닝
7. 디렉터가 창발성을 외치면
개발자들은 어떤 대비를 해야?
• 심플한 룰과 관계 속에서 예상치 못한 새로움
• 계(System)의 안정성?
• 나비효과?
• 스펙은 갈대와 같이…
• 어떻게 일정을 맞출까!?
9. 프로그래머의 미덕?!
키보드 워리어
보통은 말 보단 글(또는 코드)이 편하다?
설계 덕후
객체를 디자인하고 관계를 코드로 설계한다
타임 컬플렉시티
타임 컴플렉시티에 대한 본능적 반응
Geek
별의 별 곳에 공돌이 개그.
Gamification 종특
Due Mode
Due 직전의 빛나는 창의력 + 집중력
10. 프로그래머의 미흡!?
난 내 일만
코딩만 열심히 한다.
항상 쫓기며 일한다.
부정적(?) 낙천주의
이 기획 아마 안 될꺼야…
하지만 이 스펙은 1주일이면 될겨~
HGI 소홀(Human-Geek Interface)
너무 독특한 자신만의 세계가 있다거나…
자연언어 커뮤니케이션 힘듦?
11. 미덕과 미흡을 잘 짬뽕 해보면 블루 오션?!
미흡 흡수
내 일만 작업 프로세스 전반에 관심을 가짐
HGI를 향상
키워질 양성화: 스크럼! 의 또 다른 사용 설명서!?
정량 가능한 일정 예측법 고안
미덕력 업!
Beyond Code!
공돌이 개그의 건설적인 활용 방안!
시스템 설계를 확장해서 개발 프로세스 설계
객체 디자인을 확장해서 조직 설계
12. 프로그래머의 뇌구조
이것들이 어떻게 작용하는지 보시죠!
Divide
And
Conquer
Due 모드
모듈화
그리디
휴리스틱
타임
콤플렉시티
객체
디자인
키워질
13. 변화무쌍한 스펙 속에서 일정을 맞추는 방법
일정을 맞추는 방법
- 불법 야근러*를 막아라
*불법 야근러 : 칼퇴근의 미덕을 거부하는 하드워커
*자매품 : 불법 출근러
21. 단계적 업무 쪼개기 – 단계적 프로토타이핑
모듈화
더 이상 쪼갤 가치가 없을 때까지 쪼갬(같은 목적 단위)
독립적으로 돌아가야 함
• 단일 책임 원칙(SRP) – 한가지 목적으로만 변경되어야
• 개방 폐쇄 원칙(OCP) – 확장에 열려있고 수정엔 닫힌
XP 원칙에 따라
항상 돌아가는 소프트웨어 유지
조금씩 개선 - 재미있으면 더하고 재미 없으면 뺀다
현재가 다음 단계의 비전이 됨
Divide
And
Conquer
Due 모드
모듈화
그리디
휴리스틱
타임
콤플렉시티 객체
디자인
키워질
22. (예) <야생의 땅:듀랑고> 에서 가죽장화를 만들려면?
네트워킹 테스트
가죽 장화를 만들 수 있도록 원활한 모바일 MMO 네트워킹 제공
채집 시스템
가죽 장화를 만들려면 어떤 재료를 어디서 구하나?
사냥 시스템
동물을 잡아야 가죽을 얻지!
생산 시스템
가죽 장화 재료가 모였는데 어떻게 조합하지?
건설 시스템
가죽 장화를 만들라는데 작업대는 어떻게 만들지?
UI
가죽 장화 제작 UI는 어떻게 생겼나?
렌더링
가죽 장화를 때깔을 어떻게 살릴까?
생태계
화폐
…
23. (예) <야생의 땅:듀랑고> 에서 가죽장화를 만들려면?
네트워킹 테스트
가죽 장화를 만들 수 있도록 원활한 모바일 MMO 네트워킹 제공
채집 시스템
가죽 장화를 만들려면 어떤 재료를 어디서 구하나?
사냥 시스템
동물을 잡아야 가죽을 얻지!
생산 시스템
가죽 장화 재료가 모였는데 어떻게 조합하지?
건설 시스템
가죽 장화를 만들라는데 작업대는 어떻게 만들지?
UI
가죽 장화 제작 UI는 어떻게 생겼나?
렌더링
가죽 장화를 때깔을 어떻게 살릴까?
생태계
화폐
…
24. (예) <야생의 땅:듀랑고> 에서 가죽장화를 만들려면?
네트워킹 테스트
가죽 장화를 만들 수 있도록 원활한 모바일 MMO 네트워킹 제공
채집 시스템
가죽 장화를 만들려면 어떤 재료를 어디서 구하나?
사냥 시스템
동물을 잡아야 가죽을 얻지!
생산 시스템
가죽 장화 재료가 모였는데 어떻게 조합하지?
건설 시스템
가죽 장화를 만들라는데 작업대는 어떻게 만들지?
UI
가죽 장화 제작 UI는 어떻게 생겼나?
렌더링
가죽 장화를 때깔을 어떻게 살릴까?
생태계
화폐
…
25. 단계적 프로토타이핑
A1 – A3
게임 실제로 보이게
• HTML5 웹 기반
• 지형 생성
• 지형 스트리밍
• 단순한 인터랙션
26. 단계적 프로토타이핑
A1 – A3
D1 – D3
게임 실제로 보이게
모듈화!
모바일 멀티 터치 조작계
• 모바일 터치에 맞게
• 독립적 프로토타이핑
27. 단계적 프로토타이핑
A1 – A3
D1 – D3
Z3 – Z5
게임 실제로 보이게
모바일 멀티 터치 조작계
시스템에 특화
• 그래픽 요소 최소화
• 시스템만 검증
– 아이템
– 채집
– 생산
– 건축
– 사냥
• 게릴라 사내 테스트
• 레트로한 풍의 매력
– 사내 팬덤 확보
28. 단계적 프로토타이핑
A1 – A3
D1 – D3
Z3 – Z5
A4 – A5
게임 실제로 보이게
모바일 멀티 터치 조작계
시스템 검증
모바일 클라이언트 플레이 검증
• 시스템은 제외
• 조작성, 표현 위주 검증
– 멀티터치 적용
– 사냥의 표현
– 간단한 자연 표현
29. 단계적 프로토타이핑
A1 – A3
D1 – D3
Z3 – Z5
A4 – A5
게임 실제로 보이게
모바일 멀티 터치 조작계
시스템 검증
모바일 클라이언트
플레이 검증
서버 기능 독립적 모듈화
그래픽(X)
클라이언트 일단 되게
서버(X)
30. 단계적 프로토타이핑
A1 – A3
D1 – D3
Z3 – Z5
A4 – A5
tinyA6
P6
W6
A6
게임 실제로 보이게
모바일 멀티 터치 조작계
시스템 검증
모바일 클라이언트
플레이 검증
MMO 서버와 게임 연동,
캐릭터, UI 조립
Bronto
MMO 서버 프레임워크 구현
모바일 사냥, 동물 AI
식생, 자연, 인공물 표현
물 표현 연구
각
각
기
능
단
위
로
모
듈
화
31. 프로토타입 전국시대
A1 – A3
D1 – D3
Z3 – Z5
A4 – A5
랩터빌드
tinyA6
P6
W6
A6
게임 실제로 보이게
모바일 멀티 터치 조작계
시스템 검증
모바일 클라이언트
플레이 검증
MMO 서버와 게임 연동,
캐릭터, UI 조립
Bronto
MMO 서버 프레임워크 구현
모바일 사냥, 동물 AI
식생, 자연, 인공물 표현
물 표현 연구
완전체!!!
B1 – B5
하이엔드 표현 연구
32. 단계적 프로토타이핑의 결과
• 각각의 목적, 재미 요소를 추구하며
독립적으로 발전해감
• 이전의 프로토타입이
다음 프로토타입의 비전을 제시
• 부분을 완성해서
전체를 조립해나가는 과정
• 단, 통합할 땐 좀 힘듦…… 뒤에 얘기
33. 시간을 쪼개라
신은 사람을 질투한다. 사람은 죽으니까.
죽으니까 늘 마지막처럼 산다. 그래서 아름답다.
<트로이>
34. 듀 데이트의 역설
• 듀가 많이 남으면 작업이 붕 뜸
– 어디 가서 진짜 시간 쪼개고 싶다
• 그것보다! 더 큰 문제 두려움!
– 마일스톤 애매
• 내가 지금 어디쯤 왔나 몰라 불안
• 잘 하고 있나? 불안
– 로드맵 애매
• 앞으로 남은 일이 정확히 뭔지 몰라 불안
• 담 달부터 마라톤 야근하는 거 아냐?
DUE
35. 듀 데이트의 역설
시험 기간 <O시 내고향>이 왠지 재밌다…
마감 기간되면 하고픈 일들이 마구 생각나…
일부는 매우 생산적인 에너지 + 상상들
듀 데이트 되면 집중해서 코딩도 잘된다?!
듀데이트 임박 때의 창조적 생산성을
계속 끌고 갈 수 없을까?
http://blog.sktworld.co.kr/3308
Divide
And
Conquer
Due 모드
모듈화
그리디
휴리스틱
타임
콤플렉시티
객체
디자인
키워질
36. 타이트한 듀 데이트? 시간 쪼개기 방법!
긴 일정은 쪼개라
핀포인트 스케줄링
그리디 스케줄링
38. Prototype A6 할때…
프로토타입 Z5에서 다 해봤지?
이번엔 모든 걸 모바일로 옮겨 주면 돼.
프로토타입 A6라고 명명하지
기간은 3개월이야.
3개월 만에요?!
근데 3개월은 어떻게 채워야 하나…;;;
Divide
And
Conquer
Due 모드
모듈화
그리디
휴리스틱
타임
콤플렉시티
객체
디자인
키워질
Due 모드가 아니면
생산성이 현저히 떨어진다
40. 이 부분에 대한 작업
A1 – A3
D1 – D3
Z3 – Z5
A4 – A5
랩터빌드
tinyA6
P6
W6
A6
게임 실제로 보이게
모바일 멀티 터치 조작계
시스템 검증
모바일 클라이언트
플레이 검증
MMO 서버와 게임 연동,
캐릭터, UI 조립
Bronto
MMO 서버 프레임워크 구현
모바일 사냥, 동물 AI
식생, 자연, 인공물 표현
물 표현 연구
완전체!!!
B1 – B5
하이엔드 표현 연구
41. A6 / tinyA6로 분리
3개월
• 모바일로 지형, 동물, 사냥 등을 모두 이식해야
• 1 : 1 : 1로 분리
일정 모듈화 - tinyA6 분리
• 동물 사냥 프로토타입만 하나 쪼갬
• 일정 중 3주만 따로 떼어냄
Divide
And
Conquer
Due 모드
모듈화
그리디
휴리스틱
타임
콤플렉시티
객체
디자인
키워질
1주째: 입 기획 및 스펙 구상
2주째: 실제 작업
3주째: 실제 작업
3번째 금요일 : 배포
42. tiny A6 분리
땅 이식
Z5의 지형을 필요한 만큼만 최소 이식
독립적 피쳐
사냥, 공룡 AI는 다른 피처에 독립적
스펙
공방 구현, 무기 구현, 애니메이션 연결, AI 튜닝
텐션 유지
스크럼 + 주당 2회 이터레이션으로
이 터
레 이 션
46. 사냥 재미 검증 후 재빠른 머징
A1 – A3
D1 – D3
Z3 – Z5
A4 – A5
랩터빌드
tinyA6
P6
W6
A6
게임 실제로 보이게
모바일 멀티 터치 조작계
시스템 검증
모바일 클라이언트
플레이 검증
MMO 서버와 게임 연동,
캐릭터, UI 조립
Bronto
MMO 서버 프레임워크 구현
모바일 사냥, 동물 AI
식생, 자연, 인공물 표현
물 표현 연구
완전체!!!
B1 – B5
하이엔드 표현 연구
55. 핀포인트 스케줄링 – 이제 역순으로 작업 계획 수립
1회차 : 동물 랜덤 스폰, 공룡 타기
2회차 : 동물 시선 처리, 도망
3회차 : 배설물, 발자국 추적 시스템 검증
4회차 : 추적 시스템, 동료 표시
5회차 : 매복, 동물 AI(몰이 되게)
6회차 : 몰이, 사냥
7회차 : 촬영, 최적화
주 2회 검증
이 터
레 이 션
56. 일정 저격 성공!
핀포인트 스케줄링 효과
• 배수의 진을 치고
• 거꾸로 생각해보면
• 오늘 뭘 할지 알게 됨
• 도전적인 새로운 작업을
빠르게 프로토타이핑 할 때
* 내부 사정상 공개하기 힘든 장면이라 다른 이미지로 대체하였습니다.
58. 그리디 스케줄링
Greedy 알고리즘
매 순간 가장 먹음직스런(Greedy) 방향으로 진행,
최적해를 구함
최적해를 찾지는 못할 수도
어느 정도 근사해는 구함
타임아웃 발생하면 그 때까지 최선 보장
Divide
And
Conquer
Due 모드
모듈화
그리디
휴리스틱
타임
콤플렉시티
객체
디자인
키워질
59. What? 그리디 스케줄링
타임 아웃
기간을 정해 놓고 타임아웃!
피처 작업 셧다운!
작동 보장
항상 작동하는 상태로 유지
우선순위
스펙들을 우선 순위 별로(중요도/난이도) 나열
스펙 하나 완료시 그리디 하게 “딱 하나” 다음 스펙을 결정
60. 사냥 – 피처가 넘쳐남
• 공방 구현
– 동물 공격 구현
– 동물 피격 구현
– 플레이어 공격 구현
– 플레이어 피격 구현
– 타격감
– PvE 밸런싱
– PvP 밸런싱
• 무기 구현
– 근거리 무기
– 원거리 무기
– 무기 외형 변경
• 애니메이션 연결
– 플레이어 모션 연결
– 동물 모션 연결
– 무기 모션 연결
• AI 튜닝
– EvE AI 튜닝
– PvE AI 튜닝
– 최적화
• …
• …
• …
61. 우선순위 정해서 나열
• 플레이어 모션 연결
• 동물 모션 연결
• 플레이어 공격 구현
• 동물 공격 구현
• 플레이어 피격 구현
• 동물 피격 구현
• PvE 밸런싱
• 무기 외형 변경
• 근거리 무기
• 원거리 무기
• PvE AI 튜닝
• EvE AI 튜닝
• 무기 모션 연결
• 타격감
• 최적화
• PvP 밸런싱
• …
• …
• …
62. 타임 아웃 나면 더 이상 미루지 말고 정지
• 플레이어 모션 연결
• 동물 모션 연결
• 플레이어 공격 구현
• 동물 공격 구현
• 플레이어 피격 구현
• 동물 피격 구현
• PvE 밸런싱
• 무기 외형 변경
• 근거리 무기
• 원거리 무기
• PvE AI 튜닝
• EvE AI 튜닝
• 무기 모션 연결
• 타격감
• 최적화
• PvP 밸런싱
• …
• …
• …
타임오버
꽝
다
음
기
회
에
…
<똑바로 일하라 中> h ttp://elephantcookie.tistory.com/7
64. 타임 콤플렉시티에 대해 얘기해 볼게요
중첩된 루프
본능적 거부감
빠른 CPU조차 바보로
다른 알고리즘?
Divide
And
Conquer
Due 모드
모듈화
그리디
휴리스틱
타임
콤플렉시티
객체
디자인
키워질
65. 일상다반사?
새로운 동물 구현 작업을 맡았다.
일단 최소한 심플하게 AI를 꾸리고 싶다.
포효하는 스테이트 따위 없어도 될 거 같다. 쳐낸다!
기반 코드를 작성한다.
동물 모델과 모션이 나왔다.
모델과 애니메이션을 조립한다.
대리님께 보여준다. 내가 빼버렸던 포효가 아군에게 도움을 요
청하는 동작이고 로드맵 상 전 동물에 추가될 예정 이었다.;;
*실제 상황이 아닌 설명을 위한 픽션입니다.
66. 일상다반사?
애니메이터가 포효 모션을 추가한다.
추가되고 바뀐 모션들을 코드에 적용한다.
대리님이 OK 한다.
팀장님께 보여준다.
기능이 초기 기획 의도에서 벗어났단다. 이빨
로 무는 게 아니라 발톱으로 할퀴어야 한단다.
*실제 상황이 아닌 설명을 위한 픽션입니다.
67. 일상다반사?
발톱 공격을 만들려다 보니 발톱이 너무 작아서 안 보인다.
모델러에게 발톱을 키워달라고 요청한다.
변경된 모델에 따른 자잘한 수정사항을 처리한다.
대리님께 보여준다. 모델 바꾸고 익셉션 처리가 덜 된 것을
한 번에 간파 하신다! 역시 실력 짱짱맨!!!
수정 후 자신 있게 팀장님께 보여준다. OK 싸인이 왔다!
두근두근. 처음으로 디렉터님께 선을 보이는 자리!
근데, 헐... 지금 초식 동물이 시급하댄다.
초식동물로 처음부터 새로 하란다!!!
*실제 상황이 아닌 설명을 위한 픽션입니다.
68. 이 상황을 코드로 표현해봅시다! - 다단계
루프(출시) {
루프(디렉터 OK 사인) {
루프(팀장 OK 사인) {
루프(리더 OK사인) {
루프(실 구현자 구현 완료) {
기반 구현
루프(UI 디자이너 리소스 제작 완료) {
리소스 제작
}
리소스 적용
}
}
}
}
}
프로그래밍을 몰라도
뭔가 잘못됐다는 것은
직감하시겠죠?
69. 문제 파악1 – 비효율적 작업 총량
O(nk)
프로그래머가 가장 꺼리는 모델
더 나은 업무 진행 알고리즘?
비효율적 작업시간
디렉팅 총 횟수 / 실제 구현 횟수 ≒ 0
실제 구현 횟수 = 작업 시간
작업 시간은 많이 드는데 컨펌이 안 난다!
작업 시간 허비는 불 보듯 뻔하다
70. 문제 파악2 – 의도 공유
실제 작업자: 난 몰랐어!
작업에 의도를 몰라서 헛되이
고생하다 리테이크!
작업량
정보량
리더
작업자
71. 문제 파악3 – 재미
누구도 이게 재미가 있을지 모른다
그렇게나 많은 삽질작업을 했는데
재미 검증을 한 번도 못했다
보통 예상한 것보다 더 많이 실패…
72. 재미?
재미는 스펙으로 표시가 안됨
유저의 ‘경험 자체’이기 때문
그래서 재미?
한 번 더 고민해 보는 게 답!?
낮은 품질은 재미를 박탈하는 요소
기본으로 챙겨야 하는 부분
이터레이션(반복 개선)을 높여볼까?
74. 인력을 쪼개라 - TF 구조
끼리끼리
수직 구조 타파!
작업에 관련 있는 사람들 끼리 TF(Task Force) 를 꾸림
독립적 결정권 확보
유연한 인원 변동
관련 여부에 따라 (직급에 상관 없이) 자주 인원이 변경 된다.
Ex> UI : 디렉팅 이슈가 많으면 [디렉터, 프로그래머, UI 디자이너]
텐션 유지
(권장) 스크럼으로 1일 15분 회의를 한다.
(권장) 주 2회 피처 테스트 일정을 잡는다.
Divide
And
Conquer
Due 모드
모듈화
그리디
휴리스틱
타임
콤플렉시티
객체
디자인
키워질
78. TF 구조로 일하는 법 4
텐션 유지
정기적으로 모여서
• 현 상황 공유
• 문제점 공유
• 개선점 공유
SCRUM ( 뒤에 설명)
79. TF 구조로 일하는 법 5
테스트 주도적
( 뒤에 설명)
짧게 자주 테스트
과감하게 확장하고
과감하게 폐기 한다
• 인원이든 스펙이든
https://www.flickr.com/photos/mickaelfonjallaz/
80. TF가 돌아가는 구조를 코드로
루프(로드맵에서 하나씩 꺼냄) {
스펙 회의
우선 순위 선정
일부 로드맵에 추가
TF루프(우선순위 스펙 리스트) {
매일 아침 스크럼 미팅
구현
리소스 작업
피처 테스트
발전 / 폐기 여부 결정
}
디렉터 컨펌 / 재작업 여부 결정
}
남은 스펙(로드맵)으로 끝을 명시
여력이 안 되는 중요 사항들은 로드맵에 다시 추가
할 일 명시, 업무 공유, 소단위 마일스톤
함께 피처 테스트: 개선점, 문제점 들을 공유
디렉팅이 많이 필요할 경우 TF루프 안으로
81. 이러한 TF의 대표적 사례 – 전투 TF
A6 결성 Tiny A6 결성
기본 전투 프레임웍
클라이언트 전투 구현
랩터 빌드
무기 구현
공룡 AI 구현
인원
(상대치)
시기
관련자 및 스펙 크기에 따라 유동적으로 인원 변경
82. 전투 TF
A1 – A3
D1 – D3
Z3 – Z5
A4 – A5
랩터빌드
tinyA6
P6
W6
A6
게임 실제로 보이게
모바일 멀티 터치 조작계
시스템 검증
모바일 클라이언트
플레이 검증
MMO 서버와 게임 연동,
캐릭터, UI 조립
Bronto
MMO 서버 프레임워크 구현
모바일 사냥, 동물 AI
식생, 자연, 인공물 표현
물 표현 연구
완전체!!!
B1 – B5
하이엔드 표현 연구
이 터
레 이 션
83. 또다른 TF의 대표적 스타사례
<진구지사부로 – 이노센트 블랙>
가죽 장화 하나만을 위해 뭉쳐온 오랜 친구
Item TF
84. 아이템 TF
A1 – A3
D1 – D3
Z3 – Z5
A4 – A5
랩터빌드
tinyA6
P6
W6
A6
게임 실제로 보이게
모바일 멀티 터치 조작계
시스템 검증
모바일 클라이언트
플레이 검증
MMO 서버와 게임 연동,
캐릭터, UI 조립
Bronto
MMO 서버 프레임워크 구현
모바일 사냥, 동물 AI
식생, 자연, 인공물 표현
물 표현 연구
완전체!!!
B1 – B5
하이엔드 표현 연구
이 터
레 이 션
85. 아이템 TF
밀도 높은 커뮤니케이션
입 기획을 통한 비전제시
프로그래머와 기획자 간의
멘탈 모델 동기화
3번의 메이져 이터레이션
게릴라 사내 테스트 (1.0)
사내 테스트 (2.0)
Next (3.0)
독창적인 아이템 시스템 구현
장화도 삶아 먹을 수 있는…
86. TF 구조의 효과
독립적 결정권
커뮤니케이션 코스트 최소화
불필요한 재작업률 낮춤
빠른 프로토타이핑 가능
빠르게 이터레이션 횟수 높임
퀄리티 및 재미 업
정보의 공유가 수평적
로드맵을 같이 공유
의도 오류를 최소화
88. 스크럼 진행
• 모두가 출근한 아침 9:30
• TF 별로 진행
• 15분 이내에
• 화이트 보드에 모여 포스트잇!
– 예측 시간 / 실제 소요 시간
– To do / Doing / Done
• 피처 테스트 항목도 1인분 추가
– 테스트 주도형 피처 개발!
89.
90.
91. SCRUM 효과 (1)
기민한 결정
뭘 했고 뭘 할지를 빠르게 파악
할 일이 떠오르면 고민 없이 To Do에 추가
구체적 업무 명시
일 단위 일정 예측, 체크, 반성, 우선순위 설정
구체적으로 일을 구분해서 나누는 습관!
가용할 수 있는 스펙 단위가 산정됨
일 단위가 너무 큰 경우 가시적으로 보이기 때문에 쉽게
업무 분리를 독려 가능
92. SCRUM 효과 (2)
동기 부여 및 부스트 효과
아침의 나태한 시간대에!
커뮤니케이션 코스트 낮춤
누가 뭐 하는지 한 눈에 다 보임
일 시키기 / 떠넘기기 좋은 구조
포스트잇 떼서 붙이면 끝
말보다 확실한 글로 대화
글 커뮤니케이션을 선호 하는 팀원에게도 효과적(!)
93. 몰라주면 곤란한 서로의 의도를 맞추는 방법
의도를 맞추는 방법
- 니 말이 맞아? 내 말이 맞아?
94. 콘텐츠 산업의 고뇌
기획 의도가
작업자 개개인 에서부터
팀 전체, 고객에까지
제대로 전달 되어야 함
들려?안 들려...
106. 바야흐로 랩터 빌드 조립 단계에…
A1 – A3
D1 – D3
Z3 – Z5
A4 – A5
랩터빌드
tinyA6
P6
W6
A6
게임 실제로 보이게
모바일 멀티 터치 조작계
시스템 검증
모바일 클라이언트
플레이 검증
MMO 서버와 게임 연동,
캐릭터, UI 조립
Bronto
MMO 서버 프레임워크 구현
모바일 사냥, 동물 AI
식생, 자연, 인공물 표현
물 표현 연구
완전체!!!
B1 – B5
하이엔드 표현 연구
107. 랩터 빌드 조립 단계
길 고 긴 보릿고개
통합 기간이 너무 길어짐
게다가,
품질이 너무 떨어진다
108. 특단의 조치! 테스트 주도형 피처 개발
현 상태:
• 의도의 혼재
– 작업자 마다 의도가 다름!
– 잘못 돌아가는 게 어딘지 잘 모
르겠다.
• 정상적인 테스트가 안 된다.
– 작업자 PC에서만 정상 작동?
• 어디까지 작동 하는지 범위도 불명확
109. 특단의 조치! 테스트 주도형 피처 개발
조치:
• 주 2회 전체 피쳐 테스트
– 실제 테스트로 눈 앞에 보여라
– 그 전엔 작업을 해도 한 게 아님!
• 전 개발자 의도 전달 명확히
– 테스트 시트가 바로 의도
– 무엇 무엇이 돼야 하냐
• 프로그래밍 뿐만 아니라
기획 단계에서도 테스트 작성 병행
110. 실제 테스트 풍경(주2회)
테스트 주제를 정하고
주제에 관련된 내기 이벤트도 진행
관심도 + 참여도 높임
이 터
레 이 션
• 더 이상 프로그래머 자리에서만 돌아가는 피처는 노노!
• 항상 작동하는 클라/서버를 확보
• 게임의 허점들이 가시화! 품질 업 가속화