0

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?

MuertoExcobito
  • 9,741
  • 2
  • 37
  • 78
Spectraljump
  • 4,189
  • 10
  • 40
  • 55

3 Answers3

3

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.

  • Nice answer, cleared a couple of things up. I was thinking that it's weird to have to use non-stage3d flash, with Scaleform, to make the UI, that goes into a game which can later be played in a browser using Stage3d. However, since (I assume) Scaleform translates the flash code into something else like unrealscript, then it would make sense. -Also, I saw about the 2d interfaces in 3d space thing you mentioned, but it would be nice for them to actually be 3d and not just a bunch of 2d layers. – Spectraljump Mar 13 '12 at 20:15
  • Scaleform doesn't actually convert the flash into UnrealScript, but you can create UI using no AS, and use the Scaleform DirectAccess API to control flash objects timeline animation, color transforms, scale, rotation, translation, etc. from UnrealScript (or C++). Scaleform can render 2D flash objects in 3D space within the Flash file itself (with z depth translation and x/y/z rotation) as well as rendering entire Flash movies onto 3D objects in the gameworld. But it is not a 3D rendering engine like Stage3D. True 3D just isn't generally needed when rendering UI elements - Scaleform's core job. – Matthew Doyle Mar 13 '12 at 20:43
  • Interesting. But how does the flash then run within a videogame, if it's not turned into something else and 3d accelerated? Does the game engine provide a sort of browser like environment for the flash to run in? I had no idea that it's not true 3d. – Spectraljump Mar 14 '12 at 14:33
1

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.

haysclark
  • 1,080
  • 8
  • 16
1

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.

Sergey Glotov
  • 20,200
  • 11
  • 84
  • 98
luiner
  • 31
  • 1