Stop talking, start doing. Postmorten of how I made 2 games in 10 days.

 

One month ago I didn’t have a finished game and I just kept randomly reading articles and books on game development. Now, one month later I have two finished games where one is already published on the AppStore and the other is on the AppStore too (Universal app, Retina graphics, Game Center). How?

Those who procrastinate are doomed

I kept reading everyday #iDevBlogADay posts, game development postmortens, tutorials and books. Also studying new technologies and deciding which next technology should I choose.

All that without going to action and assuming that reading and understanding the others actions and errors would make me a game.

On one side there are the ones that use something on their benefit while getting better learning and understanding as they progress. On the other side are the ones that just procrastinate thinking that one day they will make the perfect game because they have read enough to start making a game.

Let’s take this advice from millionaires:

“[...] in today’s markets, regardless of the industry, you’re going to get bombarded with information overload. Massively so. And its dead easy to get lost in it and never get started. It’s even easier to convince yourself that while you’re consuming more information, you’re doing yourself a favor.

But here’s where you’re dead wrong.

Many people I interviewed were very strategic with their learning. Why? Because most of the time, they were on the playing field, PLAYING. Their lessons came not from a book, audio or dvd seminar, but from putting their ego on the line and testing it out in a real world scenario.”

The year is already finishing and I didn’t have a game. While the AppStore is everyday flooded with games from people that actually do something. Well… it was time to get to action.

The need to close 2010 with a game on the AppStore

Works on LH still in the first phase. According to my rough schedule it will take more 4 months to finish and polish the game – but I wanted to start the new year with a game on the portfolio. I tried to do a game on the 360iDev Game Jam, but finishing and polishing that game is going to take more than a month, and I don’t have that time, it’s almost 2011!

Game ideas

It was November 16th when me and my wife came to the idea of making a simple Christmas game with probably the most common and non original concept: presents and every kind of trash fall from sky while you move Santa Claus trying to get only the presents. Well, I thought: “that will be easy, just some programming, let’s do it!”.

But before I even started the catching presents game, I thought on another concept: why not a super original game where you control Santa riding his sleigh and drop presents on top of houses? Well, after a unique “christmas game” search on the AppStore I found 4 games with this concept. Not so original.

After some more searches, I realized there were no racing game involving Santa! So was born “Santa Race”: control Santa Claus riding his sleigh and race against other Santas. But not only that! The game would include a multiplayer, so players could chose a different color Santa and race while dropping presents.

Alright, game ideas decided but a hard task ahead: just a little more than one month left for Christmas and the challenge of having the game approved before iTunes Connect is frozen. If the game is published after Christmas, I could consider the project a fail. But luckily that didn’t happen.

Right decisions

Hiring an artist and early marketing

Since I had little time (Christmas was approaching and I was going to travel for 1 week) I wouldn’t try to make the art myself. After posting a freelance job on elance.com and odesk.com I ended up hiring one artist from odesk.com. I made a simple art requirements and assets table and sent to the artist. One day later she sent me the finished main character to Santa Race. On 19/11 I made a simple hotsite and wrote a post about the games (remember, Marketing before, during and after development). I also started a topic on the Touch Arcade forums to create some hype (oh well, is it possible to have hype on a Christmas game? Anyway anything is valid). The topic grabbed 880 views.

Programming

Due to some client work I only started programming on 20/11. By this day the artist already had sent me some more assets, so I wouldn’t need to prototype with black boxes, I could start to develop the actual game.

But before I started programming I realized that I wouldn’t have time to write a racing game. I would need to write the AI and path finding of the opponents. I also needed to write the multiplayer module. And wow, I never wrote a complete game by then and never dealt with AI. It would take more time studying than actually writing the game itself. It was time to rethink the game concept again. Well, the art assets fitted perfectly the concept of flying a sleigh and dropping presents. But the art style I asked from the artist was very different from the other Christmas games on the AppStore. Why not making it then? Even if it’s a common concept, it would be MY game. Ok, new concept decided, name changed to “Santa in a Hurry”.

On the same day I had a flying Santa with nice tilt controls, thanks to the amazing source code released by Alex Okafor (the developer of Tilt to Live) here: Lessons Learned in Tilt Controls.

I also decided to use Box 2D (with Cocos2D as the graphics engine), because the scenarios were basically going to be composed of trees and houses with irregular geometry, hence Box 2D was needed to deal with the collisions. I ended up using the technique described by Ray Wenderlich on his tutorial How To Use Box2D For Just Collision Detection with Cocos2D iPhone: Box 2D just for collision detection purposes, without gravity activated – you update your objects position manually and then tell Box 2D where they are and not the opposite.

Obstacles, present dropping spots and presents itself are all Box 2D boxes that moves with Cocos2D actions. Cocos2D makes this task very easy.

Ok, the game core was almost finished. But I still didn’t have a game, just framework elements.

Wrong Decisions

Level based

After I had the main framework set, I had to go travel for a week. When back the feeling of “no time left” was consuming me, and I decided to make a level based game instead of infinite gameplay one, because I thought it would be easier to write a level structure instead of writing a good random generator.

I chose Tiled as the level editor and I wrote an engine to read and load Box 2D data I set as properties on a Tiled map. I spent a full day writing this engine (I may use it for other projects, it works nicely. One of the best features is adding physical materials properties via Tiled which are correctly loaded as Box 2D attributes).

The only thing left was the UI. I didn’t have a Cocos2D project with a complete game workflow, so I had to write one from scratch that dealt with pause, resume, level loading, level browsing, main and options menu. This was the most time consuming part. The programming was finished, but I had no content because I chose a level based game.

I designed 10 levels by hand on Tiled and I tried to make them balanced enough. Some small ones and some long ones. Every level introduces something new or different. The game is fun and enjoyable, but an infinite gameplay and a race to an always higher highscore would be more appealing (and this feature is on its way while everyone is still trying to beat the levels).

After I worked on the level engine and the making of the levels I came to the conclusion that writing the infinite gameplay mode would take less time. That’s why I consider the “level based” a wrong move, because I will have to write the infinite mode now.

Worrying about music and sound too late

I decided to worry about audio just on the end and this was a terrible mistake. First: I didn’t have a music and second I didn’t have the sound effects. Googled for some time and found some amazing royalty free music from Kevin MacLeod and tons of royalty free sound effects in different sites.

Then the pain started: I just loaded the music and the game lagged completely. Then I added the first sound effect (dropping a present): it lagged even more. That almost killed my expectations with releasing the game before Christmas.

After some research I realized it was the format and sample rate. I sampled the music and effects to 22Hz and exported them to IMA4:

/usr/bin/afconvert -f caff -d ima4 {INPUT} {OUTPUT}

Audio fixed and the game was finished!

Marketing is the hardest and most time consuming task

On the end, I spent only 8 days making Santa in a Hurry. After submission, it went “In Review” in 5 days and then it was approved after 4 days. So far it sold a few copies and had only 5 star reviews, I can’t complain.

But since that day I haven’t stopped working on marketing the game: I made a gameplay video, I keep dealing with twitter, forum threads, trying to get reviews, and I’m running an iTunes Gift Cards giveaway (details on the official site). With a crowded AppStore and with big names going crazy on prices, Marketing is the most important and constant action.

Present Catcher in two days

Remember that I decided to make two games? When I hired the artist I gave her tasks to both games, so I already had the assets to the second game, which by the way was the original idea. The name? Present Catcher.

Since now I had a working gameflow framework and Present Catcher is all about random presents and “enemies” falling, I finished and polished it in 2 days. I also managed to make it Open Feint and Game Center enabled with Leaderboards and 14 achievements! (Santa in a Hurry is Open Feint enabled with Leaderboards for each level).

It also is an Universal application and has Retina Graphics! All that in two days.

Present Catcher is on the AppStore too, so I have two games in time for Christmas!

Mission accomplished

And that’s how I turned from “I want to make a game” to “I made a game! I made two games!”. Although I made holiday themed games that have short windows of attention (they are seem and valuable just for some days of the year), I’m completely satisfied. I learned a lot in just 10 days and now I stopped the frustration of just trying to make a game and actually MADE A GAME.

And that’s the final lesson I want to share: Stop talking, start doing.

Buy the games, please :D

This post is part of iDevBlogADay, a group of indie iOS development blogs featuring two posts per day. You can keep up with iDevBlogADay through the web site, RSS feed, Twitter.

Leave one

22 Comments

  1. marcotronic

     /  December 17, 2010

    Excellent post! I’m suffering from exactly the same phenomenon you described: Reading about stuff and learning but never really starting an actual game. Today is my last working day before a three weeks holiday and my aim was to make a complete game within this frame. Your posting really gave me some faith to do so!

    Good luck with your games!
    Marco

    Reply
    • Alfred R. Baudisch

       /  December 17, 2010

      Three weeks is enough to make a game, surely, just focus :)
      Good luck for you too marcotronic!

      Reply
  2. Excellent post.

    On my programming journey, many times I did that mistake. Once, I was bound to learn Symphony framework, for PHP. By that time, I never did really use ANY framework, so the concept over the MVC patterns, ORM… everything was new to me. My idea always was: I should read a lot before, so I will have a good basis, and won’t make a crap code later, while the truth really is that at first, I will never be able to do something perfect – only time, and after a lot of mistakes, that it will be possible.

    For sure it’s good to read articles, to get some orientation… but keeping doing it, without any practice in parallel, is a hudge mistake.

    You must have some balance, if you want good results.

    Reply
    • Alfred R. Baudisch

       /  December 17, 2010

      Exactly Nicholas :)

      Since I learned and keep learning everything by own it’s easy to keep falling in the mistake or temptation of “I should read more before doing this or that”.

      The right would be: I need to program this path finding thing but I don’t know anything about path finding. Read a book about the subject while trying to develop what the book says. If you are successful there is no need to keep reading here and there. There is just the need to polish what you accomplish and if that requires more reading, then we can go grab a new text.

      Reply
  3. Hi. First of all: Do you know me? I’m pretty sure we know each other because you were talking about me and my habit of procrastinating.

    Seriously, I’m suffering from this problem. And one of the worst thing about it is the felling that I’m a loser.

    I got pretty happy to see you overcame this problem. Your article was very inspiring. I’ll try to stop procrastinating.

    Could you give us an idea of costs? How much it cost to hire an artist?

    Regards.

    Reply
    • Alfred R. Baudisch

       /  December 17, 2010

      I know what you mean! Procrastination kills motivation.
      About the costs, sure there is no need for me to hide: $420 (artist + odesk taxes) for both games.

      Reply
      • $420,00 ? That’s a lot of money. You will need to sell a lot of games to get this money back :)
        I hope be successful.

        Regards.

        Reply
        • I found that to actually be pretty cheap.

          If you consider the costs of the salary of an artist + software licenses or even if you try to learn and do a good art by yourself, which can take months or years.

          I am studying art and how to draw, and in 4 months I already spent more than $660… And I couldn’t even do 10% of what that artist made to me.

          Then $420 is about nothing, even more that the final result is pretty good! :)

          Reply
      • Thanks for sharing the artist fees/cost. As a developer myself (and not an artist) it is sometimes hard to figure out what indie devs are paying for art these days. Any info/insight into other dev’s costs is informative.

        Great write-up, thanks for sharing!

        Reply
  4. slothbear

     /  December 17, 2010

    Ok, that was so inspirational I needed to reward you. So a bought Santa in a Hurry. Very Nice writeup. Can’t chat more, gotta go work on my app.

    Reply
  5. Just a quick point. You can easily reskin both of your apps with non-Christmas themes so that you can earn revenue throughout the year.

    For example, Santa’s sleigh could turn into a fighter jet bombing targets for example.

    Present Catcher could similarly be rethemed as catching birthday presents, or catching some other objects.

    Reply
    • Alfred R. Baudisch

       /  December 18, 2010

      Thanks for the suggestion Ken. I was thinking about that. If I manage to get some good sales I’ll be re-skinning it. It surely will help the game to be “timeless” and in the next Christmas, I just make another promotion on the Christmas skin.

      Reply
  6. Alfred R. Baudisch

     /  December 18, 2010

    Just updated the post with links for Present Catcher, since it was approved!

    Reply
  7. Will

     /  December 20, 2010

    Congrats on your accomplishment! Good advice, and I’m glad you were able to overcome that cycle. I fall trap to it often. I find myself doing my best work when I am cut off from internet access, so I can’t search for the “best” way to do something I’m working on. I also have a bad habit of over-thinking my code designs before actually coding. Anyways, enough confessions for one day. I’m hoping to get some good work during my time off for the holidays.

    Best of luck!

    Reply
  1. Tweets that mention Stop talking, start doing. Postmorten of how I made 2 games in 10 days. | Karnak Games -- Topsy.com
  2. Trying something new: Blender (video tutorials and courses) | Karnak Games
  3. The year that was and goals for the new year | Karnak Games
  4. How to outsource art for your game using freelancing sites | Karnak Games

Leave a Reply