top of page
Balancing Hub

..is a plugin for the Unreal Engine. It lets users define custom float variables that can be accessed and manipulated through the plugin's UI. Variables can be grouped into sets, and values of a set can be saved into so-called balancings. Multiple balancings can be created. Switching between balancings and tweaking variables can be done while running the game through the editor. This enhances the balancing workflow considerably since comparisons are immediate and less recompilation and less UI navigation is required.

About:

Context:    Student project during my fourth semester of                     studying Games Engineering

Engine:     Unreal

Language: C++, Slate UI Framework

Team:       2 People

Duration:   1 Semester

Details and Takeaways:

For the second major project, Games Engineering students are tasked to create a plugin or tool that enhances the game development workflow. In a previous project, I've built a movement mechanic that depends on many physic variables. Balancing the mechanic while keeping other game systems in mind required a lot of trial and error and time. Inspired by that, we came up with the concept of a plugin that allows the user to balance a game while playing it through the editor. Furthermore, I decided to expand my knowledge about game engines and C++ by going with Unreal instead of Unity.

​

My main responsibility was building a user interface based on our requirements for the plugin. One of these requirements was that the UI is always usable, including while playing the game through the editor. Because of this, the user interface was built using the Slate UI Framework instead of UMG or editor utility widgets. The Slate UI Framework utilizes C++ and a declarative syntax and was largely used to build the UI of the Unreal Engine's editor itself. Unreal offers a few tutorials for Slate and recommends learning the framework by studying the engine's code for the editor's UI. This was a challenge but also a large learning opportunity. I've learned to navigate a large codebase and got used to reading unfamiliar code to inform myself about problems.

  • Conception of the Plugin

  • Building the User Interface

  • Managing communication between the UI and the data layer of the plugin

  • Collaboration on the management of the software structure of the plugin

Main Responsibilities

Trailer:

The User Interface:

BH_UI2.PNG

The UI lets the user group variables from multiple scripts into variable-sets and name them after the game feature they relate to. Here: The player and the level generation

bottom of page