Game Description

Lumen is a 2D game where players interact with their environment to solve puzzles. This is achieved through tapping or swiping objects for moving or rotating them.

The player is presented with a room that has a beam of light. They must interact with objects in the room to direct the light at objectives in the level. Along the way, there are objects the player interacts with to prevent blocking the beam of light. The light activates nodes in the level and when all of the nodes are activated the puzzle is complete.

Development Methodology

Lumen was developed using an Agile development model with Scrum. The team planned milestones for the development of the game and implemented features according to milestone requirements.

Throughout development, the Game Design Document was updated and served as a living document consisting of feature details and projected outcomes from the development team.

Development Specification

Role: Gameplay Programmer

Engine: Unity 2018.1.4f1

Development Time: 3 Months

Team Size: 5

Find the trailer for our game below


  • Created Laser script using line renderer and vector reflections to define beam path
  • Implemented a robust touch controller that enabled swipe detection, tap detection, and drag detection to allow players interaction
  • Created grid-based layout detection for object placement in the scene
  • Created customizable obstacles in-game for Level Designers to leverage and create a quality gameplay experience
  • Implemented UI Systems that allowed both Screen space and world space user interaction
  • Implemented Scene management to allow progression in-game and flow control


Below is an overview of the architecture implemented for Lumen


What went well 🙂

  • Successful pivot on design. Constructive changes implemented based on stakeholder feedback.
  • Team communication and culture.
  • Modular design implementation for levels in game.
  • Rapid Iteration and use of Agile development methodology.

What went wrong 🙁

  • Creating good conveyance was very time consuming and required iteration.
  • Bug fixing took a lot more time than expected.
  • The touch controller needed multiple iterations to achieve the desired results.

What I learned 🙂

  • A good development pipeline needs to be established early to ensure efficient development.
  • Developing input systems require iteration for a good user experience.
  • Validating assets in the game ensure good quality is maintained.
  • Avoiding the “hacky” code in the early stages results in a smoother development process in the long run.
  • Constant updates to GDD allow for the team to be on the same page when implementing features.