
Minigolf Level Editor
Skills Developed
-
Unreal Blueprints
-
Rapid Prototyping
-
Tool Programming
-
QA Testing
-
Project Management
Main Roles
-
Designer
-
Programmer
Overview
For this project, I aimed to create a minigolf game with a level editor in Unreal Engine 5, with the goal of it being approachable for casual players. While this was a complicated task to undertake, with effective time management and planning I was able to successfully create a feature-rich level editor and versus mode.
Local Multiplayer
The multiplayer system has support for up to four local players. I had hoped to support up to 8 players in one lobby, but Unreal’s local multiplayer system only allows four local player slots to be present in one game.
To differentiate players, there are a series of colour options available to choose from before beginning too. Each player has control over their ball’s swing direction and power using the left stick. Pressing A sends the ball in that direction.
The swing power is fed through a float curve. This makes performing weaker shots easier as the player needs to press the stick further than normal to increase their power.


File Management
Level files for the game are saved in a custom struct called “LevelFile”. This contains the level’s pieces, par score, level name, modification date and a boolean for level validation.
When a level is saved, the game takes a picture of the level, saved and named after the modification date. As this is not saved with the save file, it reduced the overall size of a save file, leaving the level icons in the game’s “Saved” folder instead.
Throughout the game, level files are shown with this information. The icon is critical to reminding a player of a specific level, as names are not unique in this system.


Piece Selection
Players are presented with a series of folders or pieces at the bottom of the screen to choose from. I opted for this method as large grids of choices can instill decision paralysis in players. Pieces and folders are set up using Unreal's data asset system. This allows me to expand my game's obejct variety near endlessly, as long as I have the models and assets.




External Tools
Creating each data asset for each piece and folder was very cumbersome. I devised an editor utility widget that would streamline this process for me. This tool allows me to create new data assets with their relevant contents in seconds.
There is also a feature for modifying existing data assets. This system shows me the current contents of a data asset and overwrites previous settings when I press the apply button.


Icon Capture Scene
Since each piece and folder data asset required a unique icon, generating high quality icons of each piece seemed like a daunting task for this project. To solve this problem, I created an additional scene in my project to act as a photo booth to capture icons for pieces quickly. This resulted in a full set of over 50 icons that all were similarly themed in the level editor.
