Quack Quest

Quack Quest

An immersive game experience

An immersive game experience

2 weeks sprint, immersing in unfamiliar technologies, creating a fun challenging game.

team size: 5

team size: 5

MULTIDISCIPLINARY TEAM

MULTIDISCIPLINARY TEAM

PROTOTYPING

PROTOTYPING

4

/4

duck mockup
duck mockup

My Role

I mainly contributed on the technical side: Coding and assembling the Arduino, sending the user input to Godot (which wasn't natively possible) and learning projection mapping. Since everything was new it was a fun challenge that thought me to build, break and adapt.

Impact

Immersive physical game Delighted expo visitors

Project Scope

2 weeks

Video Walkthrough

Case Study

Problem

Within 2 weeks, being assigned 4 random team members, we were tasked to experiment with new technologies to create a playful interaction.


Solution

We ended up building a fun game in Godot that receives user input from an Arduino through capacitive touch sensors. The game concept: As a duck mum, rescue your baby ducklings that got lost in a challenging lake maze. Users had to walk like ducks to move the character...



Process

Getting Arduino to work

We had some classes teaching the basics, but this was new technology for me. During the lectures I was fascinated by the capacitive touch sensors. Just getting near a wire and getting a signal? Very cool. So, I wanted to incorporate it in our project.

Initially, the sensors were giving inaccurate readings and had high fluctuations, so I implemented a new Chip MPR121 and got into understanding the new code.


Godot doesn’t inherently support getting signals from Arduino, so it was a struggle in itself to get them to communicate together. We used a C# script and overcoming the issues together was really fun.


Coding the Maze

While my team members were working on mini-games, I wanted to make the maze. Initially I thought to make it from scratch, but a teacher recommended me to use one that is already online, since surely someone would’ve done that before.
So, I followed this tutorial.

Interesting thing about this was that the maze is randomly generated each time. This made it a bit harder for me to later place the Lillys/Babyducks. Since I followed the tutorial I had to really understand the code in order to randomly generate only 3 baby duck sprites. This was challenging but with some prior coding experience, doable.

After building the maze, I was already able to make the Player walk around with Arduino Input!


Struggling with Projection Mapping

I tried to download MadMapper, but for some reason it didn’t want to be installed.
So, I opted for another free program called HeavyM2. This posed the problem that no one used this before and couldn’t help me so I needed to learn this program too and somehow figure out how to livestream my screen to the program and then to the projector.

Initially I tried - like it was told to do in MadMapper - to use a virtual camera in OBS.
And for some reason that didn’t work either.
So I did some digging and turns out I had to use a Spout Stream → I installed a plugin in OBS and this eventually worked, also in HeavyM2. There were only very limited tutorials online, but in the end I managed to set everything up.



The first working Setup

We now were able to navigate the maze by touching the cables of the Arduino and test it. We could see the game on the ground. Well not really... it was too bright.
So, we built this very professional looking light protection device.




The Final Product at the Expo

At the end of the 2 weeks, we had a big expo where every team showed off their results. We invite the user to play the role of a duck mum that has lost her 3 baby ducklings in a lake themed maze. The player will be searching the maze and has to beat a mini game for each duckling they find.

Interactivity is provoked by the unique character movement: in order to move the duck mum, the user has to alternate steps on dedicated tiles on the ground, so just like a duck waddles.

They can change the direction the character is facing with 4 arrow tiles on a table in front of them. They see the game projected on the ground in front of this table on the ground.