Caloop is a mathematical puzzle game. You place segments containg different operators and values on a wheel to form an equation. Once your wheel is full, you give it a spin and hope the result of your stratetgic placement matches the target number.

I worked on caloop as part of a two week long game jam with an artist friend and a composer who I had never worked with before.

We took part in a jam we knew ran a little longer as we wanted to see what we could come up with if we came up with something simple and really tried to polish it as much as we could. We also really wanted to try our hand at something clean and sort of 'graphicy'. The result was Caloop, a maths based puzzle game in which the player must build equations on a wheel to arrive at a target number.

The artist and composer both were using software I had not yet had to work with, so I gained valuable experience in implementing Spine assets into unity for a bunch of the 2D art and also learned how to utilize FMOD within Unity. 

After a slew of positive comments on the jam submission, I'm glad to say I was extremely pleased with the final result and so far I feel Caloop has been the most polished game I have worked on thanks to a solid jam team. 

Yet another thing the player will spend a large chunk of their time  on is picking up and placing segments to create their equation. I knew I would have to create a system that allows for a bunch of different ways players may want to interact with the game. For example in this snippet of code from my placement system, a check is made to see if the portion of the circle the player is selecting is populated. If so, the segment the player is holding is swapped around with the segment populating the portion they clicked. In an earlier version, I simply checked to see if the portion was able to take a segment and if it wasn't I would just not let the player place it there. This meant the player would have to drop their held segment back to the hotbar and manually move stuff around.

The player could also discard the currently held segment simply by clicking outside of the wheel, this would snap the held segment back to the hotbar.

One thing the player will spend a large amount of time on is watching the wheel spin and apply their equation, which meant I had to ensure it worked well and adapted to what was going on in game. For example the wheel can contain either 3, 5, or 8 portions, so the amount if would spin would have to be figured out at runtime and since the wheel starts out in the middle of two segments, I would need the function to first apply half of the rotation it would need for any remaining actions after the first one, once that was done it was a simple case of writing a while loop that woud see the wheel spin x amount based on the size of the wheel, stop, check and apply the segment operator/ability and then continue on.

After some testing it became apparent that once players reached a level with multiple actions that would be run, the wheel always turning at a consistent speed meant the player would be sitting, watching for far too long. I added a couple of lines of code to base the speed of the spin on how many actions needed to be applied, meaning the more actions that needed to happen, the faster they would happen. 

TEAM

Composer