Zoodem

Project information

  • Category:University project
  • Project date:2024

My roles in Zoodem

Zoodem is a life simulator with 3 fully fledged AIs.

I was in charge of coding the animal AI, attacks, mixing, and shop. I also had to implement several multiplayer features and the info menu for the totem parts. Lastly, I was very involved with the game design, until I had to focus on programming.

THE GAME DESIGN

The totems

I took part in the early design of the game, until I had to shift my focus to coding. We wanted to make an auto-battler from the start. In order to add depth and replayability to the game we decided to make the troops combinable, since the number of combinations grows exponentially.

We settled for 3 body-parts, since it’s both a reasonable amount of pieces, and a good way to divide a body. The idea was to make each part fill a role. On the one hand, this avoids redundancies and ensures every combination has something interesting. For example:

  • Every head has an attack. This prevents combinations without actions.
  • The flight trait is exclusive to the body.
  • The body normally has the highest health stats, which helps with balancing when mixing parts.
  • The rears’ abilities don’t deal damage.

One more thing we had to consider when designing the game was it had to be accessible to PC and mobile devices, since it was a requirement of the university project.


THE PROGRAMMING

AI
We designed 4 different AIs for the animals, and implemented 3 of them. All of them are controlled by a Utility system that decides which action to take, depending on internal (e.g., health, energy) and external (e.g., time of the day) perceptions. The complex actions (feeding, reproduction and nesting) are composed of behavioural trees.
Utility system for the eagle
Two of the BT for the eagle

OTHER

On top of the AIs, I had to build the underlying systems that made the game possible. For example, animal entities with movement, attacks, stats that could be attacked too. A time system with seasons, temperature, and days, for mating/reproduction, sleep and other purposes.

Finally, to make the simulation quite easier to understand, I made a simple UI with all the general information, that allows to change the game speed. Each animal will also show their current action and status (for example: hungry, hunting) with small icons on top of their health/energy/hunger bars.

Bear and eagle showing different statuses

THE ART

I designed the icons for the animal statuses and times of the day.

Icons representing the times of the day
Icons for Courting, Fleeing, Hunting and Going home statuses