The Games Tech module in my second year at uni was a 2-term module using C++ to create an Unreal Engine 5 tool aiming to aid in the game development process. I created a Dynamic Graph Generator using L-Systems and Databases which can be used to create level layouts with points of interest and paths between them.
We were tasked with choosing 3 topics which were covered in the first term and put them together to create a useful plugin for Unreal Engine devs to use when making games. My three chosen topics were:
• Databases
• Graphs
• L-Systems
This tool firstly uses L-Systems to generate a structure which can be expanded on and grow out to the user's needs. A graph is generated by grouping together points from the L-System to create Nodes, depending on the number of points around a randomly chosen point. Player information is stored in a database, along with the L-System data and Graph data. The L-System Data table is linked to the L-System Rules table using a foreign ID with a one-to-many relationship, as each rule can be used in multiple L-Systems, but each L-System can have only one rule. The player's movement data can be read from the database and affect the complexity of the next iterations of the L-System and graph.
I faced some problems when trying to create an editor widget for the tool so it can be used in-editor. I tried for many hours to set up a UI window to interact with the different parts of the tool, but couldn't get it to work in the end. I got around this by using UE5's UI to create an overlay for the player to interact with the plugin, however this means it can only be used in runtime.