SlideShare ist ein Scribd-Unternehmen logo
1 von 37
HALO : Combat Evolved
Anniversary
Halo : Combat Evolved
개발 : Bungie Studio
발매 : 2001년

XBOX 킬러 타이틀
벌써 10년도 넘었네?
Anniversary?
• 때는 2011년
• HALO : CE 10주년을 맞이하여 기념판 제작
• 10년 사이에 많은 변화가 있었다
• 콘솔 : XBOX 360도 끝물 소리 나옴
• 제작 : Bungie 스튜디오에서 343 Industries로
• 뭔가 보여줘야 할 때
클래식 팬들이 좋아할 만한 것을 넣자!

플레이 도중에 Back 버튼을 누르면 10년 전 그래픽으로 돌아간다
이런 식 http://www.youtube.com/watch?v=6gXw-KP6-Ck
그게 가능 하려면?
• 싱글 게임 엔진
• Original Halo Engine (Bungie) + Saber 3D (343 + Saber)

• 멀티플레이 게임 엔진
• Halo Reach Engine
그래서 개발사가 세 군데
• 싱글 플레이
• 343 industries + Saber Interactive

• 그 중에서 Saber 회사가 무엇을 했는지 살펴봅시다
개발 인원(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
Saber Interactive
• 343 Industries에서 섭외가 들어왔을 때, Saber는 마침 대형 프랜
차이즈 게임에서 일하고 싶어했음
• 헤일로 정도면 뭐…

• 그리고 343 Industries가 원한 것은 HD 리마스터 수준이 아니라
“진정한 리메이크” 였다…
343 industries → Saber Interactive
• 오리지널 게임 플레이는 전혀 건드리지 않는 대신 모든 시각적
요소를 차세대 트리플 A급 게임에 맞게 업그레이드 하고 필요하
면 몇 가지 사항을 더 추가하길 원했다.
• 그 결과가 XBOX LIVE co-op, Kinect support, Skulls and Terminals 등

• “클래식” 게임과 “리마스터” 게임이 실시간으로 전환되는 기능
“이걸 1년 안에 하라는 건 미친 소리 같았다”
• 시각적인 부분에서는 그야말로 모든 것을 새로 만들었다
• 지형, 텍스처, 조명, 캐릭터, 무기, 탈것, 특수효과, 시네마틱, UI 등

• 음악도 새로 작업했다
• 오케스트라를 불러서 BGM을 다시 녹음
• 성우들이 녹음한 부분은 그대로 두었다
많은 제약과 한계
• 예를 들어 in-game 애니메이션
• Keyframe으로 만들어진 오래된 애니메이션
• 최신 모션 캡쳐 애니메이션으로 바꾸는 것이 너무 위험했다
• AI부터 시작해서 어마어마한 버그를 만들어내기 시작

• 그래서 그냥 뒀습니다 
잘 된 것들
Overall engine solution
Online co-op solution
Visual targeting / art direction

Successful vertical slice
Listening to the early community feedback
Overall engine solution
• 두 가지 목표가 있었다
• 오리지널 게임플레이는 그대로 둔다
• 동시에 아티스트와 디자이너들이 트리플 A 비주얼을 달성할 수 있도록

• 첫 아이디어
• 헤일로 1 의 engine을 그냥 쓰자!
• AI, 애니메이션, 매커니즘, 무기, 탈것, 그 외 모든 컴포넌트를 그냥 쓸 수
있다!
• 게다가 아티스트들에게 이미 익숙한 툴을 줄 수 있다!
• 우리는 옛 엔진이 AAA 비주얼을 제공할 수 있다고 믿었다.
Overall engine solution
• FAIL

• 두 번째 아이디어는
•
•
•
•
•

오리지널 게임을 최대한 활용하자
PC 버전을 Xbox360으로 포팅하면 되지 않을까?
그리고 렌더링된 feature를 하나하나씩 추가하면 되잖아?
다중 그림자-맵, 광원, 표면, 텍스처, 파티클 등등등…
하지만 아티스트들을 훈련시키는 데 너무 오랜 시간이 걸린다
• 지난 몇 년간 업그레이드한 모든 플러그인에 숙달시켜야 했다
Overall engine solution
• 이것도 FAIL

• “1963년형 캐딜락 엔진을 아우디 A7에 집어넣는 거나 마찬가지”
• 둘 다 멋지지만 끔찍하게 호환이 안 된다
• 오리지널 HALO : CE와 Saber의 렌더링 엔진을 합치려고 할 때의 느낌
Overall engine solution
• 해결책은?
•
•
•
•

“우리 물리엔진 인터페이스가 Havok이랑 닮은 거 같은데요?”
위치, 속도, 충돌 등은 인터페이스 레이어에서 Havok에게 시킨다
게임 내 존재하는 모든 것을 Proxy object로 만들어서 시뮬레이션
아랫단은 오리지날 헤일로 엔진에 맡긴다

• 우리가 할 일은?
• 밑바닥에 있는 게임 로직은 손대지 않는다
• Havok이 계산한 결과를 받아서 적절한 시각화만 해 주면 해결!
• 이 기반 플랫폼을 만드는 데 1~2 개월이 꼬박 걸림
Online co-op solution
• 오리지날에서는 화면 분할 Co-op밖에 존재하지 않았다
• 어쨌거나 싱글 플레이에 복수의 유저가 존재하는 경우가 계산되
어 있는 것!
• 하지만 네트워크를 통해서 동기화 하려니 Hell
Online co-op solution
• 각자의 게임 월드가 동기화가 안 되네?
• 게임 전체 상태를 동기화 시키려니 너무 위험한 일이 많았다
• 시간도 어마어마하게 잡아먹는 작업

• 343 industries에서 파견된 테크니컬 리드가 Bungie 기술을 바탕
으로 „우아한‟ 접근법을 알려줌
• 오리지널 HALO : CE 엔진은 같은 입력에 같은 결과를 만드는 결정론적
솔루션
• 초기 조건만 동기화 시켜주면 이후에 입력만 동기화 시키면 결과는 저절
로 같아질 것이다!
Online co-op solution
• 근데 안되잖아
• 엄청난 삽질 끝에 PC 버전으로 포팅된 HALO : CE의 몇몇 기능
이 문제라는 사실을 알아냄
•
•
•
•

오리지널 Bungie 판에서는 문제가 없었음
40개가 넘는 소스 파일들을 실험해 보면서 알아냄
마침내 해결
이 문제 때문에 프레임 단위, 비트 단위로 게임 상태를 녹화하는 툴까지
만들었음
Visual targeting / art direction
• MS의 Ben Cammarano가 퍼블리셔 측의 아트 디렉터로 참가
• Saber의 lead artist와 긴밀하게 연락하면서 전체 아트 기획의 방
향을 잡아줌
• 4가지 디자인 가이드 : 영웅적인 전경, 상징적인 이미지와 캐릭터, 깨끗
하고 활기찬 미적 요소, 내적인 행동
Visual targeting / art direction
• 초반에 합의한 가이드가 작업 내내 기준점이 됨
• 오리지널 게임의 주요 맵들, 장면을 모두 스크린샷으로 만들어
개선한 모습으로 바꿔보고 토론하고 수정하기를 반복
• 구현 불가능한 상상력이나 영감을 통제하고 창조성을 집중
• 이 방법이 꽤 괜찮아서 이후로 Saber Interactive는 이 방법으로 그래픽
작업을 한다고…
Successful vertical slice
• 개발방법론 이야기
• 케이크를 통째로 굽는 게 아니라 조각케이크를 굽는 것

• 예컨대 특정 지역에서 하늘의 그래픽을 정할 때
• 기존 그래픽에 영감을 불어넣어 천체의 위치를 바꾸고 색상도 바
꿔 제작
• 최종적으로 프랜차이즈 팀에서 거부함
• 오리지널 게임에 손대지 말랬지?

• 해당 레벨 수정
• 클래식에 일치시킴
Listening to the early community feedback
• 게임 트레일러가 공개되자마자 팬들의 뜨거운 관심
• 그 중에서는 꼭 새겨들어야 할 피드백도 가득했음
• 대표적으로 버그 픽스 Bug Fix
Listening to the early community feedback
• 예를 들어 1인칭 시점에서 3인칭 어썰트 라이플 모델을 들고 있
다거나
• 매우 비슷하게 생겨서 제작진도 눈치 채지 못했음

• 그리고 Halo Reach의 어썰트 라이플 모델을 썼더니 팬들이
Anniversary에 어울리지 않는다고 불만
• HALO 3 모델을 기반으로 재구현
잘 안 된 것들
Collision issues
Secret area
Streaming issues

Lighting solution
Cinematics
Collision issue
• 별 거 아니라고 생각했는데 정말 끔찍한 문제
• 프로젝트 막판에 엄청난 두통을 안겨주었다
• 전통적인 게임 개발에서는 그리 큰 문제가 아니라서 별로 신경
쓰지 않았다
Collision issue
• 하지만 전체 게임 시뮬레이션을 오리지널 HALO에서 담당하고
있어서 새로 추가된 고해상도 mesh와 충돌 체크가 일치하지 않
는 문제가 발생
• 캐릭터나 무기가 땅 속으로 꺼지거나 허공에 둥둥 떠있거나 투명한 벽에

걸리거나 총을 쐈는데 안 맞거나 벽을 관통해서 총에 맞거나 벽 너머가
보이거나……
Collision issue
• QA 팀에서 충돌 관련만 천 개가 넘는 버그를 보내옴

• 그래픽을 오리지널 충돌 체크에 맞게 바꿔 봄
• 당연히 저해상도로 뭉개지면서 엉망이 되었다
• 해결하자니 엄청난 시간이 걸리고 이걸 해결 못하면 출시도 못 함

• 처음엔 추가적인 충돌체크 지형을 만들어서 끼워 넣으려 했음
• But 343에서 오리지널 게임 플레이에 손 대는 것에 제동을 걸었음
Collision issue
• 옛 지형과 새 지형을 OR 시켜서 높은 쪽에 충돌 판정을 준다
• 무기가 더 이상 땅 속으로 가라앉지 않는다!
• 근데 이제는 허공에 떠있네
• 리마스터 지형을 최대한 원형에 가깝게 만들어야 했다
• 그랬더니 돌.. 이라기에는 너무 동글동글한 녀석이 나옴
• 야 이거 어쩌지?
• 그냥 바위 말고 둥그런 선조 유물로 만들면 안되나요?
• 천잰데?
Secret areas
• 오리지널에서 접근하기 어려운 지형을 리마스터 판에서 어떻게
구현할 것인가?
• 전체 레벨이 보이거나 하는 지역에 유저가 올라가면 퍼포먼스도
떨어지고 그렇다고 텍스처나 mesh도 함부로 못 바꾼다.
• 전통적인 해법 : 못 들어가게 만든다
• 그런데 오리지날 HALO : CE 에서는 들어갈 수 있었네
• 343 : 알지?

• 모델링 기술이 너무 상이해서 이 지역에 대해서는 손을 대지 않
기로 함. 결과적으로 별로 보기 좋지 않은 지역이 되어버림
Streaming issues
• 게임 자원을 스트리밍으로 불러오는 기술을 엔진에 적용
• 텍스처, 음악 등등
• 하지만 프로젝트 전체 상태에 매우 의존적인 기술이라 마지막에
가서야 겨우 구현되었음
• 성능과 품질을 측정하기도 쉽지 않았고 무엇보다 특수한 경우에 문제가
두드러졌음
Streaming issues
• 시네마틱이나 대규모 로딩이 필요할 때 5~7초 끊기는 현상
• 5초 정도 검은 화면을 로딩 대신 보여주는 해결책을 생각했으나
• 심지어 25초짜리 렉도 있었다…
• 통일된 해법이 없어서 버그를 하나하나, Case by Case로 다 잡
았다
Lighting solution
• Ambient light에 문제가 있어서 외부 환경 조명과 내부 조명이 조
화롭지 못했음
• 광원 개선에 대한 담당자의 요구가 있었으나 충분한 시간이 없었
음
• 어찌어찌 다 만들어가고 있었는데…
Lighting solution
• 프로젝트가 중반쯤 왔을 때 (E3에서 레벨 하나를 공개했을
때)rendering lead가 반드시 광원을 개선해야 한다고 주장해서 여
러 개의 지역 광원을 이용해 글로벌 일루미네이션을 시뮬레이션
하면서 광원 문제를 찾아냄

• 건물 내/외부 문제를 해결한 툴이 완성됐을 때는 이미 프로젝트
후반부라 광원 담당자들을 막판에 고생시킴
Cinematics
• 게임 내 애니메이션과 성우는 놔두고 Cinematics만 모션 캡쳐로
바꿨는데 힘든 일이었음
• 배우들이 옛날 애니메이션에 맞춰 타이밍과 동작까지 완벽 재현
해야 했다
• 성우를 그대로 둬야 했으므로 얼굴 애니메이션에서는 음성에 맞
춰 립싱크까지
Cinematics
• 여기에 Streaming issue, animation bug, audio syncing glitches 등등
버그가 300개가 넘게 터짐
• 그리고 너무 잘 하려다 보니 문제가 생기기도.. 코타나는 너무 감정이
들어가서 “인공지능처럼 안 보였”기 때문에 (그리고 이 사실은 프로젝

트 막판에 드러났기 때문에 다시 모션 캡쳐를 할 수도 없었다) 애니메
이터가 구식 키 프레임 애니메이션과 합치는 작업을 해서 애니메이션
퀄리티를 떨어뜨려야 했다.
결과
• 리메이크 게임으로는 드물게 Best of E3 에 노미네이트
• 내부적으로 만든 목표를 달성하는데 성공
• 짧은 기간이었지만 아주 순조롭게 일정을 진행함
• Saber Interactive는 이 프로젝트를 해 낸 것을 자랑스럽게 생각
하고 있음

Weitere ähnliche Inhalte

Ähnlich wie Halo ce anniversary Postmortem

[GAMENEXT] 10년을 혈십자와 보내고.. (별바람 스튜디오)
[GAMENEXT] 10년을 혈십자와 보내고.. (별바람 스튜디오)[GAMENEXT] 10년을 혈십자와 보내고.. (별바람 스튜디오)
[GAMENEXT] 10년을 혈십자와 보내고.. (별바람 스튜디오)GAMENEXT Works
 
Age Of Empires II : Age Of Kings Postmotem
Age Of Empires II : Age Of Kings PostmotemAge Of Empires II : Age Of Kings Postmotem
Age Of Empires II : Age Of Kings PostmotemNam Hyeonuk
 
[GDC] Perry_POCBasedDesign_KOR
[GDC] Perry_POCBasedDesign_KOR[GDC] Perry_POCBasedDesign_KOR
[GDC] Perry_POCBasedDesign_KORJisang Yoon
 
게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법Chris Ohk
 
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템강 민우
 
[NHN NEXT 게임 제작 개론] Mark of the Ninja Postmortem
[NHN NEXT 게임 제작 개론] Mark of the Ninja Postmortem[NHN NEXT 게임 제작 개론] Mark of the Ninja Postmortem
[NHN NEXT 게임 제작 개론] Mark of the Ninja PostmortemMin-soo Park
 
Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?
Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?
Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?KwangSam Kim
 
[NDC17] Protocol:hyperspace Diver 개발 포스트모템
[NDC17] Protocol:hyperspace Diver 개발 포스트모템[NDC17] Protocol:hyperspace Diver 개발 포스트모템
[NDC17] Protocol:hyperspace Diver 개발 포스트모템Young Soo Kim
 
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들MinGeun Park
 
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법ChangHyun Won
 
에어헌터 for kakao 포스트모템(공개용)
에어헌터 for kakao 포스트모템(공개용)에어헌터 for kakao 포스트모템(공개용)
에어헌터 for kakao 포스트모템(공개용)Woo Yeong Choi
 
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템Young Soo Kim
 
[2012 대학특강] 아티스트 + 프로그래머
[2012 대학특강] 아티스트 + 프로그래머[2012 대학특강] 아티스트 + 프로그래머
[2012 대학특강] 아티스트 + 프로그래머포프 김
 
만능 개발자를 위한 아틀리에 시스템
만능 개발자를 위한 아틀리에 시스템만능 개발자를 위한 아틀리에 시스템
만능 개발자를 위한 아틀리에 시스템KwangSam Kim
 
Playground 소개
Playground 소개Playground 소개
Playground 소개승우 백
 

Ähnlich wie Halo ce anniversary Postmortem (20)

[GAMENEXT] 10년을 혈십자와 보내고.. (별바람 스튜디오)
[GAMENEXT] 10년을 혈십자와 보내고.. (별바람 스튜디오)[GAMENEXT] 10년을 혈십자와 보내고.. (별바람 스튜디오)
[GAMENEXT] 10년을 혈십자와 보내고.. (별바람 스튜디오)
 
Age Of Empires II : Age Of Kings Postmotem
Age Of Empires II : Age Of Kings PostmotemAge Of Empires II : Age Of Kings Postmotem
Age Of Empires II : Age Of Kings Postmotem
 
[GDC] Perry_POCBasedDesign_KOR
[GDC] Perry_POCBasedDesign_KOR[GDC] Perry_POCBasedDesign_KOR
[GDC] Perry_POCBasedDesign_KOR
 
Tonicscape
TonicscapeTonicscape
Tonicscape
 
게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법
 
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
 
[NHN NEXT 게임 제작 개론] Mark of the Ninja Postmortem
[NHN NEXT 게임 제작 개론] Mark of the Ninja Postmortem[NHN NEXT 게임 제작 개론] Mark of the Ninja Postmortem
[NHN NEXT 게임 제작 개론] Mark of the Ninja Postmortem
 
Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?
Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?
Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?
 
[NDC17] Protocol:hyperspace Diver 개발 포스트모템
[NDC17] Protocol:hyperspace Diver 개발 포스트모템[NDC17] Protocol:hyperspace Diver 개발 포스트모템
[NDC17] Protocol:hyperspace Diver 개발 포스트모템
 
[PandoraCube] '게임메이커'에 대해 알아보자
[PandoraCube] '게임메이커'에 대해 알아보자[PandoraCube] '게임메이커'에 대해 알아보자
[PandoraCube] '게임메이커'에 대해 알아보자
 
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
 
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
 
에어헌터 for kakao 포스트모템(공개용)
에어헌터 for kakao 포스트모템(공개용)에어헌터 for kakao 포스트모템(공개용)
에어헌터 for kakao 포스트모템(공개용)
 
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
 
[2012 대학특강] 아티스트 + 프로그래머
[2012 대학특강] 아티스트 + 프로그래머[2012 대학특강] 아티스트 + 프로그래머
[2012 대학특강] 아티스트 + 프로그래머
 
만능 개발자를 위한 아틀리에 시스템
만능 개발자를 위한 아틀리에 시스템만능 개발자를 위한 아틀리에 시스템
만능 개발자를 위한 아틀리에 시스템
 
Game engine 2011
Game engine 2011Game engine 2011
Game engine 2011
 
Wecanmakeengine
WecanmakeengineWecanmakeengine
Wecanmakeengine
 
Playground 소개
Playground 소개Playground 소개
Playground 소개
 
엔지니어링 비젼_동영상제거.pptx
엔지니어링 비젼_동영상제거.pptx엔지니어링 비젼_동영상제거.pptx
엔지니어링 비젼_동영상제거.pptx
 

Mehr von 진상 문

Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2진상 문
 
[C++ beginner] sizeof()
[C++ beginner] sizeof()[C++ beginner] sizeof()
[C++ beginner] sizeof()진상 문
 
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1진상 문
 
Pervasive computing
Pervasive computingPervasive computing
Pervasive computing진상 문
 
ABI란 무엇인가요?
ABI란 무엇인가요?ABI란 무엇인가요?
ABI란 무엇인가요?진상 문
 
Dll 파일 호출의 2가지 방법
Dll 파일 호출의 2가지 방법Dll 파일 호출의 2가지 방법
Dll 파일 호출의 2가지 방법진상 문
 
C# 뉴비를 위한 맛보기 2
C# 뉴비를 위한 맛보기 2C# 뉴비를 위한 맛보기 2
C# 뉴비를 위한 맛보기 2진상 문
 
C# 뉴비를 위한 맛보기
C# 뉴비를 위한 맛보기C# 뉴비를 위한 맛보기
C# 뉴비를 위한 맛보기진상 문
 
무중력 상태에 필요한 기초 물리
무중력 상태에 필요한 기초 물리무중력 상태에 필요한 기초 물리
무중력 상태에 필요한 기초 물리진상 문
 
Easy gameserver
Easy gameserverEasy gameserver
Easy gameserver진상 문
 

Mehr von 진상 문 (10)

Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2
 
[C++ beginner] sizeof()
[C++ beginner] sizeof()[C++ beginner] sizeof()
[C++ beginner] sizeof()
 
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1
 
Pervasive computing
Pervasive computingPervasive computing
Pervasive computing
 
ABI란 무엇인가요?
ABI란 무엇인가요?ABI란 무엇인가요?
ABI란 무엇인가요?
 
Dll 파일 호출의 2가지 방법
Dll 파일 호출의 2가지 방법Dll 파일 호출의 2가지 방법
Dll 파일 호출의 2가지 방법
 
C# 뉴비를 위한 맛보기 2
C# 뉴비를 위한 맛보기 2C# 뉴비를 위한 맛보기 2
C# 뉴비를 위한 맛보기 2
 
C# 뉴비를 위한 맛보기
C# 뉴비를 위한 맛보기C# 뉴비를 위한 맛보기
C# 뉴비를 위한 맛보기
 
무중력 상태에 필요한 기초 물리
무중력 상태에 필요한 기초 물리무중력 상태에 필요한 기초 물리
무중력 상태에 필요한 기초 물리
 
Easy gameserver
Easy gameserverEasy gameserver
Easy gameserver
 

Halo ce anniversary Postmortem

  • 1. HALO : Combat Evolved Anniversary
  • 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는 이 프로젝트를 해 낸 것을 자랑스럽게 생각 하고 있음