0
votes

I am curious as to whether there will be a need for Scaleform (in it's current form) in the future considering that now Flash has both the Stage3D and native support for the Unreal Engine (I mean, at least towards Unreal Engine games).

I'm asking this mostly out of curiosity, and because I wasn't able to find too much information about how UE works with Flash. Also, I have not worked with Scaleform, only read up on it, (Scaleform workflow), and they don't mention stage3d anywhere.

I'm not sure if this is the best place to ask about Scaleform (there seems to be no Scaleform tag), but it seems to me that there should be some sort of bridge now between them and stage3d.

What do you guys think?

3

3 Answers

3
votes

Stage3D is for rendering 3D games and apps. Scaleform is a 2D UI tool (with extensions to render 2D UI elements in 3D space as well), which the Unreal Engine uses to great effect for their menus and in-game HUDs.

Stage 3D renders Unreal to a browser window, but Unreal uses Scaleform to render its UI. So yes, there is still a need for Scaleform. The Scaleform workflow makes UI development very easy, and Scaleform's GPU accelerated, multi-threaded core architecture and renderer, along with its custom tools help make it the most widely used UI middleware in the games industry.

Most developers are using it for creating UI on console & PC titles, with mobile games beginning to use Scaleform as an engine (see Globz - TwinSpin - the first commercially released Flash game on iOS, using Scaleform). With the move of engines like Unreal and Unity into a browser window, thanks to Stage3D, Scaleform will no doubt be used to develop UI for browser based 3D titles as well.

1
votes

Scaleform is fundamentally very different the Stage3D.

Stage3D is a drawing API for Actionscript to render visuals in 3D space. Stage3D is and abstraction layer for OpenGL. It is also has a limited in feature set as the Flash Player has to protect end users from malicious attacks. Stage3D is also completely separate from the original Flash Display Tree.

Scaleform is a Flash Player in itself and would be more akin to AIR then Stage3D. Fundamentally Scaleform uses the Flash Display Tree and converts the Vector assets to polygons via a tessellation algorithm. Those polygons are rendered by either OpenGL or DirectX depending on the Scaleform player you are running. The author has full hardware access to the drawing data. Scaleform also has the ability to run interpreted AS3 code or less C++ drive elements on the stage.

In general, Stage3D is going to be watered down 3D access for the Flash Player. Scaleform is primarily used for developing rich UI experiences that are on par with what players experience on the Web.

1
votes

True 3D just isn't generally needed when rendering UI elements

We use 3d menus in our racing games (e.g. Dirt Showdown) so it can be used if available and improve games.

I had no idea that it's not true 3d

Scaleform renders to texture. It uses internally 2.5D which means it can fake view direction on flat texture. This texture is used in game 3d world even if its rendered in standalone camera to make feel of overlay.

Also rendering itself is GPU accelerated, you can find samples on youtube where it shows meshes it makes to render shapes. Native flash do this on software (CPU). It has its advantages and disadvantages but I dont want to make long long story about it unless there is real need for this knowledge.