Optimizing The Content Pipeline
-
Upload
taewoo-kim -
Category
Devices & Hardware
-
view
2.120 -
download
2
description
Transcript of Optimizing The Content Pipeline
Optimizing the Content Pipeline
아꿈사 : http://cafe.naver.com/architect1김태우 : [email protected]
Retrieved from
INDEX• Introduction• Bird’s-Eye View of the Pipeline• Assets• Catalog Files• The Fast Paths
Introduction
Contents
Level Design
Contents
Level DesignModels
Contents
Level DesignModels
Sound
Contents
Level DesignModels
Sound
Story
Contents
Level DesignModels
SoundStory
Cinematic
ContentsLevel Design
Models
Sound
Story
Cinematic
Time
ContentsSize & Complex
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
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 게임의 최종 버전
Main point to consider • Efficiency
– 파이프라인에 작은 비효율 존재시• 많은 사람들이 시간 낭비
– Contents Creator 가 빈번히 preview 를 못하면• 게임의 전체적인 품질 저하
• Robustness – content pipeline 이 깨지면 ?
• 작업자들은 pipeline 이 수정되기 만을 기다리고• 시간을 낭비하게 됨
– Whatever happens, the pipeline must always work correctly
Bird’s-Eye View of the 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
Asset pipeline look like • It depends on the Project
– Pipeline is• deep and elaborate
– Asset Issues• 파일이 어디있나 ?• 멀티플랫폼에서 처리되나 ?• 리소스 포맷 변경 쉽나 ?• 추가 처리 적용 되나 ?
Large Project
Partial View of the Content Pipeline
Assets
Source Assets
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
Intermediate Assets
Intermediate Assets• Souce Assets 으로 부터 export 된 것
• 하위 호환성을 깨지 않고 쉽게 read, parse, and extend 가능– Loading 성능은 중요하지 않음
• Final Assets 의 몫임
– Plain Text • XML, YML, CSV, INI 등
Intermediate Assets• Source Asset 과 Final Asset 사이에
버퍼를 제공
• Complex, Time-consuming 작업을 미룸– Mesh optimization– Lightmap generation
• for debugging and experimentation– Readable format
• Anybody can view• 테스트 , 디버깅을 위해 re-export 없이 작은 수정 가능
Final Assets
Final Assets• Highly Optimized
– 타겟 플랫폼에 효율적으로 Loaded and Used • Robust 할 필요 없음• 목표는 Speed!!• 어떤 parsing 없이 바로 로드
– 맹목적인 최적화는 하지 마라• 가장 이득이 있는 곳을 노려라
• Type of Operations– 간단한 포맷 변경– Mip-map 생성 , dithering, 압축– Lightmap 생성 , Mesh 최적화
Catalog Files
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 빨라짐 등
Catalog Files• Using a standard catalog file format
– zip, cab, wab– 이미 잘 사용되고 있음
• Resource load strategies– 레벨 또는 사운드 별로 나눌 수도 있음– 게임에서 어떻게 로드할 지에 의존
• 게임과 툴에서 바로 읽을 수 있어야 함
The Fast Paths
It is not exactly speedy• 지금까지 설명한 데로는 너무 늦다
– 단계를 요약해 보자• Source asset 수정• Intermediate asset 으로 export• Check it in version control• Resource conversion 시작• Catalog file 이 준비될 때 까지 몇 시간 대기
– Fast turnaround time 의 요구에 맞지 않다 !!
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
Putting It All Together
Automation• Automating the process
– Run conversion process– Package them on the catalog files
• 견고하게 만들기 어렵다– Network going down– Versioncontrol server being down, etc
• 하루에 한 두번 또는 필요로 할 때 빌드
References• 발표 주제
• http://gamesfromwithin.com/optimizing-the-content-pipeline
• 슬라이드– 색상조합
• http://kyruie.tistory.com
– 이미지• http://www.slideshare.net/trib
Like the Cool Pictures?http://www.cooliris.com
And the Awesome Slide?http://www.slideshare.net
Lisence