Project

Procedural Coastline Generation Tool in Unreal Engine

A Wave Function Collapse (WFC)-based tool for artists and designers to generate island coastlines procedurally.

Procedural Coastline Generation Tool in Unreal Engine Preview

🎓 About the Project

This project was a collaboration between students at Breda University of Applied Sciences. I focused on creating a procedural coastline generation tool for artists and designers.

The tool was developed using C++ and integrated into Unreal Engine. The initial prototype was built in Unity.

📂 Source Code

This project was hosted on Perforce as part of a collaborative workflow, and the source code is not publicly available.

🛠️ Skills Developed

  • C++ Development: Implemented the tool’s core logic and Unreal Engine integration.
  • Agile Methodology: Worked iteratively in a team, conducting regular stand-ups and sprints.
  • Collaboration: Coordinated with designers and artists to align tool functionality with creative goals.
  • Research Skills: Studied Wave Function Collapse algorithm and implementations to establish feasibility of the tool.
  • Prototyping: Built the initial tool prototype in Unity for rapid testing and feedback.
  • Unreal Engine Workflow: Integrated C++ tools into Unreal Engine and ensured usability for non-programmers.

⚙️ Key Highlights


Tile-Based Input for Procedural Generation

I initially tried using the 2D tile editor in Unreal Engine, but I found Tiled to be much more efficient for the designers and artists.

The tool uses a .tmx file specifying tile types. The system dynamically generates the coastline and mainland tiles that fit together based on the their user defined sockets.
Tiled Input for Procedural Generation
Tiled Input Overview In Engine Procedural Island

Constraint-Based Tile Placement

Designed a WFC algorithm that enables defining 3D tiles and their connections with other tiles using sockets. It also generates all the sockets for rotated tiles if the user enables that setting.
Constraint-Based Tile Placement
In engine procedural Island In Engine Procedural Island

A* Pathfinding for Road Generation


Incorporated an A* pathfinding algorithm to generate roads between specified points. The algorithm avoids obstacle objects, ensuring that roads go around the island's gameplay objectives or props.
A* Pathfinding for Road Generation

🎥 Watch the Trailer

In addition to creating the procedural tool, I also created the trailer for this project.