Maze
In Maze, leveraging the characteristic of electronic space that allows spatial information to be created or removed at any time, spaces are implemented by removing areas outside the user's line of sight and regenerating them anew.
Traditional drawings have significant limitations in representing spaces that change in real time. Since the method of generating new corridors better describes the nature of Maze's space, it will be presented here in pseudo code format.
void function PlayMaze():
User user ← new user;
List<SpaceElement> seList ← empty list;
// Initialize the maze and user.
InitializeMaze(user, seList);
while (true):
// Update the maze space based on
// the user's position each frame.
UpdateMaze(user, seList);
void function InitializeMaze(
User user,
List<SpaceElement> seList
):
// Create a corridor
Corridor line ← CreateCorridor();
seList.Add(line);
// Attach corners to both ends of the corridor.
for (corner in line.ExtendCorner()):
seList.Add(corner);
// Place the user on the corridor.
user.Place(line);
void function UpdateMaze(
User user,
List<SpaceElement> seList
):
// Determine the user's position.
SpaceElement e ← user.FindPosition(seList);
if (type of e is Corridor):
// If the user is on a corridor
e.UpdateCorner(user);
else if (type of e is Corner):
// If the user is on a corner
e.UpdateCorridor(user);
This pseudo code is intended to work as follows:

An example implementation can be seen in the following video: