optimizing the content pipeline

37
Optimizing the Content Pipeline 아아아 : http://cafe.naver.com/architect1 아아아 : [email protected]

Upload: taewoo-kim

Post on 25-Jan-2015

2.120 views

Category:

Devices & Hardware


2 download

DESCRIPTION

Retrieved from: http://gamesfromwithin.com/optimizing-the-content-pipeline

TRANSCRIPT

Page 1: Optimizing The Content Pipeline

Optimizing the Content Pipeline

아꿈사 : http://cafe.naver.com/architect1김태우 : [email protected]

Page 2: Optimizing The Content Pipeline

Retrieved from

Page 3: Optimizing The Content Pipeline

INDEX• Introduction• Bird’s-Eye View of the Pipeline• Assets• Catalog Files• The Fast Paths

Page 4: Optimizing The Content Pipeline

Introduction

Page 5: Optimizing The Content Pipeline

Contents

Level Design

Page 6: Optimizing The Content Pipeline

Contents

Level DesignModels

Page 7: Optimizing The Content Pipeline

Contents

Level DesignModels

Sound

Page 8: Optimizing The Content Pipeline

Contents

Level DesignModels

Sound

Story

Page 9: Optimizing The Content Pipeline

Contents

Level DesignModels

SoundStory

Cinematic

Page 10: Optimizing The Content Pipeline

ContentsLevel Design

Models

Sound

Story

Cinematic

Time

ContentsSize & Complex

Page 11: Optimizing The Content Pipeline

The Best Way• The best way to provide content is

– optimize the content pipeline – so that artists and designers can

• create, preview, add and tweak new assets • as easily and rapidly as possible

Page 12: Optimizing The Content Pipeline

Game Assets• code 가 아닌 모든 것

– models, textures, materials, sounds, animations, cinematics, scripts, etc

• Pipeline 을 통해 Assets 은… – converted, optimized, chopped to bits

or combined

• 최종적으로 , asset is in a format– that will be shipped with 게임의 최종 버전

Page 13: Optimizing The Content Pipeline

Main point to consider • Efficiency

– 파이프라인에 작은 비효율 존재시• 많은 사람들이 시간 낭비

– Contents Creator 가 빈번히 preview 를 못하면• 게임의 전체적인 품질 저하

• Robustness – content pipeline 이 깨지면 ?

• 작업자들은 pipeline 이 수정되기 만을 기다리고• 시간을 낭비하게 됨

– Whatever happens, the pipeline must always work correctly

Page 14: Optimizing The Content Pipeline

Bird’s-Eye View of the Pipeline

Page 15: Optimizing The Content Pipeline

Asset pipeline look like • It depends on the Project

– Pipeline is • minimal and informal

– Assets are• exported from their tool• loaded directly in the

gameSmall Project

Page 16: Optimizing The Content Pipeline

Asset pipeline look like • It depends on the Project

– Pipeline is• deep and elaborate

– Asset Issues• 파일이 어디있나 ?• 멀티플랫폼에서 처리되나 ?• 리소스 포맷 변경 쉽나 ?• 추가 처리 적용 되나 ?

Large Project

Page 17: Optimizing The Content Pipeline

Partial View of the Content Pipeline

Page 18: Optimizing The Content Pipeline

Assets

Page 19: Optimizing The Content Pipeline

Source Assets

Page 20: Optimizing The Content Pipeline

Source Assets• Artists and Designers 에 의해 생성된 것

• 게임에 정확하게 추가될 수 있도록모든 필요한 정보를 포함– 매우 신중히 treat– being lost or accidentally overwritten

으로부터 보호

• Version control program 사용– Centralized location for all asset– Prevent overwriting– Keep history previous versions– Deal with binary files

Page 21: Optimizing The Content Pipeline

Intermediate Assets

Page 22: Optimizing The Content Pipeline

Intermediate Assets• Souce Assets 으로 부터 export 된 것

• 하위 호환성을 깨지 않고 쉽게 read, parse, and extend 가능– Loading 성능은 중요하지 않음

• Final Assets 의 몫임

– Plain Text • XML, YML, CSV, INI 등

Page 23: Optimizing The Content Pipeline

Intermediate Assets• Source Asset 과 Final Asset 사이에

버퍼를 제공

• Complex, Time-consuming 작업을 미룸– Mesh optimization– Lightmap generation

• for debugging and experimentation– Readable format

• Anybody can view• 테스트 , 디버깅을 위해 re-export 없이 작은 수정 가능

Page 24: Optimizing The Content Pipeline

Final Assets

Page 25: Optimizing The Content Pipeline

Final Assets• Highly Optimized

– 타겟 플랫폼에 효율적으로 Loaded and Used • Robust 할 필요 없음• 목표는 Speed!!• 어떤 parsing 없이 바로 로드

– 맹목적인 최적화는 하지 마라• 가장 이득이 있는 곳을 노려라

• Type of Operations– 간단한 포맷 변경– Mip-map 생성 , dithering, 압축– Lightmap 생성 , Mesh 최적화

Page 26: Optimizing The Content Pipeline

Catalog Files

Page 27: Optimizing The Content Pipeline

Catalog Files• Final step of The Pipeline

• Packing all the loose final asset filesinto larger catalog files– 다른 파일들을 포함하고 있는 큰 파일– 이름 , 계층 정보를 포함

• Advantage of using catalog files– Open/Close file operation 감소– 파일간 근접하도록 강요– Directory parsing 빨라짐 등

Page 28: Optimizing The Content Pipeline

Catalog Files• Using a standard catalog file format

– zip, cab, wab– 이미 잘 사용되고 있음

• Resource load strategies– 레벨 또는 사운드 별로 나눌 수도 있음– 게임에서 어떻게 로드할 지에 의존

• 게임과 툴에서 바로 읽을 수 있어야 함

Page 29: Optimizing The Content Pipeline

The Fast Paths

Page 30: Optimizing The Content Pipeline

It is not exactly speedy• 지금까지 설명한 데로는 너무 늦다

– 단계를 요약해 보자• Source asset 수정• Intermediate asset 으로 export• Check it in version control• Resource conversion 시작• Catalog file 이 준비될 때 까지 몇 시간 대기

– Fast turnaround time 의 요구에 맞지 않다 !!

Page 31: Optimizing The Content Pipeline

Provide Fast Path• Game/Tool could load

– Intermediate assets as well as the final assets

• priority – Give local files over catalog files

CatalogFile

CatalogFile

CatalogFile

Page 32: Optimizing The Content Pipeline

Putting It All Together

Page 33: Optimizing The Content Pipeline

Automation• Automating the process

– Run conversion process– Package them on the catalog files

• 견고하게 만들기 어렵다– Network going down– Versioncontrol server being down, etc

• 하루에 한 두번 또는 필요로 할 때 빌드

Page 34: Optimizing The Content Pipeline

References• 발표 주제

• http://gamesfromwithin.com/optimizing-the-content-pipeline

• 슬라이드– 색상조합

• http://kyruie.tistory.com

– 이미지• http://www.slideshare.net/trib

Page 35: Optimizing The Content Pipeline

Like the Cool Pictures?http://www.cooliris.com

And the Awesome Slide?http://www.slideshare.net

Page 36: Optimizing The Content Pipeline
Page 37: Optimizing The Content Pipeline

Lisence