Programmer

Platform

Engine

Language

Development Time

Team Size

Android

OpenGL ES

Java

2 months

Solo

Sling Ball

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 Engine

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.

Code
<Sprite>
<Shaders>

Goals

Ship a game on Google Play

I wanted to plan out and execute a full project from idea to working software

available on Google Play.

 

Write an app from scratch with Java, OpenGL ES and the Android API

I had worked with OpenGL and C++, but wanted experience working on a different platform with different code structure.

 

Why is it fun?

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.