Bedtime Saga

2D Point 'n Click


When playtime is over, it is time for bed. But who can go to sleep without a Bedtime Saga? The problem is, your scientist dad is nowhere to be seen. He’s probably down in his lab…or is he? Discover what your house is like…waaaaay past your bedtime, solve puzzles and find your dad.

Project Details

  • 8 weeks, half time
  • 10 people (5 programmers, 3 artists, 2 level designers)
  • Created using Löve2D Engine
  • Lua

My Contributions

Level Editor

  • Created a standalone Level Editor in Löve2D that our level designers used to create all of our levels in the game.
  • The largest part of the screen was the scene view and the rest was UI for creating and editing objects.
  • I created buttons, input fields, images, and text that was created as tables in factory functions.
  • Objects could be moved by dragging them, using the arrow keys or using the UI.
  • Depth Index could be set to ensure the correct object was rendered on top.
  • Events and combinations could be chosen and were used in the game for interactions.
  • Saving and loading to JSON using a wrapper.

Scene Managment

  • Worked on a scene manager that was used to switch between the different scenes/levels of the game.
  • Loaded, updated & rendered the current scene


  • Move items between the slots.
  • Implemented the ability to place an item on another to combine them.
  • Drag and drop out in the scene to interact with the world.

Pickups (Shared Responsibility)

  • Clicking on items in the world to pick them up and place them in the inventory

GLSL Flashlight Shader

  • Wrote a GLSL Shader that was used for a flashlight throughout the game.
  • The flashlight did not have a linear attenuation, but instead multiple functions that formed the different rings in the light cookie.
  • Scaled the area using values of depth in the different 2D scenes. The further away the mouse position was in the scene, the bigger the lit area was.

Puzzle Support (Shared Responsibility)

  • Worked on a couple of our puzzles together with the other programmers.
  • Scripting the events and progression of the puzzle.
  • Letting the player continue when the puzzle is completed.

“Class” Code Structure

  • Implemented a structure where we used Lua tables as classes to make up for them not existing in Lua. 
  • Objects were tables created through object factories. 

Playing videos (Intro, Outro & Cutscenes)

  • Created a structure to easily play videos using the Löve2D Lua engine.
  • Was used for all the videos in the game.