2. Halo : Combat Evolved
개발 : Bungie Studio
발매 : 2001년
XBOX 킬러 타이틀
벌써 10년도 넘었네?
3. Anniversary?
• 때는 2011년
• HALO : CE 10주년을 맞이하여 기념판 제작
• 10년 사이에 많은 변화가 있었다
• 콘솔 : XBOX 360도 끝물 소리 나옴
• 제작 : Bungie 스튜디오에서 343 Industries로
• 뭔가 보여줘야 할 때
4. 클래식 팬들이 좋아할 만한 것을 넣자!
플레이 도중에 Back 버튼을 누르면 10년 전 그래픽으로 돌아간다
이런 식 http://www.youtube.com/watch?v=6gXw-KP6-Ck
5. 그게 가능 하려면?
• 싱글 게임 엔진
• Original Halo Engine (Bungie) + Saber 3D (343 + Saber)
• 멀티플레이 게임 엔진
• Halo Reach Engine
6. 그래서 개발사가 세 군데
• 싱글 플레이
• 343 industries + Saber Interactive
• 그 중에서 Saber 회사가 무엇을 했는지 살펴봅시다
7. 개발 인원(Saber Interactive)
엔딩 Credit에 등장한 사람들만
•
Senior TCR / Build Programmer - 1
•
Senior Level Modeler - 3
•
Lead Texture Artist - 1
•
Executive Producer - 1
•
Senior UI Programmer - 1
•
Level Modeler - 5
•
Senior Texture Artist - 2
•
Associate Producer - 4
•
Additional UI Scripting - 1
•
Additional Level Modeling - 4
•
Texture Artist - 4
•
Programming Director - 1
•
Lead Lighting Artist - 1
•
Lead Project Programmer - 1
•
Lead Network Programmer - 1
•
Senior Asset Designer / Modeler - 1
•
Lighting Artist - 3
•
Lead Physics Programmer - 1
•
Senior Network Programmer - 1
•
Character Modeler - 2
•
Game Integration Lead - 1
•
Asset Modeling - 1
•
Lead UI Artist - 1
•
Game Integration Programmer - 3
•
UI Artist - 1
•
Sound Engineer - 2
•
QA Director - 1
•
Lead Technology & Tools Programmer - 1
•
Tools Programmer - 3
Lead Engine Programmer - 1
•
Senior Engine and Sound Programmer - 1
•
Art Director - 1
•
Senior Engine Programmer - 1
•
Lead Animation Programmer - 1
•
Outsource Manager - 1
Senior Technical Artist - 3
•
Technical Artist - 1
Lead Leel Modeler - 1
•
Technical Art Director - 1
•
•
•
•
Lead Concep Artist - 1
•
Senior Rendering Programmer - 2
•
Rendering Programmer - 3
•
Concep Artist - 3
QA Projct lead - 1
Senior Cinematic Animator - 1
•
QA Expert - 2
•
Animator - 3
•
Additional Testing - 7
•
Lead SFX Artist - 1
•
Motion Capture - 5
SFX Artist - 2
•
기타 등등 엄청 많음 되게 많음
Senior Concept Artist - 2
•
•
•
Lead Rendering Programmer - 1
Lead Animator - 1
•
•
•
•
UI / TCR Lead Programmer - 1
•
Senior Level Modeler / Designer - 1
8. Saber Interactive
• 343 Industries에서 섭외가 들어왔을 때, Saber는 마침 대형 프랜
차이즈 게임에서 일하고 싶어했음
• 헤일로 정도면 뭐…
• 그리고 343 Industries가 원한 것은 HD 리마스터 수준이 아니라
“진정한 리메이크” 였다…
9. 343 industries → Saber Interactive
• 오리지널 게임 플레이는 전혀 건드리지 않는 대신 모든 시각적
요소를 차세대 트리플 A급 게임에 맞게 업그레이드 하고 필요하
면 몇 가지 사항을 더 추가하길 원했다.
• 그 결과가 XBOX LIVE co-op, Kinect support, Skulls and Terminals 등
• “클래식” 게임과 “리마스터” 게임이 실시간으로 전환되는 기능
10. “이걸 1년 안에 하라는 건 미친 소리 같았다”
• 시각적인 부분에서는 그야말로 모든 것을 새로 만들었다
• 지형, 텍스처, 조명, 캐릭터, 무기, 탈것, 특수효과, 시네마틱, UI 등
• 음악도 새로 작업했다
• 오케스트라를 불러서 BGM을 다시 녹음
• 성우들이 녹음한 부분은 그대로 두었다
11. 많은 제약과 한계
• 예를 들어 in-game 애니메이션
• Keyframe으로 만들어진 오래된 애니메이션
• 최신 모션 캡쳐 애니메이션으로 바꾸는 것이 너무 위험했다
• AI부터 시작해서 어마어마한 버그를 만들어내기 시작
• 그래서 그냥 뒀습니다
12. 잘 된 것들
Overall engine solution
Online co-op solution
Visual targeting / art direction
Successful vertical slice
Listening to the early community feedback
13. Overall engine solution
• 두 가지 목표가 있었다
• 오리지널 게임플레이는 그대로 둔다
• 동시에 아티스트와 디자이너들이 트리플 A 비주얼을 달성할 수 있도록
• 첫 아이디어
• 헤일로 1 의 engine을 그냥 쓰자!
• AI, 애니메이션, 매커니즘, 무기, 탈것, 그 외 모든 컴포넌트를 그냥 쓸 수
있다!
• 게다가 아티스트들에게 이미 익숙한 툴을 줄 수 있다!
• 우리는 옛 엔진이 AAA 비주얼을 제공할 수 있다고 믿었다.
14. Overall engine solution
• FAIL
• 두 번째 아이디어는
•
•
•
•
•
오리지널 게임을 최대한 활용하자
PC 버전을 Xbox360으로 포팅하면 되지 않을까?
그리고 렌더링된 feature를 하나하나씩 추가하면 되잖아?
다중 그림자-맵, 광원, 표면, 텍스처, 파티클 등등등…
하지만 아티스트들을 훈련시키는 데 너무 오랜 시간이 걸린다
• 지난 몇 년간 업그레이드한 모든 플러그인에 숙달시켜야 했다
15. Overall engine solution
• 이것도 FAIL
• “1963년형 캐딜락 엔진을 아우디 A7에 집어넣는 거나 마찬가지”
• 둘 다 멋지지만 끔찍하게 호환이 안 된다
• 오리지널 HALO : CE와 Saber의 렌더링 엔진을 합치려고 할 때의 느낌
16. Overall engine solution
• 해결책은?
•
•
•
•
“우리 물리엔진 인터페이스가 Havok이랑 닮은 거 같은데요?”
위치, 속도, 충돌 등은 인터페이스 레이어에서 Havok에게 시킨다
게임 내 존재하는 모든 것을 Proxy object로 만들어서 시뮬레이션
아랫단은 오리지날 헤일로 엔진에 맡긴다
• 우리가 할 일은?
• 밑바닥에 있는 게임 로직은 손대지 않는다
• Havok이 계산한 결과를 받아서 적절한 시각화만 해 주면 해결!
• 이 기반 플랫폼을 만드는 데 1~2 개월이 꼬박 걸림
17. Online co-op solution
• 오리지날에서는 화면 분할 Co-op밖에 존재하지 않았다
• 어쨌거나 싱글 플레이에 복수의 유저가 존재하는 경우가 계산되
어 있는 것!
• 하지만 네트워크를 통해서 동기화 하려니 Hell
18. Online co-op solution
• 각자의 게임 월드가 동기화가 안 되네?
• 게임 전체 상태를 동기화 시키려니 너무 위험한 일이 많았다
• 시간도 어마어마하게 잡아먹는 작업
• 343 industries에서 파견된 테크니컬 리드가 Bungie 기술을 바탕
으로 „우아한‟ 접근법을 알려줌
• 오리지널 HALO : CE 엔진은 같은 입력에 같은 결과를 만드는 결정론적
솔루션
• 초기 조건만 동기화 시켜주면 이후에 입력만 동기화 시키면 결과는 저절
로 같아질 것이다!
19. Online co-op solution
• 근데 안되잖아
• 엄청난 삽질 끝에 PC 버전으로 포팅된 HALO : CE의 몇몇 기능
이 문제라는 사실을 알아냄
•
•
•
•
오리지널 Bungie 판에서는 문제가 없었음
40개가 넘는 소스 파일들을 실험해 보면서 알아냄
마침내 해결
이 문제 때문에 프레임 단위, 비트 단위로 게임 상태를 녹화하는 툴까지
만들었음
20. Visual targeting / art direction
• MS의 Ben Cammarano가 퍼블리셔 측의 아트 디렉터로 참가
• Saber의 lead artist와 긴밀하게 연락하면서 전체 아트 기획의 방
향을 잡아줌
• 4가지 디자인 가이드 : 영웅적인 전경, 상징적인 이미지와 캐릭터, 깨끗
하고 활기찬 미적 요소, 내적인 행동
21. Visual targeting / art direction
• 초반에 합의한 가이드가 작업 내내 기준점이 됨
• 오리지널 게임의 주요 맵들, 장면을 모두 스크린샷으로 만들어
개선한 모습으로 바꿔보고 토론하고 수정하기를 반복
• 구현 불가능한 상상력이나 영감을 통제하고 창조성을 집중
• 이 방법이 꽤 괜찮아서 이후로 Saber Interactive는 이 방법으로 그래픽
작업을 한다고…
22. Successful vertical slice
• 개발방법론 이야기
• 케이크를 통째로 굽는 게 아니라 조각케이크를 굽는 것
• 예컨대 특정 지역에서 하늘의 그래픽을 정할 때
• 기존 그래픽에 영감을 불어넣어 천체의 위치를 바꾸고 색상도 바
꿔 제작
• 최종적으로 프랜차이즈 팀에서 거부함
• 오리지널 게임에 손대지 말랬지?
• 해당 레벨 수정
• 클래식에 일치시킴
23. Listening to the early community feedback
• 게임 트레일러가 공개되자마자 팬들의 뜨거운 관심
• 그 중에서는 꼭 새겨들어야 할 피드백도 가득했음
• 대표적으로 버그 픽스 Bug Fix
24. Listening to the early community feedback
• 예를 들어 1인칭 시점에서 3인칭 어썰트 라이플 모델을 들고 있
다거나
• 매우 비슷하게 생겨서 제작진도 눈치 채지 못했음
• 그리고 Halo Reach의 어썰트 라이플 모델을 썼더니 팬들이
Anniversary에 어울리지 않는다고 불만
• HALO 3 모델을 기반으로 재구현
25. 잘 안 된 것들
Collision issues
Secret area
Streaming issues
Lighting solution
Cinematics
26. Collision issue
• 별 거 아니라고 생각했는데 정말 끔찍한 문제
• 프로젝트 막판에 엄청난 두통을 안겨주었다
• 전통적인 게임 개발에서는 그리 큰 문제가 아니라서 별로 신경
쓰지 않았다
27. Collision issue
• 하지만 전체 게임 시뮬레이션을 오리지널 HALO에서 담당하고
있어서 새로 추가된 고해상도 mesh와 충돌 체크가 일치하지 않
는 문제가 발생
• 캐릭터나 무기가 땅 속으로 꺼지거나 허공에 둥둥 떠있거나 투명한 벽에
걸리거나 총을 쐈는데 안 맞거나 벽을 관통해서 총에 맞거나 벽 너머가
보이거나……
28. Collision issue
• QA 팀에서 충돌 관련만 천 개가 넘는 버그를 보내옴
• 그래픽을 오리지널 충돌 체크에 맞게 바꿔 봄
• 당연히 저해상도로 뭉개지면서 엉망이 되었다
• 해결하자니 엄청난 시간이 걸리고 이걸 해결 못하면 출시도 못 함
• 처음엔 추가적인 충돌체크 지형을 만들어서 끼워 넣으려 했음
• But 343에서 오리지널 게임 플레이에 손 대는 것에 제동을 걸었음
29. Collision issue
• 옛 지형과 새 지형을 OR 시켜서 높은 쪽에 충돌 판정을 준다
• 무기가 더 이상 땅 속으로 가라앉지 않는다!
• 근데 이제는 허공에 떠있네
• 리마스터 지형을 최대한 원형에 가깝게 만들어야 했다
• 그랬더니 돌.. 이라기에는 너무 동글동글한 녀석이 나옴
• 야 이거 어쩌지?
• 그냥 바위 말고 둥그런 선조 유물로 만들면 안되나요?
• 천잰데?
30. Secret areas
• 오리지널에서 접근하기 어려운 지형을 리마스터 판에서 어떻게
구현할 것인가?
• 전체 레벨이 보이거나 하는 지역에 유저가 올라가면 퍼포먼스도
떨어지고 그렇다고 텍스처나 mesh도 함부로 못 바꾼다.
• 전통적인 해법 : 못 들어가게 만든다
• 그런데 오리지날 HALO : CE 에서는 들어갈 수 있었네
• 343 : 알지?
• 모델링 기술이 너무 상이해서 이 지역에 대해서는 손을 대지 않
기로 함. 결과적으로 별로 보기 좋지 않은 지역이 되어버림
31. Streaming issues
• 게임 자원을 스트리밍으로 불러오는 기술을 엔진에 적용
• 텍스처, 음악 등등
• 하지만 프로젝트 전체 상태에 매우 의존적인 기술이라 마지막에
가서야 겨우 구현되었음
• 성능과 품질을 측정하기도 쉽지 않았고 무엇보다 특수한 경우에 문제가
두드러졌음
32. Streaming issues
• 시네마틱이나 대규모 로딩이 필요할 때 5~7초 끊기는 현상
• 5초 정도 검은 화면을 로딩 대신 보여주는 해결책을 생각했으나
• 심지어 25초짜리 렉도 있었다…
• 통일된 해법이 없어서 버그를 하나하나, Case by Case로 다 잡
았다
33. Lighting solution
• Ambient light에 문제가 있어서 외부 환경 조명과 내부 조명이 조
화롭지 못했음
• 광원 개선에 대한 담당자의 요구가 있었으나 충분한 시간이 없었
음
• 어찌어찌 다 만들어가고 있었는데…
34. Lighting solution
• 프로젝트가 중반쯤 왔을 때 (E3에서 레벨 하나를 공개했을
때)rendering lead가 반드시 광원을 개선해야 한다고 주장해서 여
러 개의 지역 광원을 이용해 글로벌 일루미네이션을 시뮬레이션
하면서 광원 문제를 찾아냄
• 건물 내/외부 문제를 해결한 툴이 완성됐을 때는 이미 프로젝트
후반부라 광원 담당자들을 막판에 고생시킴
35. Cinematics
• 게임 내 애니메이션과 성우는 놔두고 Cinematics만 모션 캡쳐로
바꿨는데 힘든 일이었음
• 배우들이 옛날 애니메이션에 맞춰 타이밍과 동작까지 완벽 재현
해야 했다
• 성우를 그대로 둬야 했으므로 얼굴 애니메이션에서는 음성에 맞
춰 립싱크까지
36. Cinematics
• 여기에 Streaming issue, animation bug, audio syncing glitches 등등
버그가 300개가 넘게 터짐
• 그리고 너무 잘 하려다 보니 문제가 생기기도.. 코타나는 너무 감정이
들어가서 “인공지능처럼 안 보였”기 때문에 (그리고 이 사실은 프로젝
트 막판에 드러났기 때문에 다시 모션 캡쳐를 할 수도 없었다) 애니메
이터가 구식 키 프레임 애니메이션과 합치는 작업을 해서 애니메이션
퀄리티를 떨어뜨려야 했다.
37. 결과
• 리메이크 게임으로는 드물게 Best of E3 에 노미네이트
• 내부적으로 만든 목표를 달성하는데 성공
• 짧은 기간이었지만 아주 순조롭게 일정을 진행함
• Saber Interactive는 이 프로젝트를 해 낸 것을 자랑스럽게 생각
하고 있음