Sling Ball is a solo project shipped to Google Play. The game features very simple mechanics and goals with heavy focus on gamefeel and player feedback.
The player interacts with the game by dragging their finger at the bottom of the screen then releasing it, which fires a bullet in the desired direction. The objective of the game is to shoot balls that spawn at the top of screen before they exit the screen at the bottom.
The game then tracks how many balls have been destroyed.
The game received very positive feedback on Google Play shortly after launch.
The rules of Sling Ball are fairly straighforward and unchanging. This is delibirate to make coding the engine a lot faster.
There is not much to the engine except the communication with OpenGL. Everything else, such as gravity and bouncing, is hard-coded into the classes of the program.
I wanted to plan out and execute a full project from idea to working software
available on Google Play.
I had worked with OpenGL and C++, but wanted experience working on a different platform with different code structure.
The game went through several iteration stages, and I found that there were some main pillars that my game was based on. The most important were:
Shooting and hitting balls should be inherently fun
Improving at the game is why players want to come back
There should be ways for the player to explore the physics of
the game, and feel smart when they do something non-trivial
When iterating I always sought to improve on each of these points. If the things I added or tweaked didn't point in the direction of these pillars, I removed it.