Save The Dinos
Group project. A game for making revalidation fun for children that suffer from DCD. for more gifs and images: http://rubenvandermeersch.me/projects/Matti-DinoGame.php
SaveTheDinos and Matti
The matti is a device created to help children recover from DCD. The matt contains 15 by 15 pressure plates and leds, it comes with an online platform to track the revalidation exercises. In hopes of making the revalidation therapy for kids fun, the creators of the matt collaborated with DAE to create a for the device. I and others of my team chose this task for Group Projects in my 5th semester. This game was made by a team of five people (two programmers, two artist and one IGP student) in a span of 10 weeks with each member working fulltime on the project.
After 10 weeks of hard work and presentation in front of a jury, the game will be picked up and used for the matti-program!
In this project I took the leading role upon myself when I realised the project wasn't faring well. I did my best to raise the spirits by combining everyones work regulary and to create the best possible outcome, with the resources and willpower available. I was happy that in the end all stakeholders involved were satisfied with the outcome, now I hope that the game helps these children through their therapy in a playful and fun way.
Communication with the Matti.
A great deal of my time was spent on an performant and easy to use communication for the matti to speed up development for the other members of the team. On the highest level the user can use a manager to create rectangles in a 2D space that represents the matt. This manager will gather all pressure values from the communicator and calculate for each object created whether it was pressed or not. These rectangles can be coloured fully or just the borders. Effects can be applied to them such as a 'Lava' effect. To change the leds, the manager creates a texture based on the colours and layers of all its objects and checks whether any value has changed since last update. If that is the case, the communicator will send this texture to the device and the texture will be displayed on the matt.
Other features: Flipbooks,Calibration, Texture Display, Threaded communication, Layer system.
I wrote one of the three main obstacles in the game. For this obstacle I also created a special behaviour for the dinosaurs that are crossing it.
Saving and loading
I data for the saving and loading of the game, it internally savess highscore (Which are sadly never shown in the game). Users profiles with their game settings and rescued dinos.
I implemened the level timer which is displayed by UI and the lava's reach in the puzzle view. An optional mode is that platforms break down after having walked on them, making every decision definitive. I also put timers on the obstacles which are calculated specifically for how difficult the user made each obstacle through the settings.
Main Menu AI
I wrote a simple AI for the collected dinos that would walk around in the main menu. The AI has an amount of energy it can spend into running or walking (Depending on how far the wander destination is.) and picking up sticks. When the dino runs out of energy during an activity or notices that its energy is low after an activity, it will drop everything (Including the stick) and go to sleep. When a level is started, they will look at the volcano and run when it erupts (regardless of energy). A funny thing I tried here was to contain all logic for its behaviour in the animator. Its entire behaviour was ridden in statescripts added to the statemachine state. This seemed like a fun idea to try out as the visual aspect of unity's animation system is basic and clear. This makes transitions easy to visualize and oversee. For coding it is less interesting and even a minus as you don't have the benefits of a monobehaviour and being part of the prefab entity. The lesson concluded out of this is that if I want this visual aspect benefit, I should write a custom tool to support this. A part of the AI had to be scrapped as it the dino would be swimming in the lake in the scene every now and then, but the water material made it look odd and due to lack of time we had to scrap it.