This is a recreation of an adventure game I used to play a lot of when I was younger. The goal was to make a 3D representation of the game world using the original 2D sprites.
These are the following programs I used to make the voxel adventure game.
- Magicavoxel – Creating Voxel Assets
- Blender – Editing Assets and Materials
- Unity – Creating real time functionality
Retro Voxel Style
Using Magicavoxel I took the original 2D sprites from the game and used the shading within the sprites to determine the depth of the voxel model. The tiles were kept as squares to the size of 1 unit to allow easy placement in Unity. I would then export the voxel model as an obj to be imported into Blender so I could convert the materials and optimise the model vertices before importing them into Unity.
Simulating the controls of the original game the player could move in four directions and had two attack styles. This was done using a custom controller I developed that removed physics from the controller to give the character a snappy feel of the original game.
Wanting to learn more about networking I implemented very basic networking system where multiple players could connect to a host world and interact with the environment and each other.
The over world of the game was created using a file that had the locations the sprites represented as two character identifiers each separated by a space. This file was loaded into a function that split the text file by the spaces and new lines into an array. The array was then looped over using the identifiers in each object to determine which model to load.
The original game had 16×11 tiles per screen, and 16×8 screens, that would mean that there were 22,528 individual objects I would have had to place. This was my biggest drive to develop a function to create the over world saving a huge amount of time and effort.
The dungeon tiles were placed manually since they were created to one unit they allowed easier placement.
During this project attempted a few skills I had little knowledge in like developing 3D models, coding in C# and the Unity Program. I am really impressed with the end result of the project. Though it never did become a full game, it was a great way to try something new and pick up new skills on the way.