A downloadable game

Unity GitHub: https://github.com/JoshuaOliver99/Unity_VoxelKeeper

Unreal GitHub: https://github.com/JoshuaOliver99/Unreal_VoxelKeeper

Voxel Keeper (VK) is a 3D voxel recreation of 97's Dungeon Keeper which aims to stay faithful to the grungy atmosphere and tongue-in-cheek humour.

Custom Voxel World

For a while now I worked on creating a voxel terrain generator within Unity. The idea was that this could become a free Unity Asset Store item, which featured a level editor.

My current focus is C++ upskilling, so my plan is to port any existing Unity prototypes to Unreal Engine. Work on the Unity branch of the project has come to a halt for the time being as this plugin was eating too much time and detracting from the project as a whole.


Procedural Generation:

The implementation of this voxel world produces diverse biomes, water bodies, and trees. The generation process employs several layers of Perlin noise, which are blended together using domain warping. All the generated content is created asynchronously and can be edited during runtime.


Data Persistence:

Saving and loading are partially implemented.  All data saves currently, which for obvious reasons is very bad. To improve this, the sparse voxel octrees technique will be implemented where only essential data such as edited voxels shall save and feed back into the world generator.


Unity Editor Tools:

My implementation aims to enable scene-view in-editor level creation. To achieve this, I had to create editor scripts and modify my original code to utilize C# async functions instead of Unity coroutines.


Unreal Voxel Plugin

Since moving my focus to the Unreal branch of this project, I've identified a seemingly feasible voxel plugin to suit this project. 

The question lingering now is: will I produce my own world or not?

Right now, this it's hard to answer. I am playing with Unreal Voxel Plugin Free to assess its feasibility. If this plugin is sufficient, it makes sense to use it for me, I see little point (in VK terms,) in reinventing the wheel when I could already be standing on the shoulders of giants.

Unreal Voxel Plugin: https://voxelplugin.com/


AI

Producing interesting AI is a huge focus of this project. To achieve alive feeling agents I've chosen to adopt a utility-based AI system. This choice was made to lean more into the minion management side of Dungeon Keeper and take inspiration from the Sims franchise.


Player Abilities

The enhanced Input System is used for invoking player actions. I find it easiest to refer to the player's abilities by splitting them into the following four categories.


First-Person Character Controller

This Character Controller is a standardised controller s used when taking possession of creatures in gameplay. This controller invokes AI Actions such as movement.


God-Perspective Character Controller

A first-person controller similar to that used within the viewport of many 3D applications. This controller allows for movement confined only to the bounds of the world and handles primary and secondary player cursor actions such as selecting terrain for mining and interacting with build UI.


World Actions

World Actions are functions which cause alteration events within the world, such as causing an Actor to spawn such as when a spell is used, or a voxel terrain modification when a voxel is mined or a room is created.


Character Actions

Character Actions are actions which influence the state or behaviour of a Character, AI or Player. All First-Person Character Controller actions cause Character Actions while only the cursor actions of the God-Perspective controller invoke Character Actions, such as a slap.

Leave a comment

Log in with itch.io to leave a comment.