Skip to main content
chris.campbell
Community Manager
Community Manager
May 29, 2014
Question

The case for integrated, native physics in the Flash Runtime

  • May 29, 2014
  • 30 replies
  • 19096 views

Hello everyone,

As hopefully many of you know, a community based feature request page was created a few months back (Feature request for Flash and Air - uplist) and we've had a number of great ideas added and voted on.  In an attempt to better understand the individual requests, we thought we'd start threads on particular subjects to allow us to ask questions and get community feedback.  These posts should not be taken as a commitment to a particular feature (or lack of commitment to any other feature.)  I can't stress this enough.   I don't want anyone to think that we're ignoring other requests or to assume that because we're asking about something, they can expect to see this done in a future release.  We simply want to better understand the request so that we can reduce the number of assumptions on our part.

To start, let's we've got a few questions regarding the request for "Integrated (native) physics" which currently has 142 votes.

  • When talking about physics, are you interested in a 2D or 3D physics engine?
  • Can you list native engines that demonstrate the features you want the Flash runtime to implement natively?
  • For instance, if you're interested in Box2D functionality, have you tried http://www.box2dflash.org?
  • Is there a huge performance gap between the native and ActionScript implementations of Box2D?
  • Are you looking for solutions for desktop or mobile?

Thanks,

Chris

This topic has been closed for replies.

30 replies

Known Participant
November 1, 2014
  • When talking about physics, are you interested in a 2D or 3D physics engine?

3D

  • Can you list native engines that demonstrate the features you want the Flash runtime to implement natively?

PhysX,Bullet

I have tried Away3D-Physics.

  • Is there a huge performance gap between the native and ActionScript implementations of Box2D?

Huge performance gap Indeed.

  • Are you looking for solutions for desktop or mobile?

Yes.

    I think everybody will be really shocked if Adobe Flash Player/Air runtime contain 3D Physics Engine.More shocked than Stage3D. Stage3D

  is really what we expected Flash should contain.However,3D Physics Engine will be a big big surprise! When I  developped some Information System using Flash,I

Only need Flex.For Information System,Stage3D was more than enough.However when I developped some 3D game,Stage3D is not enough,I have to write my own collision detect and some movement code.I can not rely on Away3d-Physcis and Ane-Bullet.They have been there for over 1 year without any update.The Game world

is running.I am considering using Unreal Engine 4 for better 3D game.But,I really hope Adobe Flash will carry 3D Physics Engine.You can now just give a roadmap,or just a lab project,that will shock everybody!I give you promise that if Adobe do that,I will totally give up Unreal Engine.

September 24, 2014

Chris, Thank you guys for still taking care of the Flash community by constantly improving the technology.

But I think the most fundamental issue here is, what's in it for Adobe? To my knowledge, most Flash game developers do not use or even need Flash Professional. Everything is there for free to make a game without paying Adobe a cent while enjoying the latest runtime on the latest devices.

How long can this model work? and how long will you still be adding new exciting features and support to keep Flash alive?

This really puzzles me, to me, sometimes it feels like Adobe is just taking care of the community before the whole thing fades out. And another-time, like this time, it feels like Flash is having a promising future. And this just makes me look for other technologies and back again for many times. The Flash API is great for interactivity and its network capabilities are second to none, even with P2P and video audio streaming, not to mention Stage3D getting better and better, plus countless great 3rd party APIs, consistent output to all the devices the runtime runs on, Flash really is still a real contender for making complex interactive contents. HTML5 is still no where near it (responsiveness, yes, level of interactive complexity, no), and it will only progress very slowly with standards fighting over standards.

Adobe please figure out a way to make money out of Flash, and seriously, people, Flash just needs money to stay alive.

When Adobe asked for money for premium features, all of the Flash "supporters” cursed it, and somehow I think that's when we actually ended Flash's future.

Give it another try to make money from the runtime, or maybe form a new code centered game IDE, if no one supports the idea just like before, so be it, just kill Flash. You don't really need to support it like you do now. It's the community who betrayed Flash, not you. Let's all embrace the free-but-slow-progressing-and-disgusting-to-code-for HTML5.

That's all for now, I am off to enjoy make some stuff with the latest feature for free.

p.s. When I say Flash here, it means Actionscript and the runtime, not the Flash Adobe is currently pushing, I think you all know.

Known Participant
August 8, 2014

HI,

Would love to have something very close to Napephys with both 2D & 3D capabilities, for both desktop and mobile.

Thanks

Participant
July 10, 2014

Hi,

Just for note, check out LiquidFun which is built by Google as an extended Box2D with particle physics:

https://google.github.io/liquidfun/

My CrossBridge built fork:

vpmedia/liquidfun · GitHub

Testbed SWF:

https://dl.dropboxusercontent.com/u/1375050/TestBed.swf

SWC:

https://dl.dropboxusercontent.com/u/1375050/LiquidFun.swc

--

Anyway i would vote to NVidia PhysX if something gets integrated rather than some simplier stuff like Box2D or LF.

User Unknow
Legend
July 22, 2014

Nice.. but CrossBridge much slower than as3 on mobile devices.

Participant
July 22, 2014

Sure, but still CrossBridge is good choice as a fallback for Web deployment or for devices not supported by the ANE.

June 13, 2014

Hello Chris,

An integrated physics engine would be a great addition. However, many applications built in Adobe Air are not games, but rather tools. I think an improvement in runtime, it would be a better resource, as would affect all other fields.

We already know that Adobe dropped the idea of ActionScript 4, then the power of change is in the hands of his team, which has direct access to the runtime. I have applications that use Starling / Feathers, and they work well, but it is visible that are not native apps. Even a transition between screens, depending on the device, it becomes ugly. Anyway, you are doing a great job, and I believe it will be better. His concern and direct communication with developers is encouraging. Shows that Adobe is worried about its developers and they are important. Thank you.

Inspiring
June 13, 2014

novoasaoooo wrote:

many applications built in Adobe Air are not games, but rather tools

Adobe said they focus on games and video, which means issues related to other types of apps are not interesting to Adobe. I know it was years ago but I do not remember them ever retracting this statement.

Inspiring
June 13, 2014

> Adobe said they focus on games and video, which means issues related to other types of apps are not interesting to Adobe. I know it was years ago but I do not remember them ever retracting this statement.

Chris recently stated in behalf of Adobe that " 'Gaming and Premium Video' is too restrictive for the platform and that this marketing needs to be revised". Anyway, improving the performance and the language equally makes a better gaming development platform.

EDIT: Also, on recent posts, they mention both apps and games, saying games cover over 70% of the whole AIR store apps.

Participant
June 10, 2014

Hi,

- I think that flash future is in gaming & so an integrated physics lib like Nvidia Physx is a must.

- For 2D there are many solution already with great performance, but when it comes to 3D, preformance is a huge problem.

- Ane open source project has to be left to the community so that the adobe team effort can be focused on things that the community cant possibly do like the integrated physics.

- Saying that the current most games are 2D is in reality because creating a physics based 3D game is just a big of a pain because of the lack of a good solution. Having an integrated 3D physics will make flash a viable option for online hardcore 3D gaming.

Regards

Gary Paluk
Participating Frequently
June 9, 2014

Hi Chris,

I see little point to native physics as an integrated library. Bullet Physics is already available as both an ANE and a compiled SWC, in fact, I just integrated Bullet with Zest3D and it was able to be compiled with Crossbridge. Whilst the performance can be slightly better, this would cause a fixed API and physics engines are very much a decision that is granularly based on the level of accuracy that you need and the dimensionality of the physics world-space. A better option might be to expose a hardware physics API that allows access to the PhysX GPU along with a fallback.

Probably important to note that those aren't too great either, the overhead talking to the FlasCC compiled SWC actually slows things down so the GPU case is definitely a better option, Zest3D has physics integrations that performs more like this on mobile and running in pure AS3:


Personally I think that, at this time, there is much more win factor from spending the development time on any of the following:

  • Direct OpenGL|ES2 context access with GLSL shaders
  • Crossbridge update (This is essential to the future of FlashPlayer IMHO)
  • PhysX GPU API
  • AS4 and/or compiler updates @see Haxe performance
  • AMD Mantle/MTL support (hidden from developer or profile parameter)

Regards

Gary Paluk

http://www.plugin.io

Known Participant
June 9, 2014

I'd disagree, if you look at all the main alternatives to AIR, they all have baked in Physics support: Corona, Unity, Swift etc, if it's good for them why not for AIR?

If Adobe really want to make this great though, they need to give us tooling support in Flash Pro, then you'd have something on the level of Unity ease of use, which is pretty damned great.

Gary Paluk
Participating Frequently
June 9, 2014

One of the greatest things about Flash/Air is that it doesn't try to lock you into a specific engine like your aforementioned tools. Air is basically a runtime packager and not a game engine solution so third party libraries exist such as Starling, FeathersUI, Away3D, Zest3D, Flare3D, Genome2D etc. All of these platforms have different implementations and that should also be the case for physics solutions. For example, I might just need a fast approximated physics engine or maybe I need a more rigerous RK4 modelled system. Engines like Unity have a single solution which make it impractical for so many other tasks but exposing the PhysX API is generalized, similar to the generalized GPU graphics API.

Next up is being locked into the development environment, what a huge fail that would be. You could say goodbye to all AAA game companies ever wanting to touch Flash again. The workflow of such companies simply wouldn't correlate to having to drag and drop assets in Flash Pro, it would be suicide. Exporting assets from real-world 3D asset production tooling such as 3D Studio Max, Maya or even Blender is preferable and these tools can be used for the creation of scenes. The support offered by the leading libraries already have the capability and tooling that you are asking to be locked into Flash Pro.

These engine systems are still evolving and that takes time, I wish it were faster and the road to a great production workflow for my own engine could be met more quickly, but locking down solutions is IMHO probably one of the worst ways to destroy the great platform flexibility of the Flash and Air products.

Participating Frequently
June 9, 2014
  • When talking about physics, are you interested in a 2D or 3D physics engine?

3D physics only.

  • Are you looking for solutions for desktop or mobile?

Currently, desktop.

Inspiring
June 6, 2014

I would vote 2D and to have an implementation of Nape personally. I've used both B2D and Nape and find Nape much easier to use - plus it's loads faster than B2D.

Inspiring
June 6, 2014

I am sure you know that Apple went for built-in 2D engine by now: http://www.bytearray.org/?p=5314