Making the Game Engine Editor
Let's face the various topics related to the development of a Game Engine Editor.
Friday 24th March 2023

Making a Game Engine Editor

Prologue


Many years of research and development have been required to reach this moment,
but finally the development of Pard Engine Editor is officially started!


During the design of Pard Engine, it has been decided to split the development process in three main parts:

  • the development of the GUI Framework
  • the development of the Game Engine and its subsystems, like
    • Graphics Engine
    • Physics Engine
    • Input System
    • GUI System
    • ...
  • the development of the Pard Engine Editor

Currently many core modules have been already designed and implemented for the most part,
even though many features have to be added yet.


Despite that, it's already possible to start the making of the Pard Engine Editor.


Since the development of an editor is something that can be visually represented,
for example through images/screenshots about the UI or 3D Scene Viewport etc.
this is probably the best time to finally public something about the project!


It has been really hard to wait until now: unfortunately the development of core modules are notoriously difficult to show, mainly because there are few graphics elements involved.

 

Pard Engine Editor - Requirements


During the analysis of the Requirements of Pard Engine Editor, many considerations have been done.

Most of the concerns were about:

  • integration of a GUI Framework with the various sub-systems of the engine in an efficient and optimized way
  • support for the main OSs available today, so Windows, macOS and Linux
  • deep customization of the various GUI controls (e.g. style, creation of new controls from scratch etc.)

We know that in order to create a desktop application is necessary to use a GUI Framework, like MFC, QT, wxWidgets and so on.

MFC, QT and wxWidgets logos

Very few C++ GUI Frameworks are able to support multiple OSs, and even fewer are able to customize deeply the style of the various controls to make a cool GUI.

In order to integrate in an efficient and optimized way a software system like a Game Engine with a GUI Framework, the GUI Framework, ideally, should be integrable with the graphics pipeline (device context etc.) of the Graphics Engine and viceversa.

For all these reasons, it has been necessary to develop a GUI Framework from scratch, that was able to meet all the requirements mentioned previously.

The design and the development of this GUI Framework, that has been called illuxUI, has required some years, and its development process has been documented with some videos:

illuxUI Dockable Panel System

illuxUI TreeView Control

 

illuxUI has been developed and improved so much over the years that now it can be used to develop not only a Game Engine Editor, but any kind of Desktop Application we can think about. Natively.

At this point there are all the necessary resources and elements to start the design and development of Pard Engine Editor.

 

Pard Engine Editor - Design


Designing a Game Engine Editor is not an easy task: as for every desktop application, it must be designed on two fronts:

  • UX/UI Design
  • Software Design

UX/UI Design is the part of software development process where it is decided how the Graphical User Interface of the application must be created. That means  it is necessary to understand what kind of controls must be used for specific tasks, how those controls must be customized and implemented in such a way to be easily understandable to the eyes of the users. The various design decisions are taken through the usage of tools like wireframes, mockups, UI prototypes etc.

Software Design, instead, is the part of software development process where it is decided how to implement concretely the software architecture and, consequently, how to make the various software systems and sub-systems that will compose it. The various design decisions are taken through the usage of useful tools, like UML (Unified Modelling Language), Software Design Patterns etc.

In the images below we can see some wirefames of the main parts of the editor:

 

 

Splash Screen and Projects Browser Wireframes

 

Projects Browser (Open Project and New Project Tabs) Wireframes

 

 Level Editor (Dockable Windows Example) Wireframe

 

 

That's all for now, folks!

If you have questions or doubts about this topic, please don't esitate to leave them in the Discord Server: https://discord.gg/6TF2d9pcpX .

If you enjoyed this article, you can subscribe to our newsletter to be always up to date with the latest news and articles.

Also if this work is helpful to you, please consider to support it through Patreon.
Every single contribution makes the difference, regardless the amount.

Thank you!