Last month Walter Rottenberry came to Guadalajara to teach us about the very basics of game development. As usual, let me share my notes:
AI:
- Tips from Steve Rabin in “Game Programming Gems 2″
- Use event driven behavior rather than polling
- Reduce redundant calculations
- Centralize cooperation with managers
- Run the AI less often
- Distribute the processing over several frames
- Employ AI LODs
- Solve only part of the problem
- Do the hard work offline
- Use emergent behavior to avoid scripting
- Amortize costs with continuous bookkeeping
- Rethink the problem
Game Theory:
- Prisoner dilemma
- Types of challenges
- Implicit vs explicit
- Perfect vs imperfect information
- Intrinsic vs extrinsic knowledge
- Pattern recognition
Level design:
Level designer responsibilities:
- Create terrain
- Create the rooms
- Add props
- Add triggers
- Look great
- Make it work
Technical limitations:
- The platform
- Affects how the level should be built (not the level itself)
Main factors:
- Memory
- Processing power and frame rate
- Level performance
- Polycount
- Lighting
- AI
- Media format
- Target and minimum specifications
GPUs take care of the eye candy in the game
Special effects consume a lot of processing power instead of RAM
Performance:
- Fast moving games require faster frame rate
- Level designer should be aware of strain on GPU and not frustrate for that
Polycount:
- What really matters is the number of polygons seen on the screen at any given moment
- Contributors
- Too many characters in a single space
- Special effects (smoke, falling leaves, fire, a black hole, etc)
- Emmitters need to be watched closely
- Use LODs (Level of detail)
- Characters: 3 LODs
- Objects: 2-3 LODs
- Environments: distances vary depending on level and game
Lighting:
- Lights and shadows both pulls on the GPU
- Dynamic lights are cool but expensive
- Traditionally had static lights
- Lights and shadows can be baked into textures
Game metrics:
- Happens after the player metrics are known
- Properties of the main character are the biggest factor
- Examples:
- Height and width
- Walk and run speed
- Jump distance
- Jump height
- Interaction distance (how far the player needs to be from an interactuable object to interact with it)
- Character metrics
- The visual size is different from the collision size
- Use collision volumes
- Make doors and corridors slightly bigger than realistic proportions
- Warning: Beware the game designer who gives you a ballpark figure for vital game data
- Get hard data before creating the level
- Level designer should decide the movement speed and jump metrics
Tips:
- FaceFX for facial animation
- Use cell diagrams (also called bubble diagrams) for gameplay
Thank you Walter. This was very useful.