Match 3 Clas­sic is a match 3 game, sim­i­lar to Bejew­eled, Can­dy Crush et al — but with­out all the social guff that keeps a play­er out of the game. The focus of this project was to have a play­er spend the major­i­ty of their time actu­al­ly play­ing the match 3 game, and not in the menus mov­ing around maps/ shar­ing lives/ etc.

This project was also a test, I used a game tem­plate as a base and I want­ed to see how quick­ly I could update, cus­tomise and release a game. The game was fin­ished in a week­end (Fri evening — Sun evening), with a bit of pol­ish­ing and bug fix­es through­out the fol­low­ing week. Start to fin­ish, the project took just over a week, includ­ing devel­op­ment and set­ting up the var­i­ous app stores, web­site and youtube video.

For more infor­ma­tion regard­ing Match 3 Clas­sic, please vis­it the ded­i­cat­ed web­site Enig­ma 23 Games — Match 3 Classic

Game Design

The game tem­plate I used came with just the match 3 mechan­ic, but required devel­op­ment to add game modes. Two game modes were added, Timed and Survival. 

Timed mode gives the play­er 60 sec­onds to achieve a score as high as they pos­si­bly can, the faster they’re able to make match­es the high­er a score mul­ti­pli­er is rewarded.

Sur­vival mode starts the play­er off with 60 sec­onds on the clock, and a tar­get score to reach. Once the tar­get is reached, addi­tion­al time is reward­ed and a high­er tar­get is given.

Both modes have an option­al reward­ed ad at game over, if the play­er choos­es to watch an advert, they are reward­ed with an addi­tion­al 15 sec­onds of game­play to improve their score.

Development/ Cod­ing

For this project I start­ed mak­ing the foun­da­tions of my own toolk­it, cre­at­ing util­i­ties and plu­g­ins that will be use­ful to me for all projects. Two were cre­at­ed for this project, a lev­el pair­ing loader and a UI menu manager.

The lev­el pair­ing loader allows me to eas­i­ly and quick­ly load mul­ti­ple lev­els at once, and then do an inter­face call when the load­ing is com­plete. This new inter­face call gives me a third mag­ic method to help with ini­tial­is­ing class­es — Awake(), Start() and now OnLevel­Pair­ingLoaded(). Hav­ing this addi­tion­al method allows me to have a mul­ti­scene set­up and eas­i­ly make sure every­thing is loaded before cross scene search­es are performed.

The UI menu man­ag­er allows me to quick­ly and eas­i­ly assign can­vas­es to a menu screen, select an ani­ma­tion (just a sim­ple slide in from top/bottom/left/right) and speed. The menu man­ag­er will then call the desired screen and the state takes care of itself, allow­ing me to con­cen­trate on oth­er things and not spend much time on some­thing simple.


Uni­ty Plugins

Match 3 Starter Project — this is the game tem­plate I used as a base to start the game from. Clean code, easy to under­stand and edit for my needs.

Easy Achieve­ments and Leader­boards — I always like to add achieve­ments and leader­boards in my games, using this plu­g­in from Gley made it very easy to add and is a plu­g­in I’d rec­om­mend to oth­ers devel­op­ing for mobile.

Edi­tor Con­sole Pro — I use this con­sole in all my projects, it makes the stack trace a lot eas­i­er to read and fol­low over the default console.