UI/UX

With a pragmatic design in mind, Dagmar Engine was developed to have a simple user interface with all the tools and features conveniently accessible to the user within the engine editor. The UI for the engine editor was developed using DearImGui which is an open-source graphical user interface library for C++ that enabled us to rapidly prototype designs. The editor is composed of various windows that can be flexibly layed out by the user themselves.

In-built Console
The in-built console gives the user insights from the core engine program, so they gain information into the internal state of the engine.  Items are logged at various debugging levels, such that they can be filtered depending on build configurations. 

Compile and Export
Once a game is finalized, the user is able to compile and export to a statically-linked executable on their preferred platform - all from a single button in the editor UI.

Inspector
The inspector gives the user control over several features of the currently selected entity. This includes, adding and removing components, as well as editing their properties, e.g. changing the position of the entity from the transform or its mass from the rigid body.  

Profiling
The user can monitor their resource usage, such as current memory and CPU consumption. Using this tool, it is far easier to catch memory leaks, as well as helping warn the user if they are getting close to the limits of their system. This is invaluable considering the massive generative power of our engine. 

File Manager
From the file manager, users can drag and drop model to both the game window and the scene graph, allowing for quick and easy loading of resources.

Physics System Controls 
The robust physics system can be manipulated from the UI using sliders to set appropriate values for parameters such as gravity and air resistance.

Rendering System Controls 
The in-editor rendering settings gives the user the ability to switch between forward and deferred rendering, as well as displaying the render graph for the current post-processing effects, as chosen in the inspector.

Scene Graph
The scene graph represents a list of entities in the current scene. Adding and deleting entities are reflected in real-time from the scene graph.