Lights Out

Lights Out is a puzzle game, where your objective is to turn off all the lights on the field by strategically clicking on them. When you click on a tile the light there will switch, and the neighbouring lights will switch as well. Every level has a maximum number of clicks needed to turn off all the lights.

Development time 2 weeks Main role Programmer
Team size 1 Tools used Visual Studio, Marmalade, Photoshop
Department size 1 Personal Main Objective To make a game that works on mobile

For this project I chose to make the game Lights Out, because I like games simple, yet challenging, and it gave me the opportunity to spend time on UI design and programming too. I started off by making myself familiar with Marmalade, a platform and program to create games in using C++ and port them to mobile, then I started to render text and sprites on the screen, and worked on getting the user input.

From there on I started working on the game itself, first off making the field and switch mechanics, then rendering them on the screen correctly, generating the levels, scaling them up and down when possible to fit all screens and board sizes, and taking the orientation of the phone into account. The game was playable now, but it progress was not saved, and there was no difficulty level.

After this I created a simple level up system, splash screen, displaying the game’s logo, and then the main menu. The menu had a few buttons, one to continue with the last game, and then a few to start a new game with different difficulty levels. The four difficulty levels are:

  • Easy Mode – a 4×4 field, with default level up system
  • Normal Mode – a 5×5 field with lights off and one, and default level up system
  • Hard Mode – a 6×6 field, triple the amount of moves per level
  • Double Switch Mode – A 5×5 field, but lights need to be tapped twice before they go off

Download: Lights Out.zip (3 KB)
To run the game copy the Lights Out.apk file to your phone and install it. You might need to download a APK installer for this.

I’m quite happy with how many things I managed to create in the time we got for this assignment. I did not continue working on the project afterwards because I didn’t like the Marmalade framework much. If I were to publish this game, I would port it to Java first, as this seemed to be a much easier option – I choose C++ for this assignment because it was more challenging and got you extra points. For Marmalade I also couldn’t find a solution to the “App Permissions”, of which I would like to get rid. Right now when installing the game it asks for permissions about your identity, and WiFi, and a lot of other things that it does not even use. As this is not a published game, I left them as they are now.