Game Engine
Project Introduction
4 months personal project, using C++ and visual studio to build a customed data driven Game Engine.
Datum & Scope
First I created a custom container that could store multiple types of data to RTTI interface, and could be assigned at runtime. Then to have heirarchy, I made a class called scope, which could hold any type of values as key-value pairs, including nesting scope-tables as children.
Json Parsing
To make the engine more easily to use, I created a runtime Json parsing system using design pattern -- Chain of Responsibility. We are able to store the components as Scenes.
Then I made an Attributed class which include the signature, child can inherent it from their parents. It gives the object names and connect to the data. It's also a base class for Game Object and Action.
Then I made a Factory using design pattern - Factory, so that the engine can instance an object without knowing it's type at runtime.
Event System
I also made an event system using the design pattern - observer pattern. So to invoke an action, the engine doesn't need to check in every frame, the publisher will told the subscriber the state is changed on their own.
Unit testing
Every function in the engine has unit test covered, it make sure all the functions will work as desired.
Aryna Ou