Week 2 – Indie Week One Completed
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.

