Product Designer
micro:bit Powered Toy & Game
Finding a way in which kids can play with games that coexist in both the physical and the digital world is not as easy as it may look like. Nowadays, since their early age, kids are surrounded by games that only exploit their capabilities from a digital perspective, leaving behind the chance for them to develop certain motor skills that come from playing with real tangible toys. With that in mind and considering the endless possibilities that combining regular toys with sensors can bring, plane runner is a game that unleashes creativity to take fun, interaction and engagement between both worlds to a higher level.
1. Defining the game
We first started thinking about a way in which a regular toy could be blended with a digital game that has mechanics that are widely known by most kids.
We landed our thoughts into an endless-runner kind of game. Which in essence is a game that moves continuously forward through a hazardous course.
In our case, the player controls a virtual plane with a physical toy plane. The goal of the game is to go as far as possible without crashing. The game is set to work under a limited amount of time that can be increased by collecting packages.
2. Defining the interactions
After defining the general dynamics and mechanics of the game, we divided the interactions that would take place in our project. In general terms, we encompassed them in two categories: physical and virtual interactions. Physical being the ones the user performs with the plane and virtual the ones performed by the virtual plane in-game.
3. Designing the Toy
We designed a toy based on the dimensions of the hand of a kid. We made a 3D model to plan the placement of the electronic components. And we set up the parts to laser-cut it in order to build it.
4. Jumping into the Development
After designing the toy, we started working on the game itself. We decided to develop it using a micro:bit and Unity as the game engine.
Our project takes advantage of most of the sensors that come within the micro:bit (accelerometer, LEDs, buttons). For that reason, we only needed to add a button and a led to proceed with the development as can be seen in the scheme. In general terms, the connection between the micro:bit and the game engine is made using the UART over BLE.
Microbit exposes data to specific characteristics according to the Lancaster BLE Protocol. In case of accelerometer, the bluetoothAccelerometerService available is instantiated in the microbit code to expose it.
Our Unity Script(c#) instantiates the BLE Library, searches for the microbit name and connects to the Device. After establishing connection, our script then subscribes to each characteristic to receive its updates in byte[].
We then process those bytes[] into useful information that can help us send the instructions from the plane to the game
We finally came up with a fully functional game that is set up using low poly assets, an object pooler and an object spawner.
And yes! The game can be controlled with the plane we designed.
* My role: Unity Game Design and Development & micro:bit communication *