BOLLPLANK – Learning Construct 2

27 04 2014

… or how a simple game is a total lie.

I learned early in my game development career that if you want to make computer games, learn programming (or find a programmer friend who will completely submit to your will). Otherwise, you’ll just have a very snazzy game design doc. I really wanted to try to code my own full game because the freedom of building as I please was too alluring. But first, I had to begin construct my secret lab. Game designers are almost like mad scientists, warping the laws of nature (in digital format).

I struck gold when checking the local flea market, a real whiteboard! Much smaller than the classroom mammoth variant  I was used to (okay, it was tiny), but tiny fits perfectly in my small office corner. After finding a non-permanent marker, I could just doodle to my heart’s content and the photograph the result for archival purpose.

Train wreck of thoughts

Now, for learning purpose, my practice game had to be a s simple as possible for me to make. I wanted my target group to be someone who enjoys interactivity, so I thought about my 4-year old nephew who enjoys his fathers iPad. He loves to check out the image gallery and just scroll the next image after next like it would start spinning any moment.

So observing him I drew to the conclusion that the game should have the basic human communication in mind: poking. One of the reasons today’s tablets and smart phones turned into such a hit was that the point and drag interface was that simple to use and thus anyone could quickly adapt to it, even my technophobe mother. Cast out were the command lines (that is still reserved to the tech nerds) and dragged in to every home were the point and touch.

Balls everywhere

So my game should be a playground of touching. Poke at something and it will react, like making a ball bounce. One of the first animation lessons many learn is about making a ball bounce. The ball bounce is a great way to fake gravity and make the experience believable. The game should totally have bouncing balls, like a ball pit! Kids love ball pits!

So I present: BOLLPLANK (work title).

The rules:

  • The player drop new balls into the pit from the “roof”.
  • Bouncing against other balls renews the ball’s hit point and level up in a certain colour.
    • lvl 0: Red
    • lvl 1: Yellow
    • lvl 2: Blue … etc
  • The bouncing balls can only touch the walls once. At the second bounce, red balls dies. Other balls loses a colour.
Bollplank - game plan.

Bollplank – game plan.

So here, players can try to get as many ball colors as possible while trying to keep the ball pit alive. Ironically, wall bouncing hurts the ball and remove any red balls from play.

Other limitations include the amount of balls you can add to the pit and how often. I added an XP bar if people don’t want the sandbox mode. Other game goals could be “Get 3 green balls”, “Fill the bar in 30 seconds” or any simple modes.

Then to the interactive part. I got Construct 2, an open source game maker software, very nifty, who illustrates programming in dialogue trees and drag and drop interface. Still, every application faces it’s learning curve, and I was too caught up in my future game’s special features which threatened to overwhelm me when I tried to implement them in my game early on. So I analyzed the core of my game.

First, get the ball to bounce. Then make it interactive.

Constructing in Construct 2

Working in construct 2

Working in construct 2

I checked some reference games of similar gameplay (also made in Construct 2 and Construct Classic). Construct 2 has many built in behaviors; like a bouncing ball behavior and bullet behavior. Now the bouncing ball behavior sounded kinda dull if it stopped bouncing after a while. I wanted the atmosphere to be more intense, so I fell in love with the bullet behavior. Speed remained constant and would have to make players alert on where their balls landed instead of focus their attention to the floor area.

Ingame shot of the alpha.

I am a master Photoshop craftsman so I have infinite graphics to practice with. MOAR BALLS (and thus, moar balles were added).

Yep, I got a real game. It’s still far from done, but Construct 2 is really good at showing results instantly so being able to playtest the game was definitely motivating.
Yeah, you totally get score when you bounce stuff. Walls are minus, balls are plus. It’s really real.

I have the XP bar, the score, ball death, ball changes color and this green aim bar to show where the ball lands. The tiny balls was the beginning of a Legend of Zelda hit point system, where the active hit-point beats like a tiny heart and that the hit-points shrinks and disappear one by one.

Implemented features:
  • Drop ball from the roof, green aim appears.
  • XP bar; get’s filled when balls touch each other. Decreases when hitting wall.
  • Health points. Beats like a heart.
  • Ball change colors when bouncing at each other. Red >Yellow > Blue
  • Red balls dies when hitting walls and floor.
  • Added bouncy and death sounds.

I am currently fighting with lining them up in my graphic interface and removing them when a ball is dropped into play.

  • XP bar doesn’t end game when filled.
  • No limit on how many balls can be into play.
  • One red ball refuse to die!
  • Health bar is not working at all.
Future features:
  • Ported to tablet.
  • More colors.
  • Infinitive jumping. No decrease!

It’s really a work in progress! Remember to play-test with others!

Tools used:

  • Construct 2
  • Photoshop CS5
  • sfxr


Today’s free software:


Category: Game Maker
Useful for non-programmer types (like me).
Easiest game maker so far.




Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: