Unreal Engine City Building Tool
Project File - Spec Docs In README w/ video Guides Link to heading
TriCount: Dependant on use. Link to heading
FPS: ~80 on A RTX4070 Mobile Chip while using tools Link to heading
Ideation: Link to heading
Superposition: Link to heading
I’ll start by explaining my capstone project at Monash. Essentially, it’s a first-person shooter incorporating Rougelike elements and a boss rush mode. We’re currently designing the first level, which is set in a city. And so to make this process easier, I decided to create a tool that would help design a city by creating road networks.
Tool Inspirations: Link to heading
Road Tools from Cities: Skylines and Cities: Skylines 2
Resources: Link to heading
An experimental and Early Access version of Unreal 5.7 was used to develop this, as it included new PCG nodes that helped segment splines and interpret their segments via PCG loops. This helped create the Pathfinding between these nodes when enabled.
PCG was also much easier to use thanks to many quality-of-life updates in this version, such as colour-coded networking and the introduction of custom input parameters in PCG nodes.
Further improvements were used to determine the assignment of meshes to spline mesh actors, which were added in this version of PCG.
Software: Link to heading
Just Unreal Engine was used for this.
Tutorials: Link to heading
The Unreal Engine 5.7 Roadmap was used to reference the effect of new nodes in the PCG graph.
Many of the “Procedural Minds’” Tutorials helped in obtaining an understanding of PCG and attempting the Pathfinding of the roads. These included:
- The New Unreal Engine 5.7 Polygon 2D PCG Nodes Are AMAZING!
- A PCG User’s Take on UE 5.7 Roadmap!
- Create a Procedural Cave Using PCG and Geometry Scripting in UE5!
- Starting Out With PCG? Watch This First to Understand the Basics!
- You Can Use This New 5.5 PCG Feature to Generate 3D Dungeon Layouts
I also looked at CityBLD, a tool that used map data to generate cities.
I explored Geometry Scripting and gained a better understanding of how it works by going through the Unreal Engine documentation.
I also used the Unreal Engine Scriptable Tool Plugin, which I saw in this Unreal Fest 2024 presentation.
Models: Link to heading
Generated by the tool only.
My Favourite Part - RoadMesh Generator Tool: Link to heading
This tool was my favourite because I learnt how to use Custom structs, Geometry Scripting, and the Scriptable tools plugin all in one. This was an entertaining tool to make, and it is a technically superb piece of the toolkit. I’m delighted with how I handled the data and how I stored all the generated data in the data table in the tool’s parent directory, so that, if anyone needs them, they can access the exact metrics, which asset, and where these meshes are stored.
This time, I have had a much improved understanding of blueprints in general. Throughout this, I have recognised how useful the Editor Scriptable Tools are and also how practical geometry scripting is. Moreover, I really enjoyed learning about structures, in blueprint, as I had no idea such a practical implementation of data management existed for use in the engine.
Future Improvements: Link to heading
As for future improvements, I really struggled with getting the intersections working, and I will continue working on this project after this unit to implement it in my Capstone project. So I am going to list the features I consider essential.
- Completed grid tool
- Intersection calculation and generation based on road information (PCG and Geometry Script, custom structs)
- Generation of polygon 2D (UE5.7 data for PCG) sections, such as to use grammar for modular building placement within grids and custom areas.
- Improved handling of circular curbs, as currently it’s forced to be square.
- More Cohesive Road Implementation with the click tool to enforce the use of Data Structures.
- The Road Click generator was made in 5.6 and was not updated to work with data structures.