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. ...

GDC Time!

GDC Time!

It’s that time of the year when all the games industry converges on San Francisco. Even though this is my 12th GDC (in a row, no less), and the conference has grown and matured a lot, it still feels as exciting as the first one. This year will GDC will host the first ever iPhone Summit on Tuesday and Wednesday. It’s great to see the iPhone getting that much recognition as a gaming platform. Definitely way more than last year’s presence at the conference. Both days are going to be packed with awesome sessions, and I will be giving a presentation on mixing OpenGL and UIKit on Tuesday at 11:15am. I’ll definitely be around throughout all the summit (except when I sneak out for a few minutes over to the Indie Summit which unfortunately happens at the same time). ...

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. ...

Buy Flower Garden This Wednesday To Help Haiti

Buy Flower Garden This Wednesday To Help Haiti

As part of Indie+Relief, all proceeds from Flower Garden this Wednesday will be donated to Haiti through Doctors Without Borders. Encourage your friends to buy Flower Garden for a good cause! That includes in-app purchases, so feel free to load up on fertilizer :-) If you’ve already purchased Flower Garden and you’d still like to help out, you can check out the great lineup of Mac and iPhone apps at Indie+Relief, or donate directly to Doctors Without Borders here. ...

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. ...

Great Presentation on Data-Oriented Design

Great Presentation on Data-Oriented Design

A few days ago, Tony Albrecht posted the slides of his presentation titled “Pitfalls of Object-Oriented Design” [1]. Even though the title is really broad and could easily be misinterpreted, it’s not just a general bash on OOD. Instead, it’s very much focused on how object-oriented design is not a good match for high-performance apps (games) on modern hardware architectures with slow memory access and deep memory hierarchies. His proposed solution: Data-oriented design. Spot on! ...

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. ...

Data-Oriented Design (Or Why You Might Be Shooting Yourself in The Foot With OOP)

Data-Oriented Design (Or Why You Might Be Shooting Yourself in The Foot With OOP)

Picture this: Toward the end of the development cycle, your game crawls, but you don’t see any obvious hotspots in the profiler. The culprit? Random memory access patterns and constant cache misses. In an attempt to improve performance, you try to parallelize parts of the code, but it takes heroic efforts, and, in the end, you barely get much of a speed-up due to all the synchronization you had to add. To top it off, the code is so complex that fixing bugs creates more problems, and the thought of adding new features is discarded right away. Sound familiar? ...

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). ...