Pro Mobile Blog #3: Building Catch'N'Merge - our first game with physics

One of the things I enjoy and at the same time hate in game development is that sometimes a feature that sounds simple in my head turns out to be much more complicated once I actually start building it.
That has definitely been the case with Catch’N’Merge.
The core idea
The core idea of the game was very simple. Gameplay consists of two phases. In the first phase the player catches creatures falling from above into a flask. When two matching creatures touch, they merge into a new creature. But the player can’t control where inside the flask items land. The second phase is almost the same as in lots of existing merge games. The player has full control where to drop creatures - as in all free online Suika-like games. The goal of the game is to create bigger and bigger evolutions while keeping the flask alive.
Sounds simple, right?
Like many merge games, Catch’N’Merge is a physics merge game. Every creature has not only its size but also its weight and speed. Because of that, when dropped from above, the items bounce, roll, slide and push each other the same way as a bunch of bouncy balls in a bucket would.
Phase one: catch and merge
I was quite satisfied with how phase one turned out. As I already mentioned above, the first phase is the most arcade-like part of the game. Creatures fall from above and the player moves the flask to catch them. To me this phase feels closer to a runner game than to a Suika-like merge game.
The player has to react to falling objects quickly. Some objects are useful: I added crystals and shields and also a test tube - each of which brings its own benefits to the player. I also added some falling rocks. If a boulder hits the flask then it gets cracked. Several hits and then the game is over. In phase 1 the player doesn’t have full control over where every creature lands inside the flask. Once a creature falls in, physics takes over. It can bounce and push other creatures and roll until it eventually lands somewhere.
Phase two: drop and strategize
With exactly this physics which worked very well for me in phase one I encountered problems in phase two.
The second phase is calmer and more strategic. As I mentioned above, this phase is very similar to classic free Suika-like game logic. You look at the flask, think about the current situation and decide where to drop the next creature. So, very calm compared to the first phase. In addition to that I wanted to add some action buttons that would make the game even more fun to play.
I added a button to destroy some lower tiers of creatures, a button to minimize the tier - for example if it got too big and there is not enough space in the flask, and a button to get more lives - in case the flask was hit by a boulder in the previous phase. All of these worked very well. I also decided to add a fourth button - a button to shake the flask. There is often a situation when there are two similar objects just a tiny distance away from each other. In that case it seems like the shake should help them merge together.
The shake button
This shake went very wrong and the problem with it is still not fully fixed in the game itself. When I implemented the shake for the first time, a lot of items just went outside of the flask and never returned. Of course, it was not how I wanted it to be. So I introduced boundaries to the flask. It somehow helped for some items, but didn’t help for others - they were still going outside. Then I fixed that so at least they would come back and tried to make them respect the flask boundaries. It helped but not in every single case. So even today if you play Catch’N’Merge and shake the flask - sometimes you will notice that some items are flying away outside of the flask. At least now they are always coming back.
This is one of the funny and sometimes painful parts of working with physics: you can design the rules but the game will always find a way to surprise you.
Written by
Ana