top of page

This page is for a memorandum of my game engine project. I have started this project from scratch as a school project in September 2018 and decided to keep working on it as a personal project recently. The source code of the game engine is placed here

Current State of The GameEngine

Currently, the game engine has implemented the basic structure such as...


  • Entity Component System

  • Heap manager and Smart pointers for memory management

  • Math libraries such as Matrix and Vector with intrinsic instruction

  • 2D Rigid body physics and AABB collision detection

  • Simple asset loader, written in Lua

  • Multicast delegate messaging system and input system

  • Assertion and Debug log for a debug purpose       

  • ​and a lots more​

The rough structure of the game engine is shown below


It's been almost a half year since I start working on this project as my personal project. The engine itself is still in a very early stage with a lot of parts rusty, However, I will make it better day by day!

 May, 22th, 2020

I have implemented the PBR shading model that Disney made. Among which I have implemented the model UE4 adopted.  


 March, 29th, 2020

Recently I am doing on a big refactoring to my code.

I have totally replaced the graphic system to my own (It's Open GL, not Vulkan yet but will be cross-platform in the future). Restructured and modulized many pre-existed codes. Still haven't finished everything, but it's been a good progress, so I would like to show off some!

2020-03-29 11-52-19.gif

 Dec, 16th, 2019

My game engine is using the OpenGL graphics system that our professor provided. I decided to replace the system with my original graphics module. However, just replacing the system with my code isn't that interesting. So I decided to start learning Vulkan and use it as the graphics API for my system.


 Nov, 28th, 2019

The vector and matrix functions in my game engine was a bit messy. I have improved the vector and matrix class in both performance and code-structure perspectives using intrinsic function and template.

bottom of page