MonoGame Quadtree Terrain
This is a project I have just recently started and am still working on. A quadtree is an efficient data structure for storing hierarchical graphics primitives like landscapes. It allows us to efficiently frustum cull invisible nodes of terrain patches and increase the level of detail. I will be using some techniques from the Frostbite game engine in games like Battlefield to achieve dynamic level of detail and procedural shader splatting.
Today video game consoles and gaming computers have dedicated GPU’s that render millions of polygonal vector graphics. But computers used to do graphics in software and it was very expensive to render 3D objects and landscapes. This made algorithms for rendering voxel heightmaps popular and they were used in games such as Comanche and Outcast. It involves casting a ray for each column of pixels on screen onto a 2D heightmap.
Broad-phase Collision Detection
Collision detection is an important part of a game engine that can be separated into two phases, a narrow phase and a broad phase. The narrow phase of collision detection generally involves polygon intersection tests using the Separating Axis Theorem. A broad phase is usually created to speed up the narrow phase by reducing the number of collision checks. In my experimental broad phase I used a sparse spatial hash that grouped objects into “buckets” and performed axis-aligned bounding box checks to enumerate a hash set of collision pairs.
DockFX is a fully featured docking library I created for the JavaFX platform. A docking library creates a reusable, modular, and customizable interface that end users can change and modify as they see fit to tailor a program to their needs. The source code is published on GitHub where regular binary releases are made available.
ENIGMA Development Environment
Design and implementation of new systems, features, and extensions to the architecture of the main engine and compiler. I developed alternative Direct3D rendering back ends and started an OpenGL 3 compliant port that would be compatible with OpenGL for embedded systems. ENIGMA is the software that provides the ability to compile your games through a compiler of choice and distribute them for multiple platforms. I also improved the IDE by adding support for additional formats and platforms.
This is an open source 3D platforming example I created for aspiring game developers to learn from. Game physics used an existing collision detection system I optimized with spatial hashing algorithms. Most graphics and 3D modeling are my original work with Blender.