A new era begins!

We have a really good news guys! Adobe has updated the flash platform roadmap.

What did they announce?
Final release of iOS packaging time reduction
Flash Player – Chrome debugger
AIR – Concurrency for iOS
AIR – Gamepad support for iOS 7
AIR – Game marketing and discovery
Stage3D – AGAL 2.0 support
Stage3D – Support for multiple render targets
Stage3D – Anti-Aliasing for render textures
Stage3D – New texture wrapping modes
Supplementary character enhancement support for the TextField control

I will try to explain why it is awesome for Flash Platform and for your business(interactive applications and game development).
Firstly if you are interested in how do things work in Stage3D and how to optimize these things you can read my article about it.

Multiple render targets(MRT)
MRTs allow a fragment shader to write out data to up to four different targets. This potentially removes the need to render objects multiple times, once for each effect. However, the savings are only useful in some situations. For example, now with Stage3D we can implement deferred shading technique that computes and stores multiple values simultaneously: it computes all material properties, surface normal, diffuse and specular material properties and stores it in separate textures. These properties are used for lighting calculation in the scene with multiple lights in subsequent passes.

What do we get with MRT?
1) Very inexpensive lighting. because lighting is done using simple fullscreen quads. In forward rendering light blending is one of the expensive thing in the rendering especially on mobile.
2) Quad-Based Lighting Culling or Light culling by volume boxes.
3) GBuffer means a lot of data is already available for post-processes!
4) You do a lot of rendering stuff in less passes
5) Now you can implement a lot of modern rendering techniques

GPU Derivatives in AGAL2
Complex filtering depends on knowing just how much of the texture (or shading) we need to filter. And now Stage3D provides partial derivative functions to help us. For any value used in shading, we can ask the GPU: “How much does this value change from pixel to pixel, in either the screen-x or the screen-y direction?” These functions are ddx and ddy. Although they are little used, they can be very helpful for filtering and antialiasing operations. These derivative functions provide us with the necessary information to perform procedural filtering or to adroitly modify the filtering inherent in most texture sampling.

WebGL vs Stage3D
I have done some things with WebGL and HTML5. With Flash I am 100% sure, if my customer has Stage3D profile support I can use all features of concerete profile Stage3D. In WebGL development, I’ve beat down some issues with gpu memory, avaliability of extensions, can’t handle correctly context loss. When you develop 3d game with WebGL and HTML5, if any browser has released a new version you are going and pray god that all works fine, right? I hate it. Flash gives me a big guarantee for my business, yep, because it is a plugin for browser, but it has been installed on 3 billion devices. Plugin is not an issue. Look at YouTube!

P.S. Just try to catch keyboard key combinations with JS crossbrowser 😉

What do I like about Flash Platform?
1) Adobe AIR. You can develop iOS games from Windows! Adobe has done a really big work for iOS and Android targets
2) Crossbridge. I hope they will ad LLVM/clang 3.2 support
3) Flash Professional CC is a leader among 2d animation and a preparing of assets for games
4) Adobe Scout
5) You can develop AS3 with Flash Builder, Intellij IDEA, FDT, FlashDevelop, Code Drive for Visual Studio, Flash Professional CC
6) Platforms: Mac, Windows, Linux(the latest version of Flash Player work in Chrome), iOS, Android, Blackberry. and hope to see comming Windows Phone 9 support!
7) Flash is a leader in UI for AAA games. For instance Starcraft II use it with Scaleform technology, you can see List of games using Scaleform
8) Decades of experience! A lot of mature frameworks! 2D, 3D, GUI, physics, math, file formats, audio, network, augmented reality, mature Flash API, unit-testing, dependency injection and etc. or you can always compile any C/C++ code to Flash with Adobe Crossbridge compiler!
9) Workers
10) Native Extensions for Adobe AIR are code libraries that contain native code wrapped with an ActionScript API. Desktop, iOS, Android
11) PixelBender for image processing
12) Declarative application development with Flex Framework
13) Flash Player Redraw Regions for classical flash display list. Huge performance saver! HTML5 Canvas still doesn’t have it

Flash is doing a big step. Now you can use forward rendering for mobile development and deffered rendering on desktops and reach awesome quality like AAA-games do! I want to thank all Flash Player Runtimes team, because it’s a really huge and hard job to provide software for 3 billion customers for different platforms. Thank you guys! You are my heroes!

Happy coding! See you next Flash Online Conference #8 on the 28th February!

Visit Gonchar Website.

9 Responses to “A new era begins!”

  1. Javier Abud says:

    On top of what you’ve said in your post there are 2 things I think would really benefit Flash:
    1. Provide callbacks instead of events (especially for enter frame)
    2. Better memory management for native data types. For example, calling Matrix3D::decompose returns a new vector, and this could easily be fixed by letting us pass in an outVector thats been allocated somewhere else.
    But, like you I’m quite happy with Flash 🙂

  2. Gonchar says:

    Hi Javier!
    Please check out my latest utils for Matrix3D decompose it works faster and doesn’t create odd instances in memory https://github.com/away3d/away3d-core-fp11/blob/master/src/away3d/core/math/Matrix3DUtils.as
    Also you can check out my ways for memory optimization in Away3D 4.1.6 release https://github.com/away3d/away3d-core-fp11/releases/tag/v4.1.6 for Matrix3D and Vector3D.
    Thank you for the comment!

  3. Vladimir Minkin says:

    Thin font is so difficult to read my eyes is blow up

  4. sh4dows says:

    Looks good 🙂

  5. koblongata says:

    RTMFP is also really awesome, out-of-box P2P networking that works on anything Flash plugins or Air run-times run on. it’s also very nicely implemented; one can easily create Direct P2P connection through LAN discovery or over the Internet with the free Cirrus Server, super easy webcam and microphone P2P streaming support (Just Hope Adobe can improve the EnhandcedMicrophone (for echo cancelling) support on mobile devices such as Iphones).

    Try that with html5 or unity3d!

  6. civet says:

    If you show all the features of Flash, that sounds good. yah, very good!

    But as a platform, only keeping powerful and easy to use can gain users.

    FlashPro is only good for animation, BUT it not a good editor for game developing or UI designing, etc. The workflow have not changed. Nested timeline and assets managing is is a pain, no pure Bitmap support… FlashPlatform is always lack of TOOLs no matter how FlashPlayer update.

    We love Flash, but Adobe do not care.

  7. Meanwhile AlternativaPlatform switch over to Unity3D…

  8. Art Matsak says:

    @koblongata – WebRTC is really promising as an alternative to P2P in-browser communication, but it’s still in its infancy. Totally agree with you on AEC support in AIR Mobile, that would be a killer feature.

Leave a Reply

%d bloggers like this: