HTW Berlin, Game Design B.A.
10/2017 to 03/2018 (22 weeks)
3rd semester project
3 team members
Developed with Unity3D
With the third person puzzle platformer BeLight, our main focus was to create an atmospheric game that triggers an emotional response in the player.
The main mechanic of the game centers around light and shadow: Only objects in the light can move or be moved.
The player character, a small moth, has to fix the mechanical micro world he lives in by turning on light sources with lumen, small beings made of light, and this way lightens up his world a bit more level by level.
My role in the project
Together with my team members, I developed ideas in the beginning phase of the project, both regarding visual and
mechanical aspects of the game.
We used mood boards, mock-up sketches, fake screenshots and analog prototyping to visualize our ideas and quickly moved on to digital prototyping to test out possible mechanics.
My main task was programming most of the mechanics from the digital
prototype to the final version, often after conferring with the technical artist in our team.
This included for example the movement of the player character and the lumen and the scripts for the interactions between light sources and all non-static elements in the game.
I also edited and implemented all sounds into the game and created a trailer for our project.
Analog prototyping in the beginning of the project
In my project journal I documented our process and wrote down ideas, for example some of the mock-up sketches when we collected ideas for possible mechanics during the early phase of the project.
I also wrote down problems I came across as well as approaches for solving them. I analysed the code with print output in the console and then went through it frame by frame until I could spot the cause of the bug.
For all non-static objects to regularly check if they are in the light or not, we needed to create a script that checks this as often and as accurately as possible without affecting the performance too much.
We solved this by creating a script that checks every few frames if a raycast starting at the vertices of the object can reach a light source without detecting anything in the way.
If a raycast on one of the vertices was successful, the other vertices would not be checked anymore to improve the performance.
Experience and learnings
During this project, I learned a lot on how to create a captivating atmosphere in a game using limited resources, and how much of an impact sound design and gameplay mechanics actually have
Since the “feel” of a game can be subjective and hard to explain, I got to improve my ability to deduce concrete ideas from vague test player feedback and to explain my own impression more concretely.
A big thank you also goes to my team. Not only was working in this team a lot of fun, but productive team discussions and lots of constructive feedback really created a great and productive work
I‘d really like to continue this project in the future and add some more levels as well as polish it more.