i’m so full of ideas

Archive for February, 2010

Hello, iPhone hearts players

February 15, 2010 1:55 pm

I just got the “available for sale” email from Apple, so the new version of Hearts Solo should be available on the App Store pretty soon. The good news: it now has all the user interface improvements I added to Hearts Net, and also the improved robot players. The bad news: you probably won’t be able to finish an entire game.

Here’s a review I got on the iTunes App Store just a couple of days ago, for Hearts Solo:

I’ve now played 150 games against the ai players and it’s a great implementation! It can be a bit easy to shoot the moon (something apparently improved in the author’s hearts net) but still MUCH better than most other iphone hearts games. Highly recommended, great fun.

So, let’s review. This person has spent many, many hours playing the free version of my game. He is aware that there is a better, paid version of the game. He is even aware that the paid version fixes a criticism he has of the free version. Yet he is apparently not willing to spend just a couple of bucks buying Hearts Net.

I’m sorry folks, but this is not acceptable. I know the App Store gives you strong clues that all apps ought to be free, but I’m not going to play like that. If I can’t get paid for this kind of work, then I’m not going to do it at all.

By crippling Hearts Solo, I’m trying to send the message that it’s just for evaluation purposes. It has been downloaded over 30,000 times. So this is my appeal to all 30,000 of you: If you like it, spend some money on the paid version. If you don’t like it enough to pay for it, then this is where we part company.

iPhone and iPad SDK coexistence

February 14, 2010 7:14 am

Apple has released a new SDK specifically for iPad. It’s not yet ready for prime-time, so if you want to continue to develop for iPhone, you’ll need to use both the old and new SDKs for awhile. Curious about the logistics of this endeavor, I googled up this article. I dutifully followed the instructions and installed the beta 1 release in a separate dev directory. Yeah, I’m calling shenanigans. It did not work. I think it’s a bit irresponsible to post something like that without having tried it.

You can’t completely separate the two SDKs. According to the release notes, the one that is installed last is the one whose compilers will be used for both. I had other problems as well. Both the old and new device simulators were crashy. So I completely wiped both sets of dev tools and reinstalled the iPhone SDK.

Recently, Apple released beta 2 of the iPad SDK. They may have fixed the problems I experienced before, but I’m not taking any more chances. This time, I got myself an external Firewire hard drive. USB 2.0 would also work, but I prefer Firewire for a possibly frivolous reason: I have so many USB devices that it’s difficult to find a place to plug in a new one, but I have two Firewire ports on the back of my Cinema Display that are otherwise unused.

This next part is important. You’re going to need to boot off this drive, so its partition map scheme must be set to “GUID Partition Table.” If it isn’t, you should reinitialize it so that it is. On the Mac, you use the Disk Utility program for this. It doesn’t create GUID partition tables by default, so you have to press the button that says “Options…” and change it.

Next, use a program like Carbon Copy Cloner to make a copy of your primary hard drive onto the external drive. Finally, in System Preferences, pick “Startup Disk,” select your external hard drive, and reboot. Now install the new iPad SDK. It will be copied onto your external disk, leaving your primary disk alone. This way, the two SDKs won’t butt heads with each other.

It’s a shame that Apple is making us solve a software problem with hardware, but this is the sort of inconvenience you have to put up with if you want to live on the bleeding edge. I can’t even remember the last time I had to use the Startup Disk pref pane before this. It’s been years, surely. This reminds me of when I used to work at Be, and we had a new version of BeOS to install every couple of weeks.

iPhone cert FUD

February 12, 2010 9:24 am

I finally got around to installing Snow Leopard on my MacBook Pro. I don’t believe in putting a new operating system on top of an old one, so I started over from scratch, on a brand-new hard drive. Which explains why I waited so long. Installing everything from scratch is torture.

A couple of days ago, I could no longer postpone reinstalling all the dev certs and crud you need to make iPhone apps that you can put on real iPhone hardware. As I was installling all that stuff, I encountered this interesting text from Apple’s developer website, concerning development certificates:

It is critical that you save your private key somewhere safe in the event that you need to develop on multiple computers or decide to reinstall your system OS. Without your private key, you will be unable to sign binaries in Xcode and test your application on any Apple device. When a CSR is generated, the Keychain Access application creates a private key on your login keychain. This private key is tied to your user account and cannot be reproduced if lost due to an OS reinstall. If you plan to do development and testing on multiple systems, you will need to import your private key onto all of the systems you’ll be doing work on.

Well! From the sound of that, you would be forgiven for thinking that, if you don’t back up your private key, you’ll be completely dead in the water, never to write another iPhone app again. That’s certainly what I thought when I was setting this stuff up the first time, about a year ago. So I did just what they told me to, and I backed it all up. I was reading somebody else’s blog recently that claimed the text quoted above was literally true. Which is why I’m writing today.

Actually, no. If you don’t back up that stuff, you won’t be dead in the water. I found my cert backups from a year ago, and tried to use them, but it was just too painful. Nothing about Apple’s iPhone code signing process makes much sense. When you get stuck, it’s best to just blow everything away and start over.

Which is just what I did! I removed everything from my keychain that had anything to do with iPhone development, I threw away all my provisioning profiles, and I started over from scratch. It went a lot easier this time. I think I’ve finally been doing this long enough to understand a few of the concepts.

From the sound of it, I think the only time you’d really need to follow Apple’s backup device is if you plan to use two or more Macs for iPhone development simultaneously. I’ve never needed to do that, so that’s one less thing to worry about.

hearts progress

February 11, 2010 9:04 am

I’m about to release new versions of both my hearts games. I plan to add a link on the help tab that will show people the latest blog entries pertaining to my card games. I guess that means that I should have at least one blog entry to link to, which is why I am writing this. Heh!

As of this writing, Hearts Net has been in the app store for 12 days. So far I’ve made $64.11 on it. Not exactly getting rich, but I’m still twiddling the knobs. Yesterday was my most profitable day yet, so the situation could still pick up. There’s a lot of stuff I can try.

My best beta tester to date discovered that wifi games won’t work in environments with restrictive firewalls. (Thanks, Philip!) I know what it will take to fix it, which I plan to roll out in an update. If anybody else has run into this problem, please speak up. If it’s affecting a lot of people, that would make it a higher priority.

Personally, I think it’s more important to port the game to the Mac. Apple’s App Store policies have conspired to convince people that iPhone apps should be $0.99 or free, so that’s working against me. Mac users have a reputation for paying for software they use, so I think I’d rather be in that market.

Yes, I know that almost all of you are clamoring for configurable rule variations and better Hearts robots. I’ll get there, but I can’t do all this for free. If the Mac version turns out to be more profitable, then I’ll be more in the mood to do all the stuff you guys want me to.

willow weep for me

February 2, 2010 10:53 am

Last year I went through a whole bunch of different ideas for iPhone apps I might write. I dawdled for way too long, spent too much time working on apps that I ultimately scrapped, and generally wasn’t very efficient with my time. But I finally got something into the app store in June of last year. I made it free, because I wasn’t sure how it would go over. Taking people’s money is Serious Business.

I released a card game that I call Hearts Solo. It has been pretty popular. To date, it has been downloaded by 27,942 people. Of that number, 5,536 upgraded to version 1.1.0 when it was released. So I felt that I had adequately paved the way for a better version that I could charge real money for.

Once again, I took way too long with the follow-up. Adding network play turned out to be pretty close to the hardest programming challenge I’ve ever attempted. It sounds easy enough, especially since I’ve done so much network programming in the past, so I can’t explain it. My best guess is that I didn’t choose a very good internal structure for the code. The practical upshot is that it took me about six months to finish.

I put Hearts Net on the App Store on Friday the 29th at $3.99. Two people got the game with promo codes I handed out. A third person bought it with actual money, but I happen to know that it was because she doesn’t know how promo codes work and screwed up, because she emailed me about it. So I lowered the price to $1.99, and the next day I got six sales, none with promo codes. So I figured, hey, things are looking up. The next day, five sales. Yeah, this is not looking good. So I made the game free, hoping that will help get the word out, and I can start charging later.

Yesterday was the first day that the game was free. Total downloads: 1,717. My best day before this was when I released version 1.1.0 of Hearts Solo. It was downloaded 590 times on July 31.

SO. Here’s what this says to me. There is an awareness of my game among the people who might want to play it, and a fair amount of demand. Quite a few of those people are playing it. I gave them a free version to start, so they know what they’re getting into. But they’re not willing to pay even $1.99 for it?

Come on. Really? Not even $1.99? You’re breaking my heart here.