Ongoing Personal Project
A series of prototypes in C#/Unity and JavaScript for a 4D game I am working on based on the games Miegakure and Tetraspace. The plan for the game is for the player to solve puzzles within a world with 4 spatial dimensions. The player can move as normal in a 3d plane but has the ability to rotate this plane 90 degrees around them, allowing them to access different parts of the world.
I originally chose JavaScript for the first few 2D/3D prototypes as I had some experience with it and could easily draw lines to the screen, however, I have moved to Unity for the 3D/4D prototypes as I wanted to use a modern video game engine.
Version 1: Cross-Section of a 3D Mesh
The core mechanic of the game.
This calculates and renders a 2D cross-section of a 3D scene.
This allowed me to get an understanding of the maths required
for the project in a simpler scenario (one fewer dimension)
with shapes I could more easily visualise.
Version 2: 2D Game Engine
A 2D game engine in JavaScript.
My aim is to move into a 3D game engine,
most of which represent the game objects using meshes formed of vertices.
Most 2D game engines, however, use sprites,
so I needed a 2D engine which used vertex meshes which I could easily modify.
Version 3: Combination
A platformer game which uses both the 2D Game Engine
and the core rotation mechanic,
so that I could work out how to combine the above two versions
and incorporate the mechanic within a game engine.
Version 4: Cross-Section of a 4D Mesh
For this and future versions I moved to Unity.
This takes the cross-section functionality of previous
versions and applies it to 4D meshes, creating 3D graphics.