Inspiration

Most sane people would agree that cats are cool and cute right?? But curious and mischievous too, however what if they were more 🪄 magical than we could ever imagine 🤔?

The inspiration for this game project came from Benjamin, whilst late night doomscrolling IG reels.. His gaze rested upon a quirky animation of a cat from a Russian short called "Tales of moonlight" (1968), in which a cute cat accidentally pushes over its owner's reading light, and feeling sorry for the owner no longer being able to read at night. The cat leaps up into the atmosphere and into space, where it proceeds to collect ✨ m a g i c a l ✨ stardust in a jar to "light up the night" so the owner can continue to read.

This game ponders the question of what if the owner and turned against his own cat for a simple mistake but make it magic 🧝‍♂️🧚‍♂️ themed of course... We hope you enjoy the game or at least the ideas, art, or music.

( WE recommend you watch the short which will be linked below.)

What it does

The project is a game which allows for a player to control a cat with accurate kinematics. Upon pressing a button, a force is applied to the cat in the corresponding direction which accelerates the cat. The enemies attempt to home in on the cat for a given time period before being deallocated in memory by a worker thread which handles this process.

The cat, as it's velocity increases, accumulates kinetic energy (KE). Upon an amount of KE being accumulated, the player can press spacebar in order to wipe the map clean of enemies. However it will deplete the accumulated KE.

Each enemy type poses different challenges, such as their dimensions and speed, in order to force the player to plan their movement to avoid finding themselves trapped. Were an enemy to collide with the player, the player will despawn.

How we built it:

The game was built entirely without the use of a game engine. It is hard coded in C++, using memory management to enable multiple threads to operate on data structures which handle the running of the game with minimal delay. The rendering of images, and playing of audio, was achieved by the use of a game library known as Raylib.h. The artwork is custom made by a team of 3 artists (Louis, Raffi, and Romero) and the music was made by Raffi.

Challenges we ran into:

1) Handling manual memory allocation and pointer ownership. 2) Multithreading race conditions and deadlock between multiple worker threads and the main thread. 3) Making animation look fluid & natural.

Accomplishments that we're proud of

1) Physics is accurate. It functions by applying a force in a given direction which in turn impacts a velocity which impacts the position vector. 2) Pixel art work is entirely custom: made by Romero and Louis. 3) No game engine was used. The game is entirely coded in C++ using a game library called Raylib. 4) Testing frame animations on Aseprite. 5) CUSTOM music/audio.

What we learned:

How to use Aseprite and Raylib.

What's next for Working title cat game:

Uhhhh...

Built With

  • aseprite
  • c++
  • raylib
Share this project:

Updates