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