If connecting colours is too easy for you, you may like MusicAlchemy. Here, each group of at least 3 identical noteballs will transform into the upper note on the musical scale.
You should think ahead if you want to compose a real symphony.
As a kid, I've been deeply impressed by Tetris on GameBoy. I wasn't mature enough to understand all the cleverness behind the mechanics but still I was fascinated by the game. Hence I always had a thing for games requiring adaptability and foresight.
Until the day I played for the first time to Naturalchimie.
This game is a mix of a classic Match 3 with the mechanic of Money Idol Exchanger (i.e. the transformation of a winning group into an element of major order). Thanks to a great balance in the distribution, the game presents a rich gameplay.
When I started to know how to make games, I immediately wanted to reproduce the fun I had playing Naturalchimie, and I thought it was a good exercise to create my first puzzle game.
At the time I was working on this game I had never heard about data structures, neither of all the operations you can perform on them. Hopefully the concept of a 2D array is pretty straight forward and I was able to write some decent methods to give birth to the right mechanics.
The main issue I experienced regarded the identification of adjacent groups of the same colour inside the array. I improvised an awful method based on a while loop which read the data and added elements to groups until no more changes occurred. Even if overcomplicated, it had the merit of working correctly.
A year after the publication of MusicAlchemy, I decided to add an on-line leader-board. It was the perfect opportunity for a first experiment with server side programming. I learnt the basics of PHP and MySQL, and the communication between the database and the game was easily done thanks to AS3.
Clearly inspired by Naturalchimie where the highest elements have less chances of being distributed, I tried to influence the statistical distribution to obtain nicer melodies. I used a non-uniform distribution using three random variables multiplied by the highest element index in a polynomial expression of degree two. I didn't use any filter to avoid repetitions as this could potentially create some interesting part in the melody.
The played notes are recorded as a string of character, and the rhythm and the velocity of play are determined by the final score. The result can be surprising, but it's often not melodic.
Since I was working in parallel on sound synthesis, I found a good idea to use this feature in the game. An early version of my synthesizer is then inside the game and reproduces the notes in game. At that time the synthesizer wasn't optimized and it used way too much CPU charge.
Nowadays, I would have clearly considered the use of sound assets. It's the eternal question of memory over CPU.
Let's not talk about sad things. Let's say that on these days my poor taste wasn't helped by my lack of experience.