4D Game Prototypes

Ongoing Personal Project

Introduction

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.

Images

Current Progress

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.

Plans in the Future

  • Improve Code Quality
  • Add collision detection and physics to the Unity prototype to allow gameplay. Similar to version 3.
  • Increase the speed that the 4D mesh is converted or rendered to 3D.