A couch co-op party game meant to be enjoyed with 2–4 players. In Dragon Daycare, you take care of feisty baby dragons: keep them happy, well fed and entertained. Nobody wants a room full of angry dragons...
Art team:
- Sara Gordon
- Trisha Lui
- Luka van der Weelen
Dev team:
- Mats Roelandt
- Cosmo Verstraeten
My roles during this project:
- Programming lead
- Game designer
- Rigging & skinning
- Task UI
- Texturing furnace & bath
- Video editor
Baby dragon rig
Player rig
Parent dragon rig
Furnace
Bath
I personally programmed the player movement & actions, the items and the joystick tasks. The player features 2 state machines, one for the player state (on fire, busy with task, ...) and one for item handling purposes.
The joystick task system also functions with a state machine; a task can be ready, playing, failed or completed. These tasks are completed using motion inputs. Different tasks require a different motion to be completed (circle, swaying motion). To achieve this, the joystick circle is divided into 8 sections. Changes in section are detected and checked against the current required pattern. For the swing motion for example, the pattern code is "45670". Additional bools like if the pattern can ping pong or going through the center is allowed also need to be set. If the player doesn't follow the pattern or stays in the same section too long, the state machine goes to failed state and the players progress for the pattern is reset.
The items feature an item base class which all pickup-able items inherit from, lining out some basic features like when they are able to be picked up and sending out events depending on the type of item.
Initial joystick task prototype
Finished player + item + task prototype
For the game design, we focused on a feeling of fluctuating chaos, having moments of higher and lower stress depending on the time of day. To communicate this to the player, we implemented a clock UI element so players can anticipate events like lunchtime or pickup-time.
We worked with concentric design principles around our throwing mechanic. Since the goal of the project was to make a co-op game, we also implemented a player throwing mechanic so players can help (or troll) each other when on fire or in high stress situations. The table in the middle of the map serves as an obstacle encouraging the players to throw stuff to take care of the dragons' needs quicker.
For the onboarding, we went with a "show don't tell approach". In the beginning of the day, there is some trash on the ground that needs to be cleaned up using a joystick task. This way, the players can practice the tasks in a low stakes situation. The baby dragons also come in one by one, so that players have more time to understand how the needs work. Finally, we had the controls visible on screen and implemented pop ups for the tasks.
During the production, we applied horizontal development, making sure all elements were at the same level of completion before moving on. While it helped give us a clear view of our progress, it made playtesting and discussing the final look of the game harder.
We also ran into a lot of bugs; we were testing stuff with one or two dragons and players, but when we implemented everything with 4 players and 5 dragons, we ran into a lot of issues with event ghosting and overlapping triggers. The project definitely taught me a lot about properly planning out the architecture and event flow. In hindsight we might have been better off implementing a MVP pattern solution.
Pipeline: Photoshop -> Maya (modeling) Blender (rigging, animating) -> Substance painter -> Unity URP