During the Fall semester of 2010 I took an iPhone Development class. The instructor was a teacher I had taken my C# classes from and I always enjoyed the way he taught so I was pretty sure, at the very least, that it would be a fun class – but I didn’t think it would be inspiring.
One of the first orders of business in this class was getting to know the mac. I’ve always been a Windows/Linux guy so getting use the mechanics of Mac OS X was something a hurdle at first and made me curse the Jobs. “This mouse has no right-click button! WTF! Where’s my right-click?!?” That problem was solved by bringing my own mouse. I still don’t like the limited breadth of the file selection windows, but really, these are minor complaints. If you don’t know why this class had to be taught on a mac, it’s because all the dev tools for iPhone only run on mac. Is that a very closed approach for a platform that touts its creative freedom? Yes, but that’s a topic for another day.
Let’s get a little further into what this class was and wasn’t.
This app never got published. I didn’t know if there would be any copyright problems with it even though it would be a free app. I may visit that again in the future if I get al the bugs worked out. What the simulator did though was get me thinking about other possibilities. When that semester ended I was now mac-less.
To solve the issue of no mac I originally started with a mac VM someone at work had. It was a start, but it would only run on Intels and my main box at home is an AMD. Strike 1. I fought with that for a while, but there were no perfect solutions to be had. Next I tried building a hackintosh. This was mostly successful. Using some rather cheap parts and a modded bootloader, I had Mac OS 10.6.4 up and running. To make it seem more legit I even bought the installation DVD. While it did work pretty well it had three major flaws. First, I could get the sound to work on it. Not a big deal for most things unless I wanted sound effects in my games. Then I would have to wait till I had the app on a device to actually see if the sound worked the way I wanted or not. Second, I use a KVM switch to share a single monitor, keyboard and mouse between any computers that happen to be on my desk and anytime I switched back to Windows, the hackintosh would lose the keyboard and mouse and I’d have to reboot. Boo. Major boo. The third thing, which ended up being the proverbial straw that broke the camel’s back was the OS updates. Periodically, just like every other OS out there, Apple releases updates for the OS. The problem is that when you go from 10.6.4 to 10.6.5, or any other incremental release is that you have to install a patched kernel to work with your bootloader after the update finishes installing but before you reboot. I had successfully done this many times, but for some reason or another, when I did the upgrade to 10.6.6 the process failed and I was left with a hackintosh that would more accurately be described as a brokentosh. The only way to get it back up and running was to use my buddies’ macbook pro at work and connect my hard drive to and bunch of other nonsense I had no desire to do.
This brought about the acquisition of our mac mini, which is what I am typing on as I write this. From the beginning of this project my wife had said we should just buy a low-end mac and then see if I could make any money at this. As is usually the case, she was right. So as we were waiting for our tax return I started scouring eBay looking for mac mini’s and mackbook pro’s. We looked and looked but I noticed the refurb’d macs being sold on Apple’s site weren’t that much more and still had warranties and most were the newer mac mini which is decidedly sexier than the previous generation. Plus it’s a cinch to open up and upgrade the RAM (haven’t done it yet, but I plan to). So when the return was in my checking account we sprung for a dual-core 2.4ghz mac mini. No speed demon, but as it turns out, it’s plenty speedy for this kind of development.
No we have our platform. What are we going to build with?
Almost immediately I installed Xcode and Phonegap, but during this long looking process I started looking at other tools for other projects. During this time was when I caught a news report about 14-year old kid who made Bubble Ball. Turns out he lives like 15 minutes from me, same town as my parents. When I watched the interview the local news station did with him he mentioned the SDK he uses, Corona SDK. What caught my attention was that he mentioned it had a physics engine built in. While I do have a couple semesters programming experience, I didn’t have the first idea of how to build a physics engine, nor did I really want to; but I really wanted what a physics engine offered for games. Prior to hearing about Corona I was mostly focused on coming with a few productivity-type apps, but this opened up more possibilities.
During this same time-frame I finally upgraded my ancient Windows phone to Motorola Defy powered by Android and installed Angry Birds. You know how it goes with Angry Birds. You play it once and you’re addicted. About that same time I read how much money Angry Birds had made and that just added to this desire to get something built.
So fast forward to the present day.
I’ve got my mac mini with Xcode and Corona SDK purring along. I bought a copy of Illustrator and Photshop for my PC to make the graphics. If you’re wondering why I didn’t just buy the mac version, well, let me tell ya. I want to be able to draw whenever I get a bit of inspiration and my current laptop is a Windows laptop. Plus my desktop is many times the machine this mac mini is. If I am really successul in this venture I may upgrade my laptop to a macbook pro in the future at which point I’d probably get Illustrator for it as well. But we’re not there yet.
I’m hoping to make my first release a one-man job. I’m doing all the code, graphics and maybe even music. I have no musical training, so that part may not work out. I’ve got a few ideas I’m kicking around and right now I’m familiarizing myself with Lua and Corona SDK. I’ve been sketching a few characters, but nothing solid yet. My goal is to have my first big release by August 1st, 2011. I think that gives me enough time. Anyway, stay tuned…