Classic Marbles is a redesigned remake of well known computer game “Kulki”, introduced in times of Windows 95 glamor.
Developed in Java, in 2012 I have published it on Google Play. Later it was ported C# and published on Windows Phone Marketplace.
Some original features
- Bonuses like “bomb”, “choose new marble” and “reset next marbles”
- Achievements (used OpenFeint)
- Online Highscore ranking table
Project was implemented in Java using libgdx game framework. It was designed for phones with Android so different resolutions and aspect ratios had to be supported. During Classic Marbles development I created some Android game components (classes), e.g. extending animation system by adding new animations or creating reusable screen manager.
Game was created in two-layer architecture. Lower layer was game using libgdx. It was independent of Android API. It also used my Android game components which also were independent of Android API. The higher layer of game was the one directly connected to Android’s View. I’ve also been using OpenFeint library for which I had to make code injections (workarounds) to connect lower layer with achievement unlocking logic with higher layer containing View (e.g. small bar showing that achievement was unlocked). It was because OpenFeint had to have reference to the game’s Android Main View.
I also learned how to write animations by managing dynamically created and time-short (simulated) threads. Thanks to that project I at least came around to split up code due to management of logical and graphical parts in computer games, which seems to be similar to MVC or MVP architecture patterns.