Overdosed is a game where players play as a cute lab mouse and treat patients by mixing the right medicine.
The game project was developed during my time at Futuregames with a team of 13.
This was my first group project and I get to learn how to work in a team and how to manage a team as a lead programmer.
One notable task I did was working on the carrying object mechanic.
In the game, there are two types of objects that can be carried physically by the player — a flask, or a liquid ingredient
Each type has their own characteristics
However, they both share the same behavior of being carried by the player
So, I created a base class called LabObject
, which is then inherited by two subclasses called FlaskObject
and LiquidObject
.
The player holds a reference to a LabObject
, which an object of type FlaskObject
or LiquidObject
can still be assigned to the reference. Hence, upcasting.
When a station (the places where you interact like the mixing station) gets interacted by the player, it can process what the object the player is holding by downcasting the LabObject
to either a FlashObject
or LiquidObject
.
This is also expandable if there are new types of objects.