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!

Share this post....Share on Facebook0Share on Google+0Tweet about this on TwitterShare on LinkedIn0
  1. So to be clear… 2.5D will not be able to use 3D objects, bur rather skew 2D objects to simulate 3D?

    Also, could you also provide more examples of what the Starter and Pro-Only plugins will be? Are you saying Starter members will be able to use monetization?

    • The skew 2D is just one of the 3D effects I mention in the post. We’re also looking at supporting 3D models in some fashion, but premature to talk in detail. Starter will have access to several monetization services, for example, ad networks.

  2. Sorry, me again. The Graphics Engine seems to imply that there will be some visual / GUI based laying down of image objects? All the stuff about oil painting and it being like Photoshop, Illustrator etc… Am I misreading that?

  3. I don’t need real 3D – but having some nice 2.5D Effects would be nice ( like the flip animation ).

    Now for the Filters/Shaders/Effects or however you want to call them:
    Blur is a must-have. This will help making all sorts of stuff (shadows, dust, ghost-effect, even real liquid simulation (when combined with treshold).

    Augmented Reality sounds nice – so I guess Camera-Overlays will be something that might be possible? With the combination of Filters there might be some nice opportunities for better Camera-Apps.
    Hopefully the Mask-System will be improved in some way.

    I’m looking forward for some nice features (and hopefully some more people who’ll use the full potential of this! 😉 )

  4. So you have been teasing us with the new graphics engine since last year December and you think you can make it available by summer. Mmm I wish you didn’t say anything before June. :)

  5. Can you create native Plug-Ins with the Pro license?

    Will you be able to access the native network APIs (to create a plug-in supporting secure sockets (non-https based)?

  6. In your description you mentioned graphics 2.0 will be accessible to PRO developers only (which is fine, seeing as how I am one!). Does this mean that any existing code using the display library APIs will not get the benefits of graphics 2.0, and that we will have to completely re-write code to use the graphics 2.0 library APIs?

    I was kind of hoping graphics 2.0 would manifest itself as more parameters/APIs within the existing display library.

    • Actually, yes graphics 2.0 builds on the existing display library. The difference comes in if you use the deprecated sprite library (that’s going to be permanently gone) or if you use ImageGroup (that’s being removed in favor of just using normal groups). Another difference will be reference points — they’ll be replaced with something we’re calling anchor points. Our goal is to have 95% API compatibility.

      • Whoa! So ImageGroups will be Corona Pro only?? Please let me know soon.

        And please, please. Won’t someone please give me some examples of future Pro only plugins?

      • To add the the above. ImageGroups apparently allowed us to have more objects on screen with better performance. How is this related to the 5000 fish example?

        • Everyone will get the perf improvements of the new engine. The reason ImageGroups are going away is b/c you won’t need them. The new engine gives better performance than this optimization ever did.

  7. Simple Question, WHEN is this going to happen? I think a bit of transparency on the development progress and some rough due dates would help me consider going PRO. But I’ve been reading about lots of this stuff (project gluon for example..) for months now and they’re still vapor features.. And I’m not talking about things like Corona Levels which showed on Corona’s main page and never made it :(

    Please, all this sounds really great but time frames (even very rought) would make it more concrete.

    • I agree with Ariel. You are enticing users sign up for Pro with features that sound great but have no delivery date. I stopped my Pro subscription to Corona some time ago due to frustration over promised but unreleased API features or the features when released were too buggy to use out of the box.

      I would suggest the obvious, that users hold off from subscribing until the new feature is released and properly tested.

  8. I’m interested to hear how the plugins will work. Will they be regulated by Ansca, or can be independently release plugins for Corona? I think it’d be awesome to be able to monetize Corona Libraries by being able to release them as plugins.

  9. Talking about the Z… it would be nice to have an actual z-index property for display objects so that we can, CSS-style, finetune it and assign say “10” and “100” without doing a lot of continuous toFront() toBack() juggling (if this is already possible, my apologies).

  10. (sorry, sleepy, delete that last post)
    If I understand 2.5D correctly: I can transform my 2D objects in 3D space (Like Adobe After Effects)? Would it then be possible to make a “3D camera” or rotate/move a display group in 3D space?

  11. Skewing a image… Hopefully we would also soon be able to draw a shape (like we now can draw a line), and masks – important, and “photoshop” filters… thumbs up for blur… what about blend-modes? (multiply, lighter, difference ect.) they were pretty useful in the old director (the old macromedia director – not your scene management tool)

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>