A downloadable game

Dissertation        Github        Blog

Summary

This project demonstrates the integration of procedural generation, gameplay systems, and narrative design into a cohesive prototype, with a strong technical focus on real‑time terrain systems.

Abstract

The Call of the Elders is an open‑world exploration and survival game developed in Unreal Engine 5, set within a procedurally generated prehistoric environment. The project investigates the integration of infinite terrain generation, narrative progression, and player‑driven exploration using advanced techniques such as Marching Cubes, voxel data structures, and triplanar texture mapping. The game places the player in the role of a time‑displaced scientist tasked with restoring a decaying world by locating laboratories, defeating hostile enemies, and awakening three elder dinosaurs, each of which returns life and colour to the environment.

A primary focus of the project is the design and implementation of a fully deformable, infinite terrain system using chunk‑based generation. Terrain is generated through layered noise functions and enhanced by biome systems inspired by existing titles such as Minecraft and Astroneer. These systems enable diverse landscapes, underground cave networks, and resource distribution that supports player progression. The project also explores performance considerations, including mesh generation bottlenecks and potential optimisation strategies.

Alongside world generation, the project implements core gameplay mechanics including terrain manipulation, crafting, combat, enemy AI, and procedural structure placement. Laboratories are key for the narrative and are used as gameplay locations, where players fight enemies and progress the story by freeing captured elders. 

Overall, the project demonstrates the possibility of combining procedural generation techniques with narrative‑driven gameplay in a seamless open‑world environment, while contributing practical insights into the implementation of real‑time terrain systems in Unreal Engine 5.

What I Learned

  • Translating a theoretical algorithm (Marching Cubes) into a stable, real-time system, including handling mesh data and optimisation challenges
  • Applying advanced procedural generation techniques to create complex, layered systems that produce believable and varied terrain and environments
  • Developing a deeper, practical understanding of Unreal Engine systems, from low-level C++ to higher-level tools like Blueprints and AI behaviour trees
  • Gaining confidence in integrating multiple systems into a cohesive whole, ensuring gameplay, world generation, and interaction systems work seamlessly together

Tech & Tools

  • Unreal Engine 5 (C++ & Blueprints)
  • Marching Cubes algorithm
  • Multi Layer Perlin Noise for both terrain and biomes(2D/3D)
  • Behaviour Trees (AI)
  • Triplanar mapping (no UVs)
  • Python tool (Minecraft structure importing)

Key Features

Infinite Procedural World

  • Chunk‑based terrain generation around the player
  • Seamless streaming with chunk reuse
  • World generation using seeds
  • Saving chunks in memory 
    • Moving them to storage 

Marching Cubes Terrain

  • Smooth, organic terrain 
  • Supports caves, overhangs, and cliffs
  • Fully destructible and editable in real time

Biomes & World Variety

  • Multi-noise biome system (temperature, humidity, continentalness, erosion, peaks & valleys, etc.)
  • 10 distinct biomes with unique:
  • Surface materials
  • Structures (trees, rocks)
  • Resource distribution

Caves & Resources

  • 3D Perlin noise cave generation
  • Height-based ore spawning with clustering
  • Encourages vertical exploration

Dynamic Water System

  • Marching‑cubes based water
  • Flows dynamically:
    • Downward + sideways
    • Across chunks
  • Reacts to terrain changes

Gameplay Systems

  • Modular combat system with combos and hit feedback
  • Crafting and inventory system
  • Weapon stats affect both combat and terrain interaction

Enemy AI

  • Behaviour Tree system (roam → chase → attack)
  • Sight detection and distance-based freezing

Procedural Structures

  • Labs generated using a ring-based placement system
  • Terrain flattening for placement
  • Integrated into exploration and progression


More information about development, design and narrative for the project can be found in my dissertation, blog posts and GitHub repository found at the top of the page

Development log

View all posts