Fiea Game Engine

Fiea Game Engine

- 4 mins

Summary

In January 2020, during the start of my spring semester, this project began as part of the curriculum in the programming track at UCF’s Florida Interactive Entertainment Academy. I was tasked with designing and implementing a game engine in C++ from the ground up. Starting with fundamental templated container classes mirroring the C++ standard library to a full property-centric runtime type reflection system and a multi-threaded event system.

Having always been interested in engine development and systems design, I tackled these tasks head on. Over the course of the semester, I learned a whole lot about engine development. However, there is infinitely more to learn, so I continue to develop this project as a means of exploring engine and systems development further. Explore the source code for the engine on GitHub.

As of May 2020, I have begun work on a rendering abstraction layer for the engine with the intention of enabling support for multiple rendering API. The abstraction layer will act as an interface for rendering functionality that could then be implemented by any rendering API, i.e. OpenGL, Vulkan, DirectX11, DirectX12, and Metal, as needed to best support the developed application and it’s target platforms. You can read more about this in the weekly developer diary blog series starting with the first post here.

Overview

If you would like to view the overview presentation slides for the Fiea Game Engine, click here.

Core

Engine

New Inheritance Hierarchy

Engine core inheritance hierarchy.

New Ownership Hierarchy

Engine core ownership hierarchy.

Goals

After wrapping up the initial engine development towards the end of April 2020, the first major milestone for the engine was marked by its use in the recreation of the battle mode of Super Bomberman for the SNES.

The next goal of this project will be the culmination of the current work on a rendering abstraction layer for the engine. This is planned as a visual demonstration of a dynamic scene rendered using the rendering abstraction layer with an implementation both in OpenGL 4.6 and DirectX11 as a proof-of-concept.

Logan Harvell

Logan Harvell

Graduate student at UCF FIEA, M.S. in Interactive Entertainment

comments powered by Disqus