Saturday, March 6, 2010

Doodle Blast! - Day 7 - Sweet Rest

I was done! So, on the seventh day I went to see a movie instead of sitting in front of a computer. There were a couple of pieces still missing, but all the functionality of Doodle Blast was there:
  1. Tank
  2. Stacking guns
  3. Projectiles
  4. Falling bonuses
  5. Static buildings, flickable soldiers, flying aircrafts
  6. Score counting
  7. Score tick marks
  8. Hit points, damage, and collisions
  9. Single and multi-touch support
  10. Sounds
  11. Menus
  12. Local scores
  13. Global scores
  14. Twitter integration
  15. Loading screen
What was missing was the final images (it’s hard to code and draw at the same time), a few more guns using the existing gun infrastructure (gun images along with data specifying firing frequency, aim speed, cool period, etc.), a few more enemies using the existing enemy infrastructure (images along with data specifying spawn frequency, hit points, damage, etc.), a few more buildings, and some sound tweaks.

After I took day 7 off, I spent three more days working on the above items. Yes, I know, I was cheating again.

However, I did a couple of changes that might interest you:
  1. I added logic to adjust sound volume based on game progression and the amount of mayhem on the screen.
  2. In an attempt to make the game playable by rookies as well as advanced destructionists, I added logic to monitor the user and adjust the difficulty level accordingly.
If either of these interests you, let me know and I will dig into more details with further posts. If not, there you have it folks – The Making of Doodle Blast! in a nutshell.

The final game stats were as follows:
78 code files, 7693 lines of code, 9 textures, 42 sounds, and, as of today, 1773 submitted online scores.


  1. Great work mate! I love reading your posts! It's so inspiring. Please do write a post about how you wrote the logic to adjust the difficulty level accordingly to user expertise. For example, what algorithm do you use to figure it out?

    Kind regards,


  2. Okay, the "masses" have spoken. I will post something on the inner-most workings of the enemy-spawning logic soon.

    Just curious - J Mak, are you working on a game of your own?

  3. sweet! Looking forward to reading it mate!

    Yes, I am working on a game of my own, but my current learning curve is very steep, as I've never programmed in objective-c before, and I have very limited c++ experience.

    I hope it's ok for me to ask, but is your game bringing in a good passive income? That's really what I'm trying to work on at the moment.


  4. gc - greatly done!

    I found your posts extremely helpful. All of them! This is a very rare case when guy who develops cool stuff can actually describe in human-readable and fun language how he did it :)

    Thank you very much for your developer-for-developer chronicle!

    - Denis

  5. Please put here links to any other your posts wherever they are - I would really like to read them.

  6. @dvd00: thanks for your feedback!
    Check out if you haven't yet. It's a great community of developers like myself with much to offer to each other.

    @J Mak: the passive income is very unpredictable at best. Let me put it this way - I write these games because I'm a geek at heart and I enjoy working on the platform. However, I'm yet to fully cover my operation expenses. I'm sure there are people out there for whom this is a steady income. However, I'm not at that point yet and my hunch is that majority of people aren't either.