Space Bowls

The Game

SpaceBowlsIcon64Name: Space Bowls
Description: In space, no one can hear you bowl.
Released: June 2018

Progress

On the surface this game is very close to the game designed in the Udemy course (on 2D game dev in Unity). Some notable differences include: the camera behaviour, the shot power indicator. Under the hood, there are some significant changes.

In the original architecture, the bowls are stored as a list of integers, this results in repeated logic in several locations:

ActionMaster – a script to determine the next action for the pins: sweep or tidy

ScoreMaster – a script to calculate the total score for each bowl and frame

ScoreDisplay – a script to display the bowls as a score.

Each of the above scripts needs logic to handle strikes and spares, and the 10th frame.

Instead of storing a list of integers to represent the list of bowls made during the game, I store the bowls as a list of results. I used an enum type to store the results (the possibilities are: gutter, bowl 1-9, spare, and strike). Strikes and spares are identified immediately, which simplifies the logic of the previously mentioned scripts.

MaybeASpare

Maybe a spare…?

Play-testing revealed some issues…I love it when a process works.

Almost everyone who tried the game, wound up bowling during the cleanup phase (when the sweeper arm was clearing downed pins, and blocking the lane). The sweeper was too far away to see properly – and thus know when it’s okay to bowl again. When my youngest was playing I spent the game telling him not to bowl (so he wouldn’t hit the sweeper arm). I remedied this by having the ball reset after the sweeper arm had finished. This kept the camera at the end of the lane with the pins, and also removed the option to bowl again until the lane was clear.

I developed the game on pc, and would frequently test the game. This may have led me to believe that the game was too easy. This would turn out to be incorrect for 2 reasons: using a mouse is very different from using a touch pad, and I had added a testing feature that set the ball speed – which meant I could take as much time as I needed to line up the perfect shot.

StrikeInAction

A strike in action!

Thoughts

Test-Driven Development

In the course of this experiment, I have written a lot about the Udemy course I have been following. Back when I started this course, I was using it as a method to become acquainted with the Unity engine. I am a seasoned software developer. I did not anticipate this course teaching me much in the way of developer skills. Up until this point, it has been exactly what I thought it would be.

However, with this project I was introduced to Test-Driven Development. It is a concept I have heard of before, but not had the opportunity to practice.

Infusing Personality

I need to put more of myself into my games…some of my quirk, my personality.

There is not a lot of me in this particular game. It’s a straight-up simulation game. But for a start, I’ve included some noteworthy shout-outs on my Credits page. I’m sure that there is quite a bit of overlap between my readership here, and those mentioned on the screenshot below.

CreditsScreen

Acomplishment

This is actually the first game – of all those that have been featured in this space – to include my real name. Writing it on the page reminded me of the last project that I designed from the ground up, and made a screen to show that it was mine. That was my final project for a high school class. A project that really pushed me to pursue computer programming.

Click the image below, for a link to my GameJolt account where you can download a copy of this game and others that I’ve worked on.

SpaceBowlsIcon3

Leave a comment