3D Game Development
Principles for 3D game systems.
- Rendering Pipeline
Stages
- Vertex Processing → Transform geometry
- Rasterization → Convert to pixels
- Fragment Processing → Color pixels
- Output → To screen
Optimization Principles
Technique Purpose
Frustum culling Don't render off-screen
Occlusion culling Don't render hidden
LOD Less detail at distance
Batching Combine draw calls
- Shader Principles
Shader Types
Type Purpose
Vertex Position, normals
Fragment/Pixel Color, lighting
Compute General computation
When to Write Custom Shaders
-
Special effects (water, fire, portals)
-
Stylized rendering (toon, sketch)
-
Performance optimization
-
Unique visual identity
- 3D Physics
Collision Shapes
Shape Use Case
Box Buildings, crates
Sphere Balls, quick checks
Capsule Characters
Mesh Terrain (expensive)
Principles
-
Simple colliders, complex visuals
-
Layer-based filtering
-
Raycasting for line-of-sight
- Camera Systems
Camera Types
Type Use
Third-person Action, adventure
First-person Immersive, FPS
Isometric Strategy, RPG
Orbital Inspection, editors
Camera Feel
-
Smooth following (lerp)
-
Collision avoidance
-
Look-ahead for movement
-
FOV changes for speed
- Lighting
Light Types
Type Use
Directional Sun, moon
Point Lamps, torches
Spot Flashlight, stage
Ambient Base illumination
Performance Consideration
-
Real-time shadows are expensive
-
Bake when possible
-
Shadow cascades for large worlds
- Level of Detail (LOD)
LOD Strategy
Distance Model
Near Full detail
Medium 50% triangles
Far 25% or billboard
- Anti-Patterns
❌ Don't ✅ Do
Mesh colliders everywhere Simple shapes
Real-time shadows on mobile Baked or blob shadows
One LOD for all distances Distance-based LOD
Unoptimized shaders Profile and simplify
Remember: 3D is about illusion. Create the impression of detail, not the detail itself.