Overlord Editor

Description

The overlord engine is a c++ engine framework of Howest. It lacks any tools to aid development so i created a small editor to make creating games easier with it.

My Experience

This was my first time working on tool development. I started by looking at Unreal and Unity engine to see what features a basic editor should have.

I decided on three main visual tools

  • A scene graph that allows for the selecting and parenting of actors.

  • A content browser to display all the users assets.

  • A parameter editor to edit the selected asset or scene object.

For Gui library i decided to use ImGui since it would allow me to iterate faster and was faster to start with.

main scene.png
Technical

Tools Used

  • Visual Studio

  • Mixamo

Language used

  • C++

Libaries used

  • DirectX11

  • Fmod

  • PhysX

  • ImGui

Object variables

To display the component variables of the selected game object, i wanted to create something that could be reused for all objects that had variables that could be altered. So i implemented a reflection system that uses std::function. With 2 structs, a base struct to hold the variable type and a derived struct to hold the methods and name.

A vector of these is then stored withing the base object. To register the variable i added this method as wel.

Allowing for any supported variable to be reflected via a getter and setter.

Object Selection

I implemented object selection using the DIrectX11 BoundingOrientedBox. A bounding box is stored alongside a model component. The box is created with the middle and furthest extent of the model. And is updated when a different model is assigned. when a collision check is called done the box is transformed with the objects world matrix and then tests for an intersection with the given ray. If a collision happens the distance from the ray origin and the center of the box is returned.