Mellow Fizz

MellowFizz is a 3D puzzle game inspired by Puzzle Bobble, taking the iconic bubble shooting mechanic to a 3D environment and giving it new life. The town of MellowFizz is a small town inside a crater in a cave, lately their soda supply has been dwindling. Go on an adventure, find out what happened to the giant soda river and save the townsfolk. Solve puzzles and progress through the levels by shooting bubbles and making them react with each other, triggering various effects to help you reach the top of the giant soda bottle.

Project Info

Type
3D
Third Person
Puzzle

Role
Main Gameplay Programmer

Duration
5 Weeks

Team Size
 
8 People

Engine
Unity - C#

My Contribution

In MellowFizz, I was responsible for implementing the Bubble System, which is the system that allowed the bubbles shot by the player to attach to each other and other objects, react with one another whenever three or more of the same type were attached and drop whenever the connection they had was severed.
 As the system was challenging to create and completely unique, I firstly researched everything that I was not sure of, especially all of the math required to properly tessellate space with tridimensional shapes. After multiple iterations and thorough testing, I succeeded in creating the system as it was envisioned by the Game Designers, with some added guidelines make the bubbles easier to place for the Level Designers.

The bubble system has different moving parts that all come together to make the bubbles work. Firstly, the stacking system is responsible for making sure the bubbles attach correctly and tessellate 3D space properly. Whenever two bubbles collide, the bubble that is attached fires several rays, one from each attachment point, to both determine where the bubble was coming from at the moment of collision and where it should attach. To make sure that the rays cannot miss the bubble, there is an invisible non-physics collider that is slightly bigger than the bubbles, in the case that this collider is hit multiple times, the bubble will attach to the attachment point closest to it.

Secondly, the attachment system makes sure that each bubble knows what it is connected to. This system is crucial to determine when three bubbles of the same type are connected and they should react.

Lastly, there is the cluster system. This system makes sure that whenever bubbles and objects attach to one another they behave as one solid object. To achieve this, a cluster object is created that takes on the characteristics of the RigidBodies inside of it. The cluster object keeps track of what is inside of it and makes sure that as bubbles pop the items get properly disconnected from the cluster.