Crazy Maze

Crazy Maze is a maze which does not follow the traditional rules of euclidean geometry.

Goal

I wanted the user to become increasingly confused and/or baffled as they explore the maze, and completely lose their sense of place and direction.

Method

The maze consists of a set of distinct rooms, each of which contain a number of hallways leading to other rooms chosen at random.

In order to display this, the game draws only the current room, its neighbors, and the hallways connecting them. The room shapes are designed carefully so that the player never sees evidence of this sleight-of-hand.

I also added a trail of breadcrumbs behind the user. This makes it much more obvious whether they've been in a room before.

Novelty

Noneuclidean effects arise when, for example, a user goes north twice and ends up in the same room they started in. Similarly, the user could make a complete circle and end up in a different place than they started. Sometimes, a room can contain a hallway leading to itself (the easiest way to see this is to compile with NUM_ROOMS set to 1).

Results

Most users do get thoroughly lost, but it's not always clear whether this is due to the noneuclidean effects or because the rooms are oddly shaped. It might be more effective if the rooms were square.

I think the breadcrumbs were a crucial element: without them, the user may never know whether they've been in a room before.

Rooms that connect to themselves are a neat effect, but also pretty rare. The game might be better if the maze-generating code were tweaked to make this happen more often.