Procedural Coastline Generation Tool in Unreal Engine | Game
A Wave Function Collapse (WFC)-based tool for artists and designers to generate island coastlines procedurally.

๐ About the Project
This project was made in a team of 12 students(4 programmers, 3 designers and 5 artists). 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.



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.



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.

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