Indie Game Jam: Don’t Wake Up Yet


I took part in the game jam in May of 2022.

Link to itchio game page: https://marios-vas.itch.io/dont-wake-up-yet

Game mechanics/ Systems I implemented:

  • Player Movement (walking, running)
  • Camera Rotation
  • Teleporting
  • Trigger Events
  • Multiple game endings

The teleport mechanic is used in the second ending of the game. The player arrives at a room that is divided in 4 sub-rooms. Each sub-room is connected with each other with a teleport door. When player crosses a teleport door, the player is teleported on top of either the blue or red cube in that room. So the player has to push the red cube to the room of their choice to teleport there and finish the game.

Here is the code of teleport doors:

public class Teleport : MonoBehaviour
{

    public Transform teleportPosition;
   
    private void OnTriggerEnter(Collider other)
    {
        if(other.tag == "Player")
        {

            CharacterController c = other.gameObject.GetComponent<CharacterController>();
            StarterAssets.FirstPersonController f = other.gameObject.GetComponent<StarterAssets.FirstPersonController>();
            c.enabled = false;
            f.enabled = false;
            other.gameObject.transform.position = teleportPosition.position + new Vector3(1,0,0);
            c.enabled = true;
            f.enabled = true;
        }
    }
}

Another mechanic I made is the trigger event mechanism. In the scenes there are walls that when the player crosses them events are triggered (ie. hidden doors open).

Each game finishes when the player touches the gloomy green ball that gives them an answer to their difficulties and struggles. In order for the game to have multiple endings, I made a list that keeps all the magic balls and whenever an endings is triggered I activate the next one and deactivate the current.

public class EndingsAssistant : MonoBehaviour
{
    public List<GameObject> finishList;
    public int index;
    public GameObject currFinish;
    // Start is called before the first frame update
    void Start()
    {
        index = -1;
        NextFinish();
    }

    
    public void NextFinish()
    {
        if (index + 1 < finishList.Count)
        {
            index++;
            currFinish = finishList[index];
            currFinish.SetActive(true);
        }
    }
}

github link to all the code I used for the game: https://github.com/coffee-enthusiast/DontWakeUpYet