Note: Graphics 2.0 is now in public beta for all Corona SDK Pro and Enterprise subscribers. Please see Walter’s recent blog piece on the news.
Right now, many of you are probably trying to figure out whether you want to upgrade to Corona SDK Pro right now, and lock in our promotion before it ends and prices go up this Wednesday, May 1.
So this week, I wanted to sit down and talk to you about the difference between Corona SDK Starter and Pro features.
In addition, I want to talk about cool graphics features coming to Pro developers that will make mobile app development breathtakingly awesome.
This is a game-changer for a bunch of reasons. I’ve covered some of these before, so let me highlight the biggest reason in my mind and that’s this: we can deliver new functionality out-of-band from Daily Builds and/or public releases. That means new plugins can go up and you can get them immediately. No waiting for new public releases or Daily Builds.
And if you find a bug in a plugin, the plugin vendor (which might be us or might be a 3rd party) can get a fix to you in real-time. That’s all thanks to the fact that plugins are hosted on our build servers.
This is a big change from how things worked in the past. The problems back then were that these sorts of features really belonged in something like a plugin but were baked into the core engine instead. That meant we spent numerous cycles trying to support extra add-ons like ad networks and other services like the now-defunct OpenFeint. Plugins allow us to decouple all of that. Plus, it means we can remove extraneous cruft and keep binary sizes small.
Now, who gets plugins?
Well, we plan to offer both Starter and Pro developers a bunch of free plugins for things like monetization services, but there will inevitably be Pro-only plugins for certain features.
Pro developers will also get to play with plugins first because they’ll initially be available in Daily Builds. Starter developers, on the other hand, will have to wait until the next public release which is scheduled for this summer.
Okay, so you’re a Pro developer and you’re asking: “When?”
As I talked about last week, we’ve seeded access to plugins for Beta testers. If you’ve been sniffing around the Daily Build summaries, you may have guessed that the Simulator portion of the whole plugin device build system is already in place. What we are working through right now are polish items like being able to build to a folder with spaces in it, some issues with building multiple plugins, linking to extra frameworks the plugin requires, and so on.
We’ve got documentation lined up and will share that with you soon, but we want to get as many details right as we can.
Let’s talk shop about graphics.
What’s always separated Corona from the pack is our understanding of what makes a great graphics model for developers. When I designed the Corona graphics model, I always thought we needed to build something that made sense to the Flash developer/designer. Back then, these were the indies of the web before the media started using the term “indie developer.”
That meant the Corona model had to be something where you didn’t feel as complex as making a movie — or require a big Hollywood budget for that matter!
With the next-generation of Corona graphics, we are going to continue in that tradition. This is a new engine written from the ground up to take advantage of every transistor of calculating power in OpenGL-ES 2 hardware.
The key difference in what we’re doing is that we are optimizing OpenGL for 2D/2.5D. It’s the same model you’ve been using in Corona all this time. Just lay down objects like you would oil paint, the same way you might do in Photoshop, Flash, or Illustrator.
But this goes way beyond just a mere oil painting. You are going to have a powerful, familiar, and intuitive programming paradigm at your disposal. Advanced motion graphics rendering and compositing — in real-time!
What sort of graphics features are coming?
First, there’s 3D without the Z. That means we’re going to offer 3D perspective effects without the Z-axis. If you ever used Director you know you can distort a rectangle and it will have a perspective skew. That’s the kind of thing we are going to enable.
Why would we do that? So you can continue to use the same intuitive Corona model that you know and love. You don’t have to worry about all the weirdness around managing a real 3D scene. Most of the time, it’s all overkill, when you really just want to do some simple 3D-like effects without doing the gymnastics of modeling in 3D.
Second, we want to enable you to render display objects directly to texture. Today, you have to save them to a file which is slooow. You’ll be able to do awesome screen transitions. More importantly, this is going to enable a lot of cool 2.5D mesh effects like page curl.
Then there’s doing augmented reality. Today, you have to load videos through a native display object. These objects live outside of OpenGL instead of in the OpenGL world. A lot of the newer devices have better hardware support that allows you to directly feed a camera or video to OpenGL textures, so that’s what we’re looking to build in. Lots of possibilities here, especially with video compositing!
Color transforms are something a lot of you have asked for, especially if you’re a Flash developer. Today, you can tint any image, but what you also want is to add a per-channel color offset. So we’re going to let you do that to any image.
But color transforms would be even more interesting if you could apply Photoshop-style filter effects, so we’re going to throw those in too. Initially, we’ll have prebuilt effects, but later on, we want you to be able to write your own custom filters!
Finally, I showed you a demo of 5000 fish several weeks ago. The goal was to have a supersonic graphics engine. Why does this matter? Imagine you wanted to do particle effects and layer filters and transforms on top. Anytime you do fancy effects, there’s a cost, so you want the core of the thing to be fast.
Okay, there’s more features to talk about, but I’m out of breath!
I know many of you want to know when this will be available. While I won’t promise a specific date, I will say we are working aggressively, and based on how things are progressing, I think we can make this available in the summer.
These features will come standard with for Pro developers. What about Starter? Well, unfortunately, we can’t make these free. If you want to publish an app with these advanced features, especially if you’re serious about having awesome graphics in your app, then you really ought to upgrade to Pro today and lock in the promotion — you won’t regret it!
I’m stating the obvious, but it’s a really exciting time to be a Corona developer. And it’s a really exciting time for us here at Corona Labs. We believe there’s a deep profundity to visual expression. We’re going to continue to push the envelope so your apps can fully express their brilliance!