Engine Overview
Below are some highlights of a custom game engine I developed as part of Fanshawe College’s Game Development - Advanced Programming stream. Screenshots show the state of the engine at various stages of completion (ex. over a range of eight months).
The source code can be found here.
Graphics
Starting with the rendering of simple 3D models, the engine was eventually able to render objects with multiple textures (with support for specular maps and discard transparency) and various light sources.
Deferred rendering and frustum culling were later implemented to improve performance.
The GLSL Shaders allowed for support of various full-screen effects (such as the static effect shown on the tv screens in the spaceship interior, or the underwater effect utilized in Something’s Fishy) and support for animations.
Physics
Supports both a custom physics engine as well as the Bullet Physics library. The custom engine is primarily for rigid body collisions and constraints and offers support for collision-based events (ex. playing a sound effect when two pool balls collide).
Gameplay
Utilizing a number of industry-standard frameworks and patterns, this engine is flexible for a variety of game types and is meant to support flexible project specifications.
AI supports A* Pathfinding, Dijkstra’s Algorithm, and various flocking and steering behaviors.
Multithreading and networking are also supported.