Passion project · In development
Procedural Pirates
A boundless, player-driven pirate sandbox where the world is generated, not hand-placed.
- Unreal Engine 5.4
- C++
- HLSL
- PCG
- Fractal Brownian Motion
- Gerstner waves
- Engine
- Unreal Engine 5.4
- Role
- Solo developer
- Status
- In active development
- Focus
- Procedural content generation
Highlights
01
Procedural terrain
Archipelagos are generated on the GPU using Fractal Brownian Motion, so the world is vast, varied and never repeats.
02
Gerstner waves
Ten octaves of Gerstner waves, driven by custom HLSL material nodes, give the ocean realistic crests that react to the environment.
03
Unreal 5.4 PCG town generation
Using the latest Procedural Content Generation tooling, splines describe the layout and whole towns grow along them, each one unique.
The story
My passion
I have always loved pirate and sailing games, ever since classics like Sid Meier's Pirates! and Assassin's Creed IV: Black Flag first sparked a fascination with the open seas and the adventures waiting on them. Now, with years of development experience behind me, I am channelling that passion into a dream project: a fully procedural open-world game built in Unreal Engine 5.4.
The aim is a truly immersive sandbox where players design and customise their own ships, explore a virtually limitless world and choose their own path, whether that is trading or embracing the pirate life. Terrain is generated on the GPU with Fractal Brownian Motion, producing landscapes that feel both dynamic and natural.
The water is just as important. Ten octaves of Gerstner waves, built from custom HLSL nodes, produce an ocean that responds to its environment and carries the whole sense of place. Splines then drive the procedural generation of entire towns, so every settlement is unique and the world feels alive as you explore it.
It is a solo endeavour, but the enthusiasm of friends who have followed the project has been hugely encouraging, and their interest in contributing says a lot about its potential. I cannot wait to see how it evolves as I keep developing and refining it.