Main_Menu_no_logo

Fleur’s Fabel

Fleur’s Fabel is a serious game that I worked on during my internship at Gamelab East Foundation, which is a foundation with the goal of connecting different parties to get new perspectives on social and technological issues.

The game was made for the city of Enschede, which gives an 8-week-long training to help children aged 10-14 y/o develop their social skills. Some topics include recognizing emotions, reading body language, and clearly stating your boundaries. Below you can see the trailer for the game. Since the game is made for Dutch children, we made everything in Dutch.

My role during the internship

During the internship I had the role of lead programmer, which put me in charge of the the programmers. This was quite a challenge, since I have never had a leadership position in a project before. Because of this, the internship was a really good learning experience for me since I didn’t only get more programming experience, but also a lot of experience in soft skills like communication, teamwork, planning and time management. All of this made me grow a lot as a proffesional

Game Overview

The game is made with Unity 2020.3.21f1 and C#. We decided to use Unity because all of our team members had the most experience using Unity and basically no experience using game engines like Unreal Engine or Godot.

The target platform is windows PC. The target platform was already deterimend by our client, so we didn’t really have a say in this decision. We did think (in hindsight) that it might have been better to push for mobile as a target platform, because not all households have a PC or laptop but do have a phone or tablet.

For version control, we used Git, Git LTS and GitHub. This decision was also already determined by Gamelab itself. I have a little experience using Perforce for version control, but I do prefer Git. If there was a choice, I would have chosen for Git anyway.

Feature Overview

Below is an overview of the mechanics and features that I made.

  • Loading Screen
  • Dialogue System using Ink
  • Sound System using FMOD
  • Emotion Shrine
  • Data Gathering System
  • Fix a lot of bugs ;p

Loading Screen

Somewhere in the middle of the development we noticed that when we would switch scenes, the game would freeze for a while. For me, this was the moment to implement loading screens to cover up the game freeze and to give the player feedback to what is happening.

When I started working on this system, I thought that it was going to be more difficult than it actually ended up being. Unity has a system that you can load multiple scenes at the same time LoadSceneAsync.

When the game starts, it first loads a scene that only has a canvas with the loading screen art and it also loads the main menu scene asynchronously, so that both scenes are active at the same time.

When a new scene needs to be loaded, I first set the loading screen art to active so that it covers the entire screen. Once that is done, the current scene gets unloaded and the new scene get loaded asynchronously. This way, the loading screen stays active and the scenes can switch without any issues. After loading the new scene, the loading screen itselfs gets deactivated and the player can then play in the new level.

As you can see in the picture, there’s a to do note to force the loading screen to be active for at least  3-5 seconds. The reason for that was that when testing the loading screen it would sometimes be there for a very short amount of time. So, it would be on the screen for like 0.1 seconds which I thought could get very annoying if it happens multiple times. To prevent that, I wanted to force the loading screen to stay active for atleast 3-5 seconds, so that it wouldn’t flash on your screen.

I never ended up implementing it, because I discussed it with my team members and most of them didn’t think it was a good idea.

Dialogue System

WIP

Sound System

WIP

Emotion Shrine

WIP

Data Gathering

WIP