GDC 2010: The Best of Both Worlds: Using UIKit with OpenGL

GDC 2010: The Best of Both Worlds: Using UIKit with OpenGL

Here are the slides for my session at the GDC iPhone Summit, The Best of Both Worlds: Using UIKit With OpenGL. It was a 30-minute slot, so the material is pretty condensed without the chance to expand on the topics. I’m giving an extended version of this talk at 360iDev in a few weeks, so I’ll be able to get into more details then and have a cool sample app that shows off all those concepts. ...

Flower Garden a Finalist for The 2010 Pocket Gamer Awards for Most Innovative Game!

Flower Garden a Finalist for The 2010 Pocket Gamer Awards for Most Innovative Game!

Pocket Gamer just announced the finalists for the 2010 Pocket Gamer Awards. I was thrilled to see that Flower Garden has been selected as a finalist for the Most Innovative iPhone Game award. On a personal level, this nomination means quite a bit for me. Flower Garden has gotten some great reviews, and some incredible user feedback, and it was even featured as an Apple Staff Favorite on the App Store, but it had never been up for an award of this importance. ...

Figuring Out The iPad

Figuring Out The iPad

Everybody was buzzing with excitement yesterday morning. A flurry of Twitter comments scrolled by all throughout the morning and the afternoon. You could taste the iPad in the air (OK, almost). Shortly after the unveiling, people divided themselves in to two camps: the iPad haters, and the iPad defenders. Each of them was intent in convincing the other camp that their view is the right one. Just like most of the pointless human conflict over the last two thousand years minus the bloody wars part. ...

Making A Living (Barely) On The iPhone App Store (aka The Numbers Post)

Making A Living (Barely) On The iPhone App Store (aka The Numbers Post)

The App Store is a very hit-driven environment. A few apps sell a large amount of units, and the great majority sell next to nothing. That’s somewhat similar to the music industry, except that the audience for music is much larger, so both the big hits and the small players get more sales. We’ve drooled over the numbers chart toppers sold, I’ve seen sales reports of very successful games, and we’ve also seen what happens when apps languish at the bottom. ...

Flower Garden Now An Apple Staff Favorite On The App Store Worldwide!

Flower Garden Now An Apple Staff Favorite On The App Store Worldwide!

Aparently Santa came to town a little later this year. Or maybe it was the Reyes Magos (also bit late). In either case, I woke up this morning to find a very nice present waiting for me at my computer: Apple featured Flower Garden as an Apple Staff Favorite! Apparently this is in all App Stores worldwide too (I have confirmations for Canada and Thailand, so I imagine it applies to other territories as well). ...

All About In-App Purchases Part 4: iTunes Connect

All About In-App Purchases Part 4: iTunes Connect

We’re used to going through the approval process for binaries, but in-app purchases are a bit different. Here’s some of what I learned going through this for Flower Garden. Purchase States When you first create an in-app purchase in iTunes Connect, it is listed as “Pending Developer Approval”. This means that if you ask for info on that product id with a SKProductsRequest, you’ll get the info for the item only on development builds, not in distributions builds. ...

All About In-App Purchases Part 3: Anti-Piracy Measures

All About In-App Purchases Part 3: Anti-Piracy Measures

One of the big advantages of in-app purchases for some people is that it makes pirating content more difficult. For me it wasn’t much of an issue because a) Most of the people who enjoy Flower Garden aren’t the ones checking out the app warez sites, and b) I know better than to waste my time trying to prevent piracy [1]. Besides, I always roll my eyes whenever I hear that 90% or some other large percentage of the users are using a pirated copy, so the developer lost all that money. News flash: 99% of those users using a cracked version wouldn’t have bought your product anyway, so you can rest a bit easier at night. ...

All About In-App Purchases Part 2: Selling The Goods

All About In-App Purchases Part 2: Selling The Goods

The last entry about in-app purchases left off with the products correctly displayed on the store and ready for purchase. Let’s push that buy button! Purchasing a product The store is fully populated, the items are displayed and, if all goes well, the user presses the buy button. What now? At this point I check that in-app purchases are enabled and if they aren’t, I put up a message box. Apple says you can also do this earlier, but I figured I’d rather show users what’s available and entice them to buy it. By the time they get that message, they’ll be much more likely to enable them and continue the purchase than if they never saw the store in the first place. ...

All About In-App Purchases Part 1: Displaying Store Items

All About In-App Purchases Part 1: Displaying Store Items

Ever since Apple announced OS 3.0 with in-app purchases, I knew I had implement it in Flower Garden. The concept of in-app purchases fits very well with the idea of a flower shop where virtual gardeners can purchase extra items for their gardens. It was just a matter of justifying the time necessary to implement it. I knew from my previous experience with downloadable content in games that only a small amount of the people who originally purchased the game would be interested in buying additional content. Flower Garden has been extremely well received, both by the media and the players, but it never got high-up enough on the charts to be a big seller, so in-app purchases were doomed from the start to be very limited. ...

Two Day iPhone OpenGL Class Coming to The Bay Area

Two Day iPhone OpenGL Class Coming to The Bay Area

After the success of the OpenGL class in Denver, we’re bringing the iPhone OpenGL class to the Bay Area. It will be held November 19th and 20th in Cupertino, right next to Apple’s headquarters at Infinite Loop. The class is aimed at iPhone developers without previous OpenGL or 3D graphics experience. As part of the class, we’ll create both 2D and 3D OpenGL applications, and we’ll cover a broad range of topics, start with the basics of setting up OpenGL and rendering triangles on screen, to multitexturing and point sprites in the last day. This is definitely a hands-on class, so you’ll need to bring your laptop and be ready to do some coding. ...

Space in Stereo iPhone Game Jam Postmortem

Space in Stereo iPhone Game Jam Postmortem

A week ago, I sent out a quick tweet asking if anyone would be interested in doing an iPhone Game Jam at the 360iDev conference. The response was immediate and hugely positive, so, with the help of the organizers of 360iDev, we put together an informal iPhone Game Jam. The idea was to get together Tuesday evening, starting at around 7PM, and to code all night and have an iPhone game (or at least a prototype) done by morning. About 25 showed up, working on about a dozen projects. Participants were welcome to group into teams or work solo. There were no restrictions as far as themes or technology. The only rules were that you had to finish something by morning (no leaving something that was 5% of a game) and you had to start the game from scratch (no finishing a game you had started a while ago). ...

360iDev: Cranking Up Floating Point Performance To 11

360iDev: Cranking Up Floating Point Performance To 11

Here are the slides and the source code for my talk this afternoon at 360iDev in Denver. Thanks to everyone who came to the talk. I was surprised to see so much interest on this topic, so that was great. Session description: The iPhone has a very powerful engine under that shiny hood when it comes to floating-point computations. This is something that surprises a lot of programmers because by default, things can slow down a lot whenever any floating point numbers are involved. This session will explain the secrets to unlocking maximum performance for floating point calculations, from the mysteries of Thumb mode, to harnessing the full power of the forgotten vector floating point unit. Stay away from this session if he thought of reading or even (gasp!) writing assembly code scares you. ...

GDC Austin 2009: Squeezing Every Drop Of Performance Out Of The iPhone

GDC Austin 2009: Squeezing Every Drop Of Performance Out Of The iPhone

I just put up the slides for my talk this morning at GDC Austin: Squeezing Every Drop Of Performance Out Of The iPhone. Thanks for everyone who attended the session and for the great feedback so far. If you’re going to be in China next month, I’ll be giving a very similar talk at GDC China. Session description: This session will describe the iPhone performance optimization lessons learned through many hours of tuning. We’ll start with an overview of the performance analysis tools available on the iPhone SDK to help you narrow down your performance bottlenecks. Then we’ll cover the best way to set up your render loops, rendering best practices, how to deal with the limited memory, or even how to drop down to assembly to use the forgotten vector floating point unit. ...

From Full to Lite in Under An Hour

From Full to Lite in Under An Hour

A bit over a month ago [1], I decided it was time to create a “lite” version of Flower Garden [2]. I really thought it was going to be a pretty easy task: Disable a few pots, remove some seeds, and repackage it. Sounds simple enough. But before that, I had to decide how to structure the project for the lite version. ...

At The Mercy of Apple's Whim

At The Mercy of Apple's Whim

We’ve known for a long time that Apple are king-makers when it comes to bringing up an app through the ranks of the App Store. A nice feature on the front page, and boom, guaranteed sales for at least a week. We’ve all complained at the randomness of it all, but we’ve all wished to be there. It’s random, but at least it’s something positive, so it’s a bit like winning the lottery. ...