Babymon

About

Babymon: Daycare Dropoff is a hectic and whimsical babysitting experience where you play as a witch that looks after monster babies while their parents are at work. Tend to all the babies' needs to keep them happy, and try to persist until the day is over and it’s time for them to go home.

Every little monster has its own preferences, such as specific foods or toys, so you need to make sure not to mix things up! Lucky for you, it's all written down in a special monster manual that keeps track of every baby.

Responsibilities

My designated role was Gameplay Programmer, with the main responsibilities of camera movement, player controls and player interactions with the environment. However, as the project grew larger I had to work with events for sound and animation as well.

Camera Movement

The camera follows the player (top down view with a slight angle). The camera moves smoothly by using Vector3.Lerp and the camera also clamps in the x and z directions with Math.Clamp.

I also worked on a camera sweep that was supposed to sweep/zoom in on the player when cooking or doing other interactions (like mini games that were deprecated).


Player Controller

Initially we were set on making a grid based movement, but we changed this half-way into the project. With the physics based movement where rigidbodies are handled I separated the physics to be done in FixedUpdate() and all the inputs were handled in Update().

We decided to have a jump movement which was a bit difficult to get right. The physics by themselves were not that difficult to do, but synchronizing jump and landing sound with the animations and actual movement of the game object took a lot of iterations to get right.

A lot of tuning had to be done in the Unity inspector, and I also added multiple colliders to the player gameobject itself to make it smoother to move around, jump and collide with the environment.

Player Interactions

The player is able to pick up objects and babies (these are two different actions) and a lot of logic had to be used to get different scenarios right.

The main idea was to have a child object to the player that acted as an interactor (“Grabbers”). When the interactor collided with objects certain scenarios would or could be played out. I also had to handle scenarios when multiple objects could be picked up.