Week 4 – Meh

My Indie Journey on March 8th, 2010 No Comments

As you may guess from the title, this wasn't a great week compared to Weeks 1, 2, and 3. It wasn't a bad week either - it was just "meh". Pinball Mini 2.0 is 95% done...but I'm still tinkering with the sounds. The board pack #1 for the store is also still a work in progress.

The New App

Around the middle of the week, I started losing my focus a bit. I'm was working on iPhone related stuff, but it's getting a bit harder to concentrate (at least compared to the last three weeks). I think the problem has been the lingering question - what do I do next? There are lots of apps I'd like to build, but I have to think long term. Either this whole going indie thing will work or it won't, but if I don't think long term, then it may work for a few months, but them I'm back to square one before too long. So I sat down and took a look my requirements for a long term idea:

1) Minimal graphic design needs after the initial design

Chris Echols does some excellent design work for me when I need it, but he's also pressed for time with all of his other responsibilities. I don't really have the money to pay for design up front, but luckily, Chris enjoying doing a lot of the stuff I need, so we've worked out a deal that will hopefully pay off for both of us. Given all of this, it's much easier to work on the idea, work with Chris to get the design nailed down, and then that design can last for quite a long time. With Pinball Mini, I can't really add anything without some major effort from Chris...so I want to avoid apps that are similar (at least until Cogitu is making enough to support two people full-time).

2) Long virtual shelf life

It seems like most game/entertainment apps have a pretty limited shelf life in the app store. It's not that they aren't fun to play anymore, it's just like anything else - newer, shinier apps catch people's attention and the older apps start to get lost in the sea of apps. I know this isn't true of all game/entertainment apps, but it sure seems like the productivity/utility apps hang around a bit longer.

3) Marketability

One of the things I'm most frustrated with in the game/entertainment area is the lack of marketability. Granted, I haven't promoted Pinball Mini 1.0 very much at all and I do intend to change that with Pinball Mini 2.0...but I just don't see a way to have a strong marketing message for this type of app. In the case of Pinball Mini, it's fun, it's easy to play, it has some gorgeous graphics, but I can't give a reason you *need* to play it. With productivity apps, I can focus on the benefits of using them...they make some aspect of your life better/easier.

4) Growth

I want to make sure whichever idea I go with next has the potential to grow to other platforms. I'm not talking just the Apple ecosystem, but I'm talking about the option to go bigger than that. I'm not expecting any of the apps to go that big right now, but if an idea does take off a bit, I'd like to be able to run with it and build a business around that app or a small suite of related apps. I feel like I won't be able to focus on any particular app if I build lots of little unrelated apps. I'd rather have one app or a small suite to continually work on and build into a sustainable company. As far as portability, games/entertainment apps are generally going to be easier to port to other platforms, so they win out on that front, but I don't think any game can keep growing the way I want/need.

5) I enjoy it

This isn't a problem with Pinball Mini, because I do play and enjoy it, but some of the ideas on my list are apps that I think would do pretty well in the store, but I wouldn't personally use them. I just don't like building things that I don't personally need/want to use. The reason I built Budgee in the beginning is because I needed something like it - I believe I could do a better job with it if I started over today, but it works the way it does because that's what I knew I needed...and there are quite a few users out there that have found it to be helpful as well.

With all of these requirements in mind, I looked over the list of applications. Since this is kinda my "indie or bust" shot, I decided I'm going to focus totally on one idea (with the exception of getting Pinball Mini 2.0 up and a couple of items in the storefront there). The idea is the evolution of Budgee. I'm not going to talk about the name or the details just yet, but it's something I've been working with on and off since I released Budgee 1.0. It's not going to be Budgee 2.0, although I have a short list of features I still want to add to Budgee...so part of this new idea may be integrated into Budgee 2.0 if I can make it work without taking away a lot of time from the new idea. The initial focus for the new app will be the iPad - I believe the iPad is a big deal and this new idea will be a perfect fit.

This Week

This week's main task is building out a list of things I need to do for this new idea. I've been looking over several code libraries, comparing similar apps already on the app store, sketching out the general idea of the app, and all of that good stuff. I expect I'll continue doing those types of things this week and hope to end up with a rough prototype running by the weekend. If I can get that done, then next week will hopefully be a good time to hit the design full force to start shaping up the real product.

Week 3 – App #1 Revamp (Nearly) Complete

My Indie Journey on March 1st, 2010 No Comments

As I mentioned the first week, Pinball Mini 2.0 was to be the first app to get polished up for my indie adventure. My plan was to take about two weeks to do this. If sales didn't improve (see week two's post for current sales numbers), I didn't waste a ton of time on it, but if they did improve, it was well worth the effort. I'm happy to report that the 2.0 update is nearly ready to be submitted to Apple for review...but it was quite a long week to get to this point.

Adding In-App Purchase to Pinball Mini

I ended up spending about 2 days and around 1000 lines of code adding a store to Pinball Mini. Chris and I talked about it and initially we had decided we'd release a board or two every couple of weeks (with the new board being free). Shortly after that though, Apple changed the policy where app updates didn't let the app show in the "new" lists anymore...so that kinda defeated the point of making frequent binary updates. Due to this (and due to the, lets just say, underwhelming sales at launch), we put Pinball Mini on hold. The thing is, Chris loves drawing (and he's excellent at it...just look at the game and you'll see). Plus, I've been wanting to try out in-app purchase for a while now, so it seemed like the right time to give it a go.

Urban Airship

My first inclination was to go with Urban Airship. They had the whole in-app purchase backend ready to go and had a reference client, so I thought it would be pretty pain free. It turns out - I was right...until we loaded up the sample storefront and started trying to *use* the backend. At first, things seemed fine. I could upload a binary to the website, it would show up in the store. Then I noticed, it apparently wouldn't take my description text nor the picture to show in the store. I tried uploading a few different times and I never got an error, but it never saved anything I typed. I decided I'd come back to that after I had the code integrated with PM. Well, the integration was about as simple as can be. You just implement a few delegate methods, include the library in your project, and call a few functions and you're good to go. The problem is the client UI. It's pretty bad. Yeah, it looks like a basic storefront, but the way it transitions and loads items just looks unfinished. The updates tab never seemed to work...I tried uploading a handful of versions to the website and it recorded the version number correctly, but I never saw the updates show in the correct tab. The good thing about the client is that it's open source - so you can change whatever you'd like and the backend service has an API that can be used without the iPhone client. Chris whipped up a quick version of the storefront UI just to compare with the UA client. After seeing it, there was no way I could like the UA client in...it was custom in-app purchase all the way.

Going 100% Custom IAP

I looked over the docs for StoreKit and read up on Noel's IAP series - nothing looked all that bad. Boy, I didn't realize what a mess of code I was going to need to handle those handful of StoreKit delegate methods. Sure - you only really need to implement a couple of StoreKit methods to get IAP up and running. The trick though, is just as Noel pointed out in his series...*everything* happens asynchronously. It may not sound like a big deal, but it is...even if you force the user to make one purchase at a time, you still have the possibility that they will restore old transactions, in which case they all flood in at once. Anyway, the actual UI code for the storefront is maybe a couple of hundred lines long, if that. But the code that provides data to that UI and that manages the IAP process is nearly 1000. I had no idea it would take that much code for something so seemingly simple. I did add the ability for the store to "update" products - so if we wanted to tweak an existing product based on feedback, we can do that now. We can also "sell" free products in the store - something Apple doesn't support at all. In the end, I'm really happy with the decision to build a custom store...I learned a ton and got into some parts of the SDK I've been wanting to play with. I may end up making a blog post about how the Pinball Mini store is designed, but for now, I'll have to leave it at that.

This Week

Chris is still working on finishing the first in-app purchase board pack. We have one level ready, but we're shooting for 4 boards per pack. After the last three boards are ready to go, we'll pack those up and get them all tested. Once everything is ready to go, we'll ship everything off to Apple for review. All of this will take maybe another 5-8 hours this week. For the remainder of the week, I'm going to finish up some tax work (I need to file the annual report for the LLC...Tennessee requires it even for single member LLCs), pay a couple of taxes, and work on the marketing for Pinball Mini 2.0. I've read quite a few blog posts about people having bad (or at least not good) luck with online ads for indie games. I still want to give Facebook a quick go as well as a little AdWords (I have a coupon from Google, so might as well use a bit of that). I'm also going to submit Pinball Mini to some review sites...I'm not sure how that will go since it's more of a casual/chill out kind of game, but it seems like it's worth a short. Once I have all of that stuff out of the way, I'm going to start planning for the next product/revamp. I'm still thinking Budgee 2.0 (specifically for iPad, but also for iPhone/iPod touch) is where I should focus next. We'll see though - there are quite a few ideas queued up...I just haven't decided which one will help get this indie journey started the best.

Week 2 – Indie Week One Completed

My Indie Journey on February 22nd, 2010 No Comments

One Down, Many More to Go

Wow - week 1 as an indie is now behind me. I've gotta say, if I can make this work (i.e. pay the bills), I'm absolutely going to do this as long as I can. It's really energizing for me to be able to focus on exactly what I want to focus on and to totally set my whole schedule. I've been waking up earlier than I normally would and I've been getting more done at home than I typically did at my day job (even though I'm working about the same number of hours). I don't miss my ~40 mile roundtrip drive to work each day either. The only thing I miss from my day job are the guys I worked with - the group in my office was great to hang out with and we always had some interesting conversations. We still keep in touch of course, but it's just not the same. Overall though, I love what I've seen of the indie lifestyle thus far...but the big question is still whether or not this can work long term.

App Progress

So what got done last week? Well, pretty much everything I had hoped for. Pinball Mini 2.0 was basically re-written from scratch, the engines driving the sound, graphics, and physics were all updated to the latest releases, and support for OpenFeint was added. OpenFeint was surprisingly easy to add - the integration documentation outlined project/compiler changes that needed to be made and the actual code changes were extremely minimal...in short, it just worked. Right now, we only support the leader boards and achievements - although it would be awesome to support challenges at some point in the future.

I also spent quit a lot of time playing with the updated version of Chipmunk physics. I admit, when I first installed Chipmunk for Pinball Mini 1.0, I didn't really know what settings did what...I had some idea, but I didn't take as much time as I should have to understand exactly how everything fits together. Well, I corrected that for this release. The main reason I needed a deeper understand was to add what I'm calling "active objects" to Pinball Mini. These objects are different for each game board and they are physics based objects that interact with the ball in some way. Right now, PM can support two types - a spinner (exactly what you think...a shape that spins when a ball hits it) and a slider (slides back and forth on a preset path). I'm really glad to have these in the code because adding more interactivity to the boards is something Chris and I have talked about for a while. On top of that, PM now supports point multipliers...if you get 2 or more balls in the same cup, your score for *each* ball is multiplied by the number of balls in that scoring position.

Sound == Hard

Luckily, I didn't hit any huge roadblocks last week - the biggest one I hit involved new sounds for PM. To me, the game board is just a little too quiet. When you play a real mini pinball game, you hear the ball bumping the plastic cups, hitting other metal balls, and sliding around the rim of the game board. All of those sounds are missing from Pinball Mini. The biggest reason for that is that sound design is hard. Surprisingly hard actually. Sure, throwing in a sound effect or a little background music is simple enough, but to recreate the sound of a physical object based on a video game simulation is much more involved. I've tried quite a few different sound samples and they just don't sound right. I'm going to have to take some time to read up on this topic, because I feel like I'm missing something...maybe I'm not, but I can't help but think there is some method to building up these sounds.

This Week

The plan for this week is pretty simple. Performance tuning & in-app purchase. Now that all of the code is in place (minus some sound work), I need to re-tune the performance of the game. The physics engine seems to be a little different now so those variables need to be tweaked a bit, but the whole game needs to be sped up as well. The big deal though, is in-app purchase. I've read a lot about it (Noel Llopis from Snappy Touch has a great blog post series about it) and I'm not terribly worried about implementing it. I've been a server side programmer for quite a while, so the backend part shouldn't be too much trouble, but the Pinball Mini interface for IAP is yet to be done. I don't expect the client side part will be that big of a deal either, but I can see either side of IAP implementation taking long than I'd like. Chris is working on two new board packs for Pinball Mini's IAP - I think they are going to be pretty exciting since they'll be using the new active objects. All in all, I expect this to be a pretty smooth week and I'm really hoping to have Pinball Mini 2.0 beta test worthy by Friday. I'll leave you with the old and newly redesigned main screen for Pinball Mini - I think Chris did an excellent job on the look of it.

IMG_0120.PNG
Pinball Mini 1.0 - Main Screen



IMG_0164.PNG
Pinball Mini 2.0 - Main Screen

Week 1 – Starting from Scratch

My Indie Journey on February 15th, 2010 No Comments

As I mentioned in my previous post, I'm going to be blogging weekly about my indie journey. Today is the first "work" day of that journey, so I think we should probably look at the state of Cogitu today and then set some goals for this week.

A Year in Review

Cogitu LLC was formed back in February 2009. I originally published Budgee prior to that, but for the purposes of my indie journey, I'm going to stick with February 1st 2009 as my official starting point. So, what has the last year looked like sales wise? It went something like this:

1 Year of Profit.png

All told, I made right around $1800 in gross profit from app sales (Budgee & Pinball Mini combined) over the last year. In case you're wondering, there were a total of 1526 downloads over the period (excluding updates) - so that works out to about 4 downloads per day on average. You can see the sales started off relatively strong for the first couple of months, but then they fell off significantly. I made several updates to Budgee those first few months and that helped keep it in the new releases list (of course, Apple changed the way this worked earlier this year). The sales never really picked up for Budgee after the drop. I attribute most of that to the lack of updates and evolution of Budgee over this period. I had a backlog of items to add to Budgee, but after revisiting the new features, it became apparent that I needed to give the app a total overhaul to make it into the app I envisioned. I've been working on the 2.0 version, but due to various issues, I've had to wait until now to start making substantial progress. That covers Budgee, but there is another app we need to talk about...

Enter Pinball Mini

Chris, the awesome graphic/UI designer, and I had been talking about different games we wanted to build for quite a while. We had initially started working on a puzzle game called ROLLAB, but we started running into some technical difficulties as well as some logistics issues (designing the actual puzzles was going to take quite a while). Due to these issues, we decided to put it on hold for a while. Our second attempt at a game was a tower defense style game. I never posted screen shots of it, but we did actually have an alpha build that went out to a handful of testers. We both enjoyed it, but we couldn't settle on an art style. While working on this game, we also came up with some really cool takes on tower defense (as far as new gameplay mechanics). Unfortunately, both of our day jobs started requiring more of our focus, so this game had to go on hold as well. A couple of months later, we decided we wanted to pick a simple game that was fun to play and just power through it - so we did. Pinball Mini is that game. With Pinball Mini, we finally found an idea that was simple enough it could be built easily over a few weeks and the art style was perfect for Chris' talents. We launched Pinball Mini in early September. This is how it did (the first is revenue followed by units):

Pinball Mini Profit Since Launch.png
Pinball Mini Units Since Launch.png

Yeah, that's right. A whopping total of 335 downloads which is $228 in sales or $1/day in revenue. Thrilling isn't it? The good news is that Pinball Mini was simply a fun project for us to do. It didn't take a ton of time and we didn't have any set expectations for it. We've had some positive feedback from the few people that did purchase it so Chris and I have both been happy that at least a few people have been able to enjoy it. Now back to the reason I'm even posting this...I just quit my day job to write iPhone apps so how am I going to make this work?

The Plan (Part I)

The first stage of the plan is to get Pinball Mini up to snuff so that it's on par with other simple casual games. To accomplish this, we're adding in some new ways of scoring - you'll be able to get multiplier bonuses based upon the number of balls that land in each cup. We're also going to be adding more interactivity to the levels with some special physics objects. In addition, we're also going to include OpenFeint achievement and leader board support in version 2. We're going to look into supporting OpenFeint player challenges as well, but I have to do a bit of testing on that one to see how we'll pull that off.

In addition to the changes in the software, I'm also going to spend a bit of money on advertising. I didn't really try to do much promotion at all other than a quick tweet or two and I have no doubt that was a mistake. I haven't nailed down any concrete plans on the marketing aspect just yet, but I'll post more about whatever I decide in the coming weeks.

This Week

So, that's great and all, but what am I going to do this week to get things moving? Well, I've been prototyping a few of these changes this past week (specifically the OpenFeint support) and that work revealed that I need to structure the whole code base a little better. This project started out quick and dirty and that's how it ended up, but unfortunately, that won't do going forward. I expect I'll spend most of this week re-writing the majority of the app as well as upgrading the engine to the latest release of Cocos2d. I also have some administrative issues I need to handle with the LLC itself (finishing up some taxes etc.) so I expect that to eat up a bit of time as well. By the end of the week, I'm hoping I can have a second alpha version (with the re-written code base) up and running. Now if you'll excuse me, I've got a heck of a lot of code to write...

Starting My Indie Journey

My Indie Journey on February 12th, 2010 5 Comments

Since February of 2009, I've been dipping my toe in the iPhone OS development pool. I'm happy to have the two apps (Budgee & Pinball Mini) live in the store, but I've never been happy with what I have been able to do with them. I've been lucky enough to have a fantastic graphic designer, Christopher Echols, working with me on Pinball Mini (if it's on the screen, he drew it), but I still haven't had the time to really polish either app the way they need to be polished.

I haven't been able to focus on these apps because I've been working for a small .NET software startup for the last two and a half years. I left a Fortune 150 company to join the startup and I don't regret the decision at all. Both companies offered different environments and challenges, but I still felt that I wanted to run my own company full-time at some point. Working at a small software company was great, but I still wondered what I could do on my own.  After all, the reason I got my Computer Science degree and then added an MBA was specifically because I wanted to prepare myself for running my own business.

Well, as of last Friday, I decided to take the plunge and resigned my position at the startup and focus my full attention on Cogitu. I wish I could say the two apps that I have out there were bringing in enough to pay the bills, but they aren't...not even close. I'll post the current sales next week, but the short version of the story is that the total sales are less than 1/10th of what I need to live on (and I don't need much). It might sound crazy that I'm going to go the indie route for a while with apps performing like this, but I really believe the v2.0 revisions are going to change that. Pinball Mini 2.0 is already well under way and Budgee 2.0 has been in the works for a while, but it will most likely debut around iPad launch time. There are a couple of other apps in the queue after these, but I'm focusing one these first.

It's honestly pretty scary stepping out on my own, but it's also really exciting. I really don't know whether I'll be able to get Cogitu off the ground as a full-time business or not, but I'm going to give it my all and see what happens. I've set aside enough money to go 6 months or so without any issues, so hopefully I'll be able to tell how crazy this idea is by that time. If it doesn't work out, then so be it, at least I tried, but this is something I've been dreaming about for a long time, so I owe it to myself to take this path and see where it goes.

Starting Monday, I'm going to begin a weekly blog post about my indie journey. The posts will be half a journal for me, but I'm hoping they will also be interesting for others considering striking out on their own. I really don't know what is going to happen - but I'm really looking forward to whatever lies ahead.

Indie Journey - Engage!