UW EXTENSION CERTIFICATE PROGRAM IN GAME DEVELOPMENT 2 ND QUARTER: ADVANCED GRAPHICS The asset pipeline
Goals 1. Learn the value of a well crafted asset pipeline 2. Review implementation strategies
Game development process Four stages: Prototyping Technology development Production Release Production stage: at least 50% of time and effort Driven by designers and artists, not programmers Programmers must ensure production can be sustained Technology development must be done accordingly
Graphics production Driven by artists… mostly Designers drive “what”, artists drive “how” Programmers define the limitations Vertex density in the meshes Resolution of the textures Size of the textures in memory (compressed formats) Bone counts, units of measurement, material features… Programmers also create the tools Exporters/importers, converters, packers/unpackers
The ideal toolchain Designers/artists generate a ton of asset files Using exporters and editors Game can use those files directly Reloading them on the fly when they change Fast iteration! One tool or batch of tools packs/optimizes assets Game can use the packed/optimized assets Individual files can override them Fast game and fast iteration
Archives/pack files Like ZIP files Sometimes, they are actual ZIP files Often different, with a separate TOC (Table Of Contents) Use them instead of using individual files Lay out all assets smartly to reduce disk seeking Improve read speed by using compression Zlib is a common choice
Terrain/environment Static geometry: floor, walls, ceiling Textures, materials and lighting Also decorative meshes, like lampposts Also triggers, navigation maps, attach points Height map, BSP, arbitrary mesh, portals… Static vs. streaming Breakable environments Usually done by mesh substitution Typically very homogeneous
Terrain/environment toolchain Editors for BSPs, portals, level object placement… Also partitioning and layout for streaming Exporters for textures, meshes, materials… Usually created with 3 rd party tools Converters Images into heightmaps Texture and material/shader packers Development assets into optimized Stitch environment chunks Radiosity lightmap generators
Characters Cars, animals, monsters, people… Textures, materials, meshes, skeletons… Animations, poses, transitions Programmer must provide all limitations Physics substitute animations with code AI scripts and gameplay parameters Lots of variation
Character toolchain Everything typically edited in 3 rd party tools Exporters for everything Not everything: game can use standard file formats Converters Animation keyframing/optimizing/matching Parsers/compilers for scripts and description files
Special effects Particle systems Hopefully, data-driven and with an editor tool Full-screen post-processing Decals Skyboxes
Miscellaneous Fonts Possibly including Chinese, Japanese, Korean Using limited vocabularies? Backgrounds, icons, 2D animations, etc…