Archives

All posts for the month December, 2013

Sprint stories

  1. Randomly show power-ups to player
  2. Detect player bubble collision with power-up
  3. Create app icon

Expected duration

Two weeks (ending 12/01/2014)

As this is the first sprint of the New Year I might also blog about some New Year resolutions.

This sprint was disrupted as the last week coincided with Christmas so I didn’t get to spend as much time on the game as I’d hoped. However, I did complete a reasonable number of tasks although didn’t finish some of the big tasks associated with “power-ups”.

Tasks completed this sprint:

  1. Decide on power-up types
  2. Create icons for power-ups
  3. Show score in game screen
  4. Populate remaining scenes with GUI etc
  5. Game GUI – score
  6. Store player data
  7. Add points graphics
  8. Game score on final screen

SunUp #13

Sprint stories

  1. Decide on power-up types
  2. Create icons for power-ups
  3. Randomly show power-ups to player
  4. Detect player bubble collision with power-up
  5. Show score in game screen
  6. Populate remaining scenes with GUI etc

Expected duration

Two weeks (ending 29/12/2013)

Although I expect the sprint to last two weeks I think it’s fair to say that the festive period will have an impact on how much I get done. I’m hoping to get the game to a point where I can show it to people over the holidays and get a bit of feedback – this does add a bit of pressure 😉

Well, Sprint 5 actually went rather well, so well in fact that I completed all the tasks I’d assigned to the sprint and also a few more besides.

One of the tasks I hadn’t planned to complete this sprint was implementing analytics on the game. Mobile games track a lot of data about how players use their games (whether the player realises it or not) and this guides a lot of the decisions about how games develop and make money over time. In my case Bubblision isn’t intended to be a money-spinner but is intended to be a “toe in the water” and a good way of learning a lot of things before I take on a more ambitious project next year. Analytics is therefore something I wanted to get in to Bubblision and also before getting other people to try out the game.

I spent a lot of time looking at the various options for analytics. I think it’s fair to say that Flurry is the market leader right now but, because the data collected is stored in the US, I had a few reservations with regard to the Data Protection Act (specifically not transferring data outside of the European Economic Area). I obviously don’t intend to capture any personal data but I think this remains a consideration (as Flurry’s Privacy Policy mentions, see section on ‘International Transfer’). Aside from that concern, Flurry looks great.

However, I’ve decided to use Game Analytics. They’re based in the European Economic Area (Denmark, in fact) and, having read through a lot of the documentation and support… the service gave me a good feeling. They insist on various things, such as your game having a Privacy Policy (something I agree with), as part of the sign-up agreement you agree not to use the service to store any personally identifiable information (again something I agree with) and they provide an opt-out service for the analytics tracking (Flurry also does this). They also provide an SDK for hooking directly into Unity so implementation was simple and I can see my real-time data being recorded by their service (albeit all originating from my testing at the moment).

The original block of tasks I’d planned to complete during this sprint were largely concerned with sound in the game. I hunted around for various free sound effects but, in the end, decided to create my own sounds (with a retro 8-bit feel) using SFXR.

The list of all the tasks I completed during Sprint 5 is as follows:

  • Fixed a problem with the Google docs spreadsheet I use for time tracking
  • Upgraded the project to Unity 4.3.1
  • Added sound for NPC bubble collisions
  • Added sound for NPC bubble burst
  • Added sound for player bubble burst on spikes
  • Added sound for collision between player bubble and NPC bubble
  • Removed the lighting effects on NPC bubbles (I’ve decided this wasn’t a good idea)
  • Removed the transparency in the lines defining the game area (looks much nicer now)
  • Implemented code to slow the NPC bubbles if the player collides and their colours match
  • Added code to calculate scores
  • Improved the particles for player bubble burst and used different particles for colour matches
  • Implement analytics
  • Game lifecycle/restart – implemented buttons on the start screen and end screen to start the game. Also added code to go to the end screen when all NPC bubbles have burst.

Video of current game play (without sound I’m afraid):

SunUp #11

  • Did a lot of research on game analytics
  • Refactored some of the existing Bubblision code for clarity

The last week I completed the following tasks on Bubblision:

  1. Add sound for NPC bubble collisions
  2. Add sound for player bubble burst
  3. Add sound for NPC bubble burst
  4. Add sound for collision between player and NPC bubble
  5. Slow down NPC bubbles if colour matches colliding player

Regular readers might realise that the above represents all the tasks for sprint 5… so next week I’ll be working on the next tasks in the list.

Other things I did:

  • Played with sfxr to generate sound effects for Bubblision
  • Updated the RF1 code to Django 1.6 and got the tests to pass (still need to deploy the changes)
  • Started/finished reading Rework by Jason Fried and David Heinemeier Hansson
  • Had a couple of days off….

Sprint stories

  1. Add sound for NPC bubble collisions
  2. Add sound for player bubble burst
  3. Add sound for NPC bubble burst
  4. Add sound for collision between player and NPC bubble
  5. Slow down NPC bubbles if colour matches colliding player

Expected duration

Two weeks (ending 15/12/2013)

Wow, these sprints are rattling along!

It’s the end of Sprint 4 already and I completed all the stories. Towards the end of the sprint I came across a rather frustrating issue with the collisions in the game but this turned out to be something I’d overlooked and easy to fix… albeit after spending a couple of hours researching Unity’s collision detection and reviewing all my code. I’ll write a blog post about that separately as I think it may help others.

The end of this sprint represents a bit of a mile stone though as the game has reached first-playable status. It’s not “code complete” yet but I can play the game.

Tasks completed this sprint:

  • Player bubble burst and (re)instantiate
  • Detect touch position based on game area and not pixels
  • Instantiate NPC bubbles at game start up
  • Stop NPC bubbles from overlapping
  • Fix NPC bubble jitter at the edges of game area
  • Fix collisions being detected inconsistently
  • Set collisions between player bubble and NPC bubbles
  • Reviewed use of game constants (was originally planning on moving them)

SunUp #9

  • Further work on migrating RF1 to Django 1.6
  • Finished reading “Casual Revolution” (3/5 stars)