Cubo's Adventure Project Page
Core Goals
• Relevance: Design and Implement a mechanic relevant to the theme of the GMTK24 Game Jam.
• Easy & Quick: Create a small game jam project that was Easy and Quick to learn the main mechanic.
• Kid Friendly: Create the project so that kids are able to play by considering difficulty and graphics.
Focus:
Create a kid friendly prototype for the GMTK24 Game Jam.

Date:
August 16th 2024 - August 20th 2024.

Engine:
Unity.

Language:
C#.
Pre-Production
CTHULHU'S ESCAPE Gameplay.
CTHULHU'S ESCAPE Gameplay.
Feeding Frenzy Gameplay.
Feeding Frenzy Gameplay.
Card Combat from Boy-Man:Descent into the Pit of Sorrows.
Card Combat from Boy-Man:Descent into the Pit of Sorrows.
Character References.
Character References.
Level Sketches for tutorial
Level Sketches for tutorial
The Idea
When the theme got announced I was currently at work delivering hot foods to customers and didn't finish until Midnight so I had plenty of time to come up with an idea, so a few hours later and I had nothing, then when I finished work I still had nothing. I was about to give up when I remembered an old Mechanic I made for a game jam that involved scaling (CTHULHU'S ESCAPE, 2021) and then it came to me why not modify the mechanic a little and apply it to a 2D side scroller and rather than a dark horror type project make it a Kid Friendly Game.

The Modification
In CTHULHU'S ESCAPE the growing mechanic was a close replica to the mechanic in Feeding Frenzy (Feeding Frenzy, 2004) where you need to eat to grow, in this version I needed a way that would allow the player to change the scale of the player whether that be smaller, bigger or longer. It wasn't long before I started thinking of the Boy-Man Project I worked on (Boy-Man: Descent into the Pit of Sorrows, 2023) where the combat for the game used cards and thought that would be a good idea, 3 cards to change the scale of the main character.

The Art Style
I Knew from the start I wanted to make this project kid friendly so before recruiting my friend to do the art side of things I gathered some references for the character which had an art style I wanted for my character, After recruiting my friend I sent over the references I found and started working on the technical side of the project while he was a work making a character.

Quick Level Design
While at work the next day when it got quiet near the end of my shift I used the Notes app on my IPhone to quickly sketch out level ideas as they came into my head, I needed to think of ways for the character to need to change its size and the idea of floating platforms being in the way to prevent continuation and gaps in between the floor tiles which ultimately would cause the player to fail and need to restart.


Production
The Main Mechanic
Scriptable Objects
I remember watching an old brackey's video when I was creating the card mechanic for Boy-Man, and it was the first time I used Scriptable Objects and ever since ive used them when I need them so when it came to implementing the card mechanic it was no surprise I decided to use them.

I first started by creating an enum variable to hold all the abilities the player would be able to use and create a variable of the enum so it was easy to just create the card asset and choose what ability I wanted the card to do from the drop down.

I then created a method for using the ability, checking what the ability was and what to do when the method was called. 

The Main Card Script
After creating the scriptable object for the cards abilities I then started working on the main script for the cards which involved "Using the Ability", When to "enlarge the card" and when to "shrink the card".

Using the Ability
I created a method for using the ability when the player decides to which works by finding the Character in the scene and calling the scriptable objects "Use Ability" method and sending over the character in case it is needed for animation the character from square to rectangle.

DOTWEEN
I decided to use a plugin that I discovered during development of Boy-Man which allows the developer to change the position, scale and rotation of a GameObject smoothly.
This was greatly used for shrinking and enlarging the cards smoothly when needed.
Card Manager
I created the Card Manager script to manage when the cards were getting "switched between each other", "scaling the correct card" and using the "correct card".

Controls
I created a method to check if the player was pressing the 'A' or 'D' key which either incremented or decrement the selectedIndex variable.
I then added parameters so it only went between 1,2 and 3 as there was only going to be 3 cards in game.

Scale Cards
I then created a method which loops through a fixed array of the cards and makes calls the shrinking method in the card script.
It then gets the selected card and called the enlargement method in the cards script.

Use Card
Then came the fun part creating the official method for using the card, I started by checking if the player has pressed the 'Return Key' and if they can use the ability.
It then disables the player from using the card and calls the 'Use Ability' method on the card script and uses DOTWEEN to move the card out of view before returning it to its proper place allowing the player to use the cards again.
The Levels
Tutorial Level 1

While I had been working on the Main Mechanic and Working my Main Job I had sent the Artist my sketches in which he made some quick assets, between them and some from a pack I purchased a while ago the next time I was free I quickly made the levels from the designs I had sketched.
Quick Design for 1st Tutorial Level.
Quick Design for 1st Tutorial Level.
Character Big in finished Tutorial Level.
Character Big in finished Tutorial Level.
Character Small in finished Tutorial Level.
Character Small in finished Tutorial Level.
Tutorial Level 2

When making the second tutorial level the only difference from the sketch to the finished result was adding a platform above the whole in the wall, I did this as between the platform and the floor you can see a resemblance of a rectangle which would subconsciously make the player think use the long card would be best.
Quick Design for Tutorial Level 2.
Quick Design for Tutorial Level 2.
Player Square for Finished Tutorial Level 2.
Player Square for Finished Tutorial Level 2.
Player Rectangle for Finished Tutorial Level 2.
Player Rectangle for Finished Tutorial Level 2.
Tutorial Level 3
Quick Design for Tutorial Level 3.
Quick Design for Tutorial Level 3.
Player Big and Square on Finished Tutorial Level 3.
Player Big and Square on Finished Tutorial Level 3.
Player Small on Finished Tutorial Level 3.
Player Small on Finished Tutorial Level 3.
Player Small and Long on Finished Tutorial Level 3.
Player Small and Long on Finished Tutorial Level 3.
SLOW MO
When I was making the tutorial and having some personal playtest I thought straight away the player was moving too fast to give the player time to think, this was something I wouldnt have minded in the main level to make the experience a little harder but not in the tutorial levels.
By Default I set the players speed to be slow and then I Loaded the Card Script up and updated it to check if the player had used the right amount of cards needed for the level and when they did I upped the speed of the player.
The Main Level
When it came to making the main levels I use obstacles like the ones used in the tutorial levels and with some made changed them a little to make the player either go smaller and smaller or bigger and bigger to get past some platforms.
Quick Design of Tutorial Levels.
Quick Design of Tutorial Levels.
Main Level.
Main Level.
Main Level.
Main Level.
Main Level.
Main Level.
Making the Menu
Quickly near the end of the jam I reused already made assets to create a quick menu which allowed the player to play, check out the controls or quit the game.
Post-Production
Slip Up
After creating the project page on Itch and submitting the project to the jam it wasn't until a few users commented saying there was nothing to download that I started getting concerned after finding out I spent a while trying to find out why as the zip was uploaded.
Until I found out why I uploaded the project to OneDrive and shared the download link on the project page so people could still play.
I eventually figured out it was a problem on my end and it was resolved, I then removed the download link to OneDrive so users could download properly.

Feedback
due to the previous problem not a lot of people played the game so the only feedback I got was from 'ForingSan' who said "Would love it even more if i don't need to go through the tutorial again every time I lose".
Back to Top