Adobe recently released the Flash C++ Compiler, which UDK uses to target Flash Player.

Developers can now access UDK for browser applications. Does this mean greater performance than using a Stage3D engine (Away3D 4) and how much of a noticeable difference in performance would it make in rendering speeds?

Is there any benchmark you could propose that would allow to compare them fairly? I am asking this to help myself understand the consequences in performance for deciding to use UDK in a browser based game. I would also like to know how it compares with UDK running natively in Windows?

I am not asking which technology to use or which is better. Only interested in optimizing rendering speed in a 3d browser game with flash.


Rendering speed for 3D FlasCC games/apps is likely to be similar to C++ apps for obvious reasons - the actual rendering takes place on the GPU. Flash includes a cross-platfrom shader language (AGAL) to describe GPU kernels (programs run per pixel on the GPU).

For CPU/computing speeds however, my tests have shown that the Alchemy toolkit at its best reaches 15% the speed of MS VC++ on Windows (with a simple encryption function operating on an array of bytes). Since Alchemy is now FlasCC, there may be improvements. Some benchmarks for the latest FlasCC are available here, that compare a set of C++ programs running as an EXE and in Flash Player.

This essentially comes down to:

  • Anything you can move to the GPU can possibly be done close to native speeds. This includes rendering, lighting, mip-mapping, and to some extent physics operations (depends on the library)

  • Anything still done on the CPU will be a few times slower than C++, so don't expect to have a million moving objects on screen with full physics even if you can do that with the native (C++) library.

  • Flash vector graphics does not use the GPU and is rendered fully on the CPU. So if you need HUDs (heads up displays) with high-performance 3D vector rendering like what Scaleform provides for C++ apps, don't expect that to be easily possible in Flash Player, unless you're willing to roll your own 3D vector renderer that takes advantage of the GPU to composite vector shapes.

  • \$\begingroup\$ Good answer. I just don't understand the table? What do these numbers mean? What is ratio? \$\endgroup\$ – AturSams Dec 12 '12 at 7:25
  • \$\begingroup\$ Ah! the table in the external link! Okay, each test has 2 tables, the first running in "EXE" (C++) and the next in "Flash11" (Flash Player 11). The red column in the 2nd table saying "ratio with EXE" means how much slower is the Flash version compared to the C++ version. This gives you a rough estimate of the performance of code in Flash Player. \$\endgroup\$ – Robin Rodricks Dec 12 '12 at 10:48
  • \$\begingroup\$ Upvote if the answer helped (click the Up arrow). If it solved your problem tickmark it. \$\endgroup\$ – Robin Rodricks Dec 12 '12 at 10:49
  • \$\begingroup\$ Great answer. Thanks. It looks like the differences are huge. The average ratio being 10.0+ sometimes.. I just don't understand the wording and what kind of algorithm is being ran. \$\endgroup\$ – AturSams Dec 21 '12 at 11:07

i'm the author of the benchmarks spreadsheet.

The algorithms i used for benchmarking are from a set of opensource compiler benchmarking code from Adobe themselves. I also runned some of the netlib benchmark algorithms.

Blog post : http://www.heliereric.com/fr/article/adobe-alchemy-benchmarks

Sources : https://github.com/ricovitch/FlasCC-Benchmarks


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.