Adobe’s cut-price roadmap and MC3D”next”
Nine days ago, I outlined my plans for an AS”next” based port of MC3D, and a derived Flex framework. A lot can happen in nine days. Today, Adobe released a new roadmap, and it turns out that AS”next” isn’t going to happen after all.
The good news is that “Adobe continues to actively invest in enabling developers to create and deploy Flash based content as mobile (and desktop) applications via Adobe AIR.”
The bad news is that there will be no AS”next”. Hence no long term plans for the Flash Platform. Adobe’s focus is ridiculously narrow nowadays. Gaming and Premium Video.
I could speculate that maybe Adobe should form an alliance with Ideaworks (MarmaladeSDK). Adobe are good at building IDEs that accelerate workflow. Ideaworks have a powerful cross-platform engine.
I was relying on AS”next” for the evolution of MC3D, because as things stand now – There are too many Stage3D bottlenecks. As far as I’m concerned, the speed of ActionScript3 execution isn’t as important as the current limitations in graphics rendering. I was optimistic that architectural improvements in AS”next” would alleviate graphics rendering bottlenecks.
Now that there is no AS”next” – I hope that Adobe will focus on changes to AS3, and the current VM that will make it more capable. So this blog-post is about how Adobe should improve AS3, and my Stage3D wish list.
Currently, Stage3D is only designed for the Games use-case. Most games are economical with their use of textures. And typically, load the textures at the start. So they can benefit from ATF compression.
User Interfaces, on the other hand, require a lot of texture surfaces. Textures are generated on-the-fly. And sometimes we want to manage texture memory usage by uploading and dispose of textures on-the-fly. If the UI is changing or scrolling rapidly, then the speed of texture update will dictate how quickly and smoothly the UI experience can change or scroll.
Stage3D isn’t very good at UIs, because it can’t upload textures quickly enough. It’s not very good at rendering components that are elastically-sized depending on screen-size and orientation. And Stage3D isn’t good at rendering freely-styled text.
Stage3D has been bolted onto the side of AS3. It only has low-level primitive APIs, and it’s mostly good at moving bitmap textures around.
The Display List has mature and sophisticated APIs that are good at vector graphics, and freely-styled text.
It would be great if there was a fast way to accomplish bitmaps, vector graphics, and text – all rendered in Stage3D. Maybe I just need fast graphics and text APIs that “draw” onto a BitmapData, or directly to a Texture. We wouldn’t need the display-list if there was a pure Stage3D way to accomplish that. (I’d settle for handling mouse collision-detection myself if it wasn’t provided).
Apart from better Stage3D graphics, I want a smaller captive runtime for mobile AIR apps. Attaching only the libraries that you’ve used. This is another feature I was expecting in AS”next”. Now, I’m hoping that Adobe will introduce it in AS3.
What if the compiler could optionally just leave out the Display-List libraries if we’re not using them? What if the root class of a Stage3D app doesn’t need to extend Sprite anymore?
I hope that Adobe are already planning to take some of the AS”next” ideas, that were originally destined for AS”next”, and incorporate them into AS3 instead. If they can fix some of the Stage3D limitations, then why not make AS3 execution faster? Possibly a stricter compile mode, that restricts you to using a sub-set of AS3 in a strongly-typed fashion, but results in faster object code. And faster floating point types.
AS3, AIR, and Flash have the potential to be great for cross-platform development across mobile devices, desktop, and browser. We’re 99% there. I just hope Adobe are committed enough to put in that extra 1%.
For community discussions about MadComponents/MC3D, come and join the facebook page:-http://www.facebook.com/groups/madcomponents
There will be an online Stage3D conference scheduled for 22nd February. The event is free, and you can register here:http://gonchar.me/stage3d/
I’m presenting something about MC3D, and my future plans for MC3D.
The Stage3D Facebook group is here: http://www.facebook.com/groups/stage3d/