Match 3 Game
Ivo Voika, Ilja Zolotnikov, Musabir Musabayli
The main idea of this game is to swap one gem with a neighbour gem to form a horizontal or vertical chain of three or more gems of the same color. Bonus points are given when chains of more than three same gems are formed and when two chains are formed in one swap. Gems disappear when chains are formed and random gems fall from the top to fill in gaps.
Why we chose this topic
Ivo: This topic was chosen because I had, at the time, recently replayed bejeweled and thought „That doesn’t look too difficult to make”. So I proposed it as an project idea. Two more people (Musabir and Ilja) thought it was and good idea and joined. Or the deadline for choosing a project was due and they had no other choice. Or it was just our fate? Either way - Ivo had a team.
How we did it
We used Unity as our game engine, because Musabir already had experience with it. Also Ilja had experience with Blender, which works out of the box with Unity. Ivo took on the task of coding, because he knew Java and “C# is kind of like Java”. For version control we chose Bitbucket and Mercurial, also because one of us had experience with it.
Advantages and hardships
Main advantages of using Unity is of course that it takes care of:
- Asset tracking
- And other kind of things that also can be Googled.
Of the more prominent hardships the first thing that comes to mind is the SCM system. We had difficulty getting it to work for everyone, so almost all of the changes are authored by Ivo. Changes that are actually made by others are marked with [name] in the commit message. The second is probably time constraints. We all have other super-urgent things that need to be done, so there just wasn’t time to make the game as great as we imagines, had we have all the time we needed. Unity deserves a spot in this list too. Although a great tool to simplify game development, some things require a way lot of research and digging on Unity forums on how to do them. Google knows much, though... For example getting multiple animations on a single object to work.
What was done
At first we had grand ideas of all kinds of effects and things that could be done. App Stores were awaiting! Of those things were done:
- Basic game functionality:
- A grid on gems
- Gems can be swapped only with their neighbor and only if the swapping results in new matches
- Matches disappear and new tiles fall from the great blue sky
- Gems are modeled in Blender
- Particle effect when gems disappear
- Main menu that has buttons for options, instruction screen and proceeding to the game
- Localization of 5 languages.
Some of the ideas that we had at the beginning:
- Different themes for the levels, with each having different effects and gem textures
- Game modes
- Special gems for having more that 3 matching gems
At first we had a rudimentary mock-up of what the game screen would look like.
First working version only had a screen filled with colored tiles. You could change the position of any two tiles (even of ones at the opposite end of the board of each other). The tiles would swap out instantly, the matches would disappear instantly, and new tiles would appear instantly. The best game for anyone with no time to waste and a fancy for the minimalist style.
Next came meshes. And a background. And menu screens. Ilja made some gems and we used one of them for testing purposes, as can be seen in this image.
After a more work on game logic, getting textures to work and with an animated background props.
And... We've got our final product!
Google, we're coming!