Tuesday, November 11, 2014

This is why I make games

Yesterday, a coworker of mine sent me this email:

"So, I bought your App the other day. Lol. The boys were playing it as usual and getting all excited because they kept advancing to the next level until I think it was level 13. Then they were begging me to buy it so they could continue playing. Was so funny. Thought you would want to know that…. The love it. Every time I see them on the Ipad they are playing it.

If you ever want to do another video, you can use them in it. They will both hover over it and try and point out to each other which way to go."

It really brightened my day and made me forget about my abysmal sales numbers.  This is the real reason I make games.  Business should always be secondary to fun.

Saturday, October 11, 2014


The game is finally done and has begun the app approval process!  My target release date: October 29th.  Just in time to show it off at the Games Forum Demo Night on the 30th.  I know it sounded like I was pretty much done from my last post, but you know what they say: the last 10% of a project is usually 90% of the work.

Integrating all the message boxes and functionality around in app purchases ended up being kind of a pain.  And then there's setting everything up in itunes connect and deciding on search terms, marketing screenshots and text was all sorts of fun.  But that's all set now.  The only thing left to do is finish up my commercial and pray the great apple gods deem me worthy for a feature.  Because in reality, that's the only chance in hell an app with a tiny marketing budget has any chance of getting noticed in the flood of new apps released every day.

Also somewhat interesting: I ended up going over all my expenses for the game so far.  If I add up everything including the art, sound, setting up the company, going to conferences etc, this game has cost me $14k to make.  Of course that's not including the huge opportunity cost of me working on this half time for a full year.  But if I'm able to make back half of my monetary investment, I'll be pretty happy.  I know it's very rare that the first game a company creates is successful.  Of course, even if it only makes $1, I'll still be happy to have released a game.  It's honestly a small price to pay for what I feel is one of the biggest accomplishments in my life so far.  I made a game.  On my own.  And I think it's a damn good one =).

Wednesday, July 30, 2014

Progress Update

I don't have a subject today.  I'm just overdue for my monthly blog-post.  I'll try not to make this too rambling.

Item the first: final 20 levels complete! 
This ended up being a much more difficult task than I anticipated.  The final level set is a 6x6 grid, which turns out is exponentially harder to solve than a 5x5 grid.  It was too much for even my super speedy c++ solver.  For a while I thought I might have to give up and just spend a ton of time solving the levels myself.  But I started playing around with bit-packing to reduce the size of my level state arrays and got the solver running on the beefiest Amazon EC2 memory instance available (240 GB of ram!) and that was FINALLY enough to solve most of my levels.  My final level actually ate through all 240 GB over the span of 40 minutes and crashed the machine.  But I was at least able to verify that there was no shorter solution than the one I found.  I still plan to do a detailed writeup of my level solver later.

Item the second: PR and marketing.  
I had a chat with a PR guy, and he pretty much confirmed my suspicions; My game is fun and different, but not unique enough to make a PR push worth the money.  There are so many apps out there that review sites are really only interested in games that bring something completely unique to the table.  But then I was thinking, maybe instead of PR, I spend that money on a unique video?  Something to grab people's attention.  And then it came to me: live-action people in mouse and snake suits bumping into each other on the streets of New York.  It's exactly what my game needs.  A fun, quirky, weird hook that will hopefully get people talking.  It's going to require a bit more of an investment, but I think it will be worth it.

Item the third: wrapping up
So now the game is almost complete!  I just need to add some menus, a credit screen, and integrate the in app purchases.  Hopefully my next blog post tile will be "Submitted to Apple!"

Monday, June 23, 2014

On Playtesting

One of the best parts about developing a mobile game is how easy it is to get people to play test.  I was able to get an incredible amount of helpful feedback by making everyone I knew (and any new acquaintances) try out the first few levels.  It was especially interesting to watch people who claimed they "don't really play games" experience my game.

Also, "Excuse me, would you mind testing out the game I'm making?" turns out to be a pretty good pick-up line =).

But while playtesting can be incredibly enlightening, it can also be extremely frustrating.  When I first came up with the idea for my mechanic, I thought it would be really intuitive and easy to understand.  Boy was I wrong.  Most people would eventually get it, but it took much longer and was a more frustrating process than I intended it to be.  And of course no one reads the instructions that pop up (but I wasn't expecting them to).  So I've re-wrote my beginning levels several times, each iteration adding more and more gui, hints, and signs to be as obvious as possible while still allowing the player some agency. 

Tutorial levels are always important in games, but they're especially important for mobile games.  The average mobile gamer has a very short attention span, and they will delete your game without a second thought if they are even slightly confused.  And free mobile games have the worst retention rates since the user has zero investment in the game.  So if you want to be successful on mobile, you need to hook the player and hook them quickly.  Then, once they're eased into the game mechanic, you can give the line a tug and set the hook with a challenge that will keep them scratching their head and coming back for more. 

Thursday, May 29, 2014

On the dissappearance of time

Ugh.  How is it almost June?  Wasn't it April, like, yesterday?
As the tone here has probably given away already, this month has not gone as smoothly as the previous month.  I'll give myself that getting the solution-shower working was a much bigger task than I had anticipated, but I still feel like I've been slacking.

At some point I'll make a detailed post about my solution finding algorithm, but one thing that really tripped me up this month is that I had a bug in my algorithm that took me forever to track down.  I had actually been modifying the solution finder to get it to print out a more detailed, step by step solution for my hint system when I ran into it.  So of course I assumed it was an issue with my new modifications.  I swear I must have simply stared at my code for hours, hoping it would suddenly relent and reveal its hidden flaw to me.  This can be one of the most frustrating things about programming, and it really took a bite out of my motivation.

When I did finally track down the bug (which was causing my program to not always find the optimal solution) it turned out to be an issue in the old part of the code that hadn't changed!  I just hadn't caught it before.  And worse, it was one of reasons my c++ solution was running so fast.  Fixing the bug suddenly made my solution finder take forever and gobble up memory like it was doing in Lua.  Luckily it did give me an idea for optimizing my algorithm so I was eventually able to speed it back up again.  But by then, May was almost completely gone.

So now it's June for all intents and purposes and a I still have 20 more levels to create.  But things are moving again.  If I can get these done quickly, then I might still be able to wrap everything up for a release in July.