Some things to take in account when take a look at my project are:
- I think I had do my best sweeping out all unnecesary algorithms and useless variables off the project (remanents of old versions of the game) so it can look cleaner as possible.
- I always work in english because it's a more practical (yet less elegant in my opinion) language, so the name of the variables are in english; anyways it's not my native language so there's the possibility of some variables names sounds silly, even in that case I trust the names are enough descriptive to avoid confusion.
- The font and some graphics were changed for this version.
- Apart of the mentioned changes, I'm releasing the source project as it is and I'm not entering in algorithm and implementation details. The project is not commented. If there is interest I can go further with a tutorial to explain why and how a specific algorithm works.
- This game was made as part of an "optimization project" for the algorithms comomnly used in 3-match style games (example: bejeweled), although the game mechanic and goal is different, the algorithms contained in the project can be easily adapted to use with other grid-based games.
- The game shows some lag when it runs from GD, once compiled to a native platform it will run faster.
- As you will notice when you see the project, I use the comparison of expressions condition to evaluate the values of all variables and other properties of the objects, rather than the built-in evaluation conditions for each variable or parameter type. That's because I find this condition more versatile and flexible in working terms when it comes to migrate variables due to project changes.
I use this: ,
instead of this: .
Here's the project:
Hope it will be useful.
Test this small board game made in GD: