Day After Day

Animated GIF – please click to play.
Animated GIF – please click to play.

Day After Day started life as a game jam entry, the theme being “one room”.

I found the idea of creating an interesting game in a single area intruinging and decided to continue developing it as a full project.

In Day After Day players advance through a single room at different time periods in their life uncovering what happened at each point and how it all ties together.

Mechanically players will have to avoid poorly lit areas. The flashlight, curtains that can be pulled open and various lights and lamps are all available to combat the lack of light.

This is a work in progress project.

Switching Rooms

The level players navigate is a repeating room, every time the player exits the room they enter it back where they started. This is designed to make the player question the rules of the world, to not trust what is happening and make them feel uncomfortable.

Technically this is accomplished through a circle of rooms. Between each room is a corridor that contains a trigger volume. As the player passes through trigger volumes in the corridors between the rooms a “room set” is moved to the room the player is approaching. This allows me to swap what rooms the player encounters making sure it feels as if the player is moving between a range of different rooms.

A room setup, each room is a collection of assets in a single prefab. These are kept out of the play area and are swapped in at run time. I used this technique to avoid the additional cost of instantiating and destroying.


  1. Four variables each storing the a collision of a trigger volume.
  2. An array of “spawn points” (no longer actual spawners) these are points in the empty rooms of the play area, and are used as the location to swap in different room sets.
  3. An array that contains each room set prefab in the world.
  4. This is the vector co-ordinates of the position of the room sets out of the play area, when one room set is swapped for another this is where the room set no longer used is returned to.
  5. An int that tracks the last room set to have moved into the play area.
  6. “RoomSpawner” is the core function of this class. Two ints are passed in,”room” denotes which empty room the player is in within the level, set to spawn denotes which room set to switch in. ┬áThe function then moves the room set to the empty room it is required in and rotates it according. This function is called from another class which tracks what room the player is in and what room set should be moved in.
  7. This function moves a specific room set back to the location outside of the play space.
  8. This function moves a the last room set spawned back to the location outside of the play space.


The empty play area that rooms are swapped into.