Real-Time 3D Game Engines
The design and implementation of game engines for real-time 3D games including topics such as camera control, environmental effects, articulated models, terrain, vegetation, collision detection, particles, emitters, triggers, portals, waypoints, mirrors, and shadows.
Study notes
Independent, AI-drafted study guide · Public sources linked below · Added November 5, 2026
Original guide aligned to fixed topics in Carleton's public 2026–27 undergraduate calendar. No particular term, instructor, or assessment coverage is claimed; examples and exercises are independently written.
Engine responsibilities and frame budgets
A game engine coordinates simulation, input, rendering, assets, audio, and scene lifetime. A frame budget turns an intended presentation rate into a concrete resource limit: 60 frames per second allows about 16.67 ms per frame. CPU and GPU work can overlap, so summing separately measured times without understanding synchronization can mislead. Profile a representative scene and identify the bottleneck. A faster subsystem does not improve the frame rate when another subsystem remains on the critical path.
References: Godot official physics introduction — collision objects and simulation updates
Simulation time and interpolation
A fixed simulation step makes numerical behavior easier to reason about than using arbitrary render intervals. Accumulate elapsed time and run enough fixed updates to catch up, with a defined policy when the machine falls behind. Rendering can interpolate between simulation states to smooth presentation. Fixed stepping alone does not prove determinism: floating-point behavior, iteration order, external inputs, and physics implementation still matter. Avoid tying movement directly to frame count, because faster rendering would then change gameplay speed.
References: Godot official physics introduction — collision objects and simulation updates
Scene organization and articulated models
A scene graph expresses parent-child transforms; an articulated character combines joint transforms with mesh deformation. Keep object identity and lifetime separate from a transient pointer or array position. Spatial organization supports visibility and collision queries, but the best partition depends on motion and density. Terrain and vegetation often need different levels of detail as distance changes. A portal can represent visibility or passage between spaces, while a trigger is an event region rather than necessarily a solid collision surface.
References: Godot official physics introduction — collision objects and simulation updates
Broad phase, narrow phase, and response
The broad phase cheaply identifies potential collision pairs using bounds or spatial partitions. The narrow phase performs more exact shape tests. Collision response then changes motion or reports events according to gameplay and physics rules. Detection and response are separate problems. Fast-moving objects can pass through thin geometry between discrete samples, motivating swept tests or continuous collision methods. A simplified collision shape may be more stable and efficient than using every triangle of a visually detailed mesh.
References: Godot official physics introduction — collision objects and simulation updates
Worked fixed-step timing example
Assume a simulation step of 10 ms and a render interval of 25 ms. Starting with an empty accumulator, the engine performs two simulation steps and retains 5 ms. Interpolating the previous and current simulation states uses alpha=5/10=0.5 under the usual one-step-behind rendering scheme. On the next 15 ms interval, the accumulator reaches 20 ms and again permits two steps. Define a catch-up limit to prevent unlimited simulation work from starving rendering after a long pause.
References: Godot official physics introduction — collision objects and simulation updates
Effects, resource management, and testing
Particle emitters create many short-lived objects with properties such as position, velocity, and lifetime. Pooling can reduce allocation churn, but reused objects need a complete reset to avoid stale state. Shadows, mirrors, and environmental effects have distinct visibility and render-pass costs. Keep gameplay behavior testable outside a fully rendered scene when possible. Build deterministic toy scenarios for transforms and collision rules, then add visual inspection and profiling for artifacts that numerical tests alone cannot explain.
References: Godot official physics introduction — collision objects and simulation updates
Practice & worked answers
Original exercises for this guide.
1. Why can a detailed mesh be a poor collision representation for a moving character?
Show worked answer
It may make collision tests expensive and response unstable around tiny surface features. A capsule or another simpler shape can represent the needed gameplay boundary while the render mesh supplies visual detail.
2. Does using a fixed physics step guarantee identical multiplayer simulations on every platform?
Show worked answer
No. Determinism also depends on arithmetic, ordering, library behavior, inputs, and state synchronization. A networking design must account for the actual guarantees of its simulation rather than infer them from fixed stepping alone.
Public notes & references
Course sources establish the scope above. Reference materials support the explanations; linked lecture notes and books remain with their authors.
Topics
- camera control
- environmental effects
- articulated models
- terrain
- vegetation
- collision detection
- particles
- emitters
- triggers
- portals
- waypoints
- mirrors
Course catalogue
Prerequisites & course information
Prerequisite(s): COMP 2404 or SYSC 3010 or SYSC 3110 . Lectures three hours a week.
Sources
- Course catalogue ↗2026–2027