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

iSimulate: A Great Add-On For The iPhone Simulator

iSimulate: A Great Add-On For The iPhone Simulator

I just had a chance to check out iSimulate, a tool for iPhone developers created by Vimov. iSimulate is intended to complement the current iPhone simulator by adding most of the features a real iPhone has. In the spirit of full disclosure, Vimov sent me a promo code to try it out for free, but I only accepted it with the condition I could write my unfiltered impressions. So here we go. ...

Early Bird Registration Ending For Denver OpenGL Class And 360iDev

Early Bird Registration Ending For Denver OpenGL Class And 360iDev

For those of you still on the fence about attending my iPhone OpenGL class in Denver, you should sign up before this Sunday if you want to get the super-combo deal. Right now you get a total combined discount of over $300 if you sign up both for the OpenGL class and the 360iDev conference. If you’re only interested in the OpenGL class, the early-bird registration ends next Friday, September 4th. Obviously I’m biased when I say the class is going to be awesome (which it is), but I can also say with total honesty that 360iDev is an incredible conference. It’s very different from WWDC, but that’s what makes it so great: It has top-quality content and speakers, but it’s small and intimate, so you get to meet and hang out with all the other speakers and participants. It was at the first 360iDev conference back in March that I met Keith and Owen (among many other cool developers) in person for the first time and that’s how App Treasures was born. ...

Getting Started With Shaders On The iPhone 3GS

Getting Started With Shaders On The iPhone 3GS

I just wrote an article for Mobile Orchard on how to get started with OpenGL ES 2.0 on the iPhone 3GS. It goes over all the steps necessary to set up a barebones project that renders a quad on screen using a vertex and a fragment shader. It’s not the most stunning thing ever visually, but I think it makes for a good starting point for OpenGL ES 2.0 projects.

Dirty Coding Tricks

Dirty Coding Tricks

If you haven’t read it already on Game Developer Magazine, don’t miss the Dirty Coding Tricks feature article on Gamasutra. I contributed two “dirty tricks” used in some of my past projects. Identity Crisis deals with the horrors of a CRC clash on a resource right before submitting the gold master. And The Programming Antihero shows a fairly common trick in the games industry to get that extra memory after the artists and designers swear up and down that they can’t cut any more content. ...

Handling App Store and LinkShare Links

Handling App Store and LinkShare Links

One of the perks of being part of the App Treasures label is that we get some nice cross-promotion with an in-game view to display other titles in the label. This list is, of course, stored in our server and pulled in through a standard UIWebView. It links to other pages with details for each of our games, and a link to buy it directly from the App Store. Everything is really straightforward, except for the App Store link. ...

Environment Mapping Demo With OpenGL ES 1.1

Environment Mapping Demo With OpenGL ES 1.1

I just finished creating a graphics demo for a chapter I’m writing for the book iPhone Advanced Projects edited by Dave Mark. In the chapter I go over a few different lighting techniques and go in detail on how to do masked environment mapping on an iPhone 3G with OpenGL ES 1.1. The demo ended up looking pretty good, so I decided to upload a quick video showing the different lighting modes: ...

Targeting 2.x With 3.0 Features. Trouble Ahead.

Targeting 2.x With 3.0 Features. Trouble Ahead.

As far as Apple goes, OS 2.x doesn’t exist anymore. That much was clear from WWDC when we asked their engineers any questions about it. And as cool as 3.0 is, with all the new nifty features, the reality is that there’s still a good percentage of (mostly iPod Touch) users out there still on 2.2. We can have our cake and eat it too by targeting 2.x and still using a few select 3.0 features. But it’s more complicated than Apple made it out to be. Trouble is looming just under the surface. ...

Balancing Flowers

Balancing Flowers

I feel bad for the designers of games like Civilization or Supreme Commander. And I don’t even want to think about World of Warcraft. I thought it was tricky to balance the different flowers in Flower Garden, so I can only imagine the amount of time and effort than went into tweaking all the properties of the many dozens of units in those games to balance them just right. At first, things sounded simple enough: Create 20 different seeds, with varied looks and properties. I had a really cool tool to tweak the flower DNA in real time (more on that another day), so how hard could it be? ...

Teaching a Two-Day OpenGL iPhone Class. Register Now!

Teaching a Two-Day OpenGL iPhone Class. Register Now!

I’m excited to announce the intensive, two-day class on OpenGL for the iPhone that I’ll be teaching. The class will be held September 26th-27th, in Denver, right before the 360iDev conference, and it’s part of the Mobile Orchard Workshops. The class is aimed at iPhone developers without previous OpenGL experience. It’s going to be very hands-on, and you’ll create both 2D and 3D applications during the weekend. You’ll learn all the basics: cameras, transforms, and how to draw meshes, but we’ll also cover some more advanced topics such as lighting, multitexturing, point sprites, and even render targets. Most importantly, you’ll walk away with a solid understanding of the basis, which will allow you to continue learning OpenGL and advanced computer graphics on your own from the docs, samples, or even browsing the API directly. ...

Flower Garden Coverage and Interview on Spanish TV

Flower Garden Coverage and Interview on Spanish TV

A couple of weeks ago I gave a presentation about iPhone development at Gamelab, the main game development conference in Spain (yes, it was my first technical presentation in Spanish!). Afterwards I was interviewed by Zoom Net, a popular TV show about games and technology. Yesterday they aired the episode with my interview and I was pleasantly surprised to see they turned it into a full 4-minute section covering Flower Garden. Coverage starts at 8m 40s from the start (and, obviously, it’s in Spanish). ...

A Huge Leap Forward: Graphics on The iPhone 3G S

I just wrote an article over at Mobile Orchard about the new graphics capabilities on the new iPhone 3G S. Check it out to find out the details, and what those new features might mean for us developers.