9781584503422

The Game Asset Pipeline

by
  • ISBN13:

    9781584503422

  • ISBN10:

    1584503424

  • Edition: 1st
  • Format: Paperback
  • Copyright: 9/3/2004
  • Publisher: Charles River Media

Note: Supplemental materials are not guaranteed with Rental or Used book purchases.

Purchase Benefits

  • Free Shipping On Orders Over $59!
    Your order must be $59 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $42.00 Save up to $10.50
  • Rent Book $31.50
    Add to Cart Free Shipping

    TERM
    PRICE
    DUE

Supplemental Materials

What is included with this book?

  • The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
  • The Rental copy of this book is not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Summary

Many of today's computer games are mega productions with huge teams and budgets, vast quantities of content, and crunched schedules. Getting these games to market is not an easy feat. Just managing the creation of content and getting that content into the right place at the right time is an enormous challenge. Hundreds of development hours are lost dealing with asset and pipeline issues, so the need for a working system is immense. The Game Asset Pipeline is written for programmers, producers, and managers who need to know how to create such a system. The solutions and ideas presented in the book cover current technology and methods that can be used to design and implement an asset management system.

Author Biography

Ben Carter (Guildford, England) has been writing about the games industry and other topics since 1995

Table of Contents

Acknowledgments v
Preface xvii
Introduction
1(16)
Offline Processing
2(1)
Beating the RAM Barrier
3(2)
Streaming
4(1)
Other Factors
5(1)
The Asset Pipeline
6(1)
The Asset Feedback Loop
6(2)
The Structure of Game Assets
8(2)
Builds
10(1)
Version Control
10(1)
Asset Dependencies
11(1)
Data Validation
12(2)
Error Handling
13(1)
Workflow
14(1)
Conclusion
15(2)
Where Do Assets Come From?
17(24)
Tool Integration
18(1)
Adding Features
19(3)
Naming Conventions
20(1)
Additional Data Fields
20(1)
Plug-in Objects
21(1)
Custom Export Tools
22(1)
Data Formats
23(6)
2D Bitmap Data
23(2)
Audio Data
25(1)
Video Data
26(2)
3D Object Data
28(1)
Custom Intermediate File Formats
29(10)
Text or Binary?
30(2)
File Structure
32(2)
Wrapper Formats
34(3)
XML
37(2)
Conclusion
39(2)
A High-Level View of Asset Management
41(22)
Why Asset Management Is Not Source Control
42(5)
Differences in Data
43(1)
Handling Very Large Files
44(3)
Asset Identification
47(3)
Metadata
47(1)
Change Tracking and History
48(2)
Broken Data
50(3)
Dealing with Broken Assets
51(2)
Local Changes
53(4)
Asset Building Shortcuts
54(1)
Unrepresentative Previews
55(1)
Runtime Editing
56(1)
Synchronizing Code and Data
57(3)
Integrating Code into the Asset Pipeline
58(2)
Building a Distribution Package
60(1)
Automated Testing
60(1)
Conclusion
61(2)
Building an Asset Management System
63(48)
Storage Systems
64(9)
Native Filing Systems
64(2)
CVS
66(1)
Subversion
67(1)
Bitkeeper
68(1)
Perforce
69(1)
Alienbrain
70(2)
Databases
72(1)
Transactions and Locking
73(3)
Operation Queues
74(1)
Record Locking
74(1)
Separating Metadata and File Locks
75(1)
Client/Server Architecture
76(4)
Clientless Architectures
77(1)
The Client/Server Boundary
77(1)
Using File Sharing Protocols
78(1)
Intelligent File Updating
79(1)
Client Tools
80(1)
GUI Tools
80(1)
Command-Line Tools
80(1)
Shell Integration
81(1)
Managing the Local Repository
81(2)
Preventing Unwanted File Modifications
82(1)
Handling Temporary Files
83(1)
Client Tool UI and Functionality Considerations
83(12)
Hierarchies and Views
83(2)
Separating Projects
85(1)
Sharing Files between Projects
86(1)
Searching
86(1)
Unique Identifiers
87(1)
Linking Files
88(1)
Metadata
89(2)
Workflow Control
91(2)
Preview Functionality
93(2)
Showing Asset Modifications
95(1)
Access Controls and Security
95(2)
Using Views to Control Access
96(1)
External Security
97(1)
Providing an External API
97(3)
Single and Multiple Client Models
98(1)
Interface State
99(1)
High-Level APIs
100(1)
Scripting Support
100(5)
Change Notification Handling
101(1)
Caching Strategies
102(3)
Archiving and Purging Data
105(4)
Choosing Which Asset Revisions to Remove
105(1)
Deleting Files
106(1)
Archiving Files
106(2)
Manually Purging Assets
108(1)
Conclusion
109(2)
Texture and Image Processing
111(26)
Textures
112(1)
Texture Swizzling
112(3)
Texture Compression
115(1)
Performing Texture Compression
115(1)
Texture Quantization
116(13)
Texture Resizing
117(3)
Conforming Textures
120(1)
Color Reduction
121(8)
Dithering
129(3)
Ordered Dithering
129(1)
Error Diffusion Dithering
130(1)
Dithering Textures
131(1)
Using Alternative Color Spaces
132(3)
The YUV Color Space
133(2)
Conclusion
135(2)
Geometry Processing
137(72)
Mesh Data
138(3)
Indexed Vertices
140(1)
Model Hierarchy Information
141(1)
Mesh Geometry Processing
141(1)
Stripification
141(13)
Building Triangle Strips
142(1)
The Greedy Algorithm
143(2)
The SGI Algorithm
145(1)
Back-Face Culling and Winding Order
146(2)
Merging Strips
148(1)
Making Use of Draw-Cancel Flags
149(2)
Strips versus Lists
151(1)
Vertex Cache Optimization
152(2)
Triangle Lists
154(3)
Depth Sorting
155(2)
Sanitizing Input Data
157(4)
Orphaned Data
158(1)
Vertex Welding
158(1)
Removing Degenerate Triangles
159(1)
Non-Coplanar Polygons
160(1)
Regular Mesh Subdivision
161(8)
Clipping Triangles
162(1)
Clipping Polygons
163(6)
Geometry Compression
169(3)
Compressing Vertex Positions
169(3)
Bone Weight Processing
172(3)
Removing Redundant Bone Associations
172(1)
Using Pre-Multiplied Bones
173(1)
Constructing Composite Bones
173(1)
Subdividing Skinned Meshes
174(1)
Building Bounding Volumes
175(18)
Axis-Aligned Bounding Boxes
176(1)
Bounding Spheres
176(2)
Oriented Bounding Boxes
178(2)
Convex Hulls
180(4)
Interior Bounding Volumes
184(2)
Transparency and Bounding Volumes
186(1)
Generating Multiple Bounding Volumes
186(3)
Bounding Volumes for Animated Meshes
189(1)
Bounding Volumes for Skinned Meshes
190(3)
Performing Vertex Compression with Animated Bounding Boxes
193(1)
Mesh Hierarchy Processing
193(4)
Collapsing Nodes
194(1)
Removing Leaf Nodes
195(1)
Merging Nodes
195(2)
Level of Detail Simplification
197(12)
Hierarchy Merging
197(2)
Polygon Reduction
199(5)
Generating Imposter Sprites
204(2)
Using Imposter Geometry
206(3)
Audio and Video Processing
209(14)
Audio
209(7)
Resampling
210(2)
Looping Samples
212(1)
Audio Compression
212(1)
ADPCM
213(1)
MP3
214(2)
Scripting Languages
216(1)
Compiling Script Code
216(1)
Deriving Dependencies from Scripts
216(1)
Video
217(5)
Video Compression
218(2)
Localizing Video
220(1)
Subtitles
221(1)
Video Standard Conversion
221(1)
Conclusion
222(1)
Environment Processing
223(18)
BSP Trees
224(4)
Building a BSP Tree
225(3)
Potentially Visible Sets
228(2)
Portals
228(1)
Ray Casting
229(1)
Beam Casting
230(1)
Routing Information
230(4)
Accessibility Information
231(2)
Connectivity Information
233(1)
Precalculated Lighting
234(4)
Vertex Lighting
234(1)
Lightmaps
235(2)
Volumetric Lighting
237(1)
Conclusion
238(3)
Managing Asset Processing
241(28)
Dependency-Based Processing
242(7)
Determining Asset Dependencies
245(1)
Determining When Assets Have Changed
246(1)
Handling Code Changes
247(2)
The Make Tool
249(5)
Descriptor File Syntax
249(4)
Advantages and Limitations of Make
253(1)
Output Data Formats
254(5)
Standardizing Wrapper Formats
254(1)
Including Metadata
255(1)
Memory Ready and Parsed Formats
256(2)
Byte Order Considerations
258(1)
Handling File Interdependencies
259(1)
Building Robust Tools
260(6)
Be Lenient in What You Accept, but Strict in What You Output
260(1)
Handling Tool Failure
261(3)
Debugging the Pipeline
264(1)
Maintaining Data Integrity
265(1)
Interfacing to Existing Systems
266(1)
Conclusion
267(2)
Final Data
269(28)
File Packing
270(3)
Packed File Formats
271(1)
Handling Very Large Package Files
271(1)
Using Multiple Package Files
272(1)
Obfuscating Data
272(1)
Data Layout
273(3)
Optimizing Linear Loading Procedures
273(1)
Optimizing Streaming
274(1)
Audio Streams
275(1)
Interleaved Streams
275(1)
Integrity Checking
276(2)
Digital Signatures
278(4)
Public Key Signatures
280(1)
Cryptographic Hashing
280(1)
Using Cryptography in Games
281(1)
Encryption
282(2)
What to Encrypt
283(1)
Compression
284(3)
What Can Be Compressed?
284(1)
Compression Schemes
284(2)
Other Compression Issues
286(1)
Distribution Media
287(3)
CD-ROMs
287(1)
DVDs
288(1)
Cartridges
288(1)
Hard Discs
288(1)
Internet Distribution
289(1)
After Shipping
290(5)
Data Archival
290(2)
Patching Data
292(3)
Conclusion
295(2)
Bibliography 297(2)
Index 299

Rewards Program

Write a Review