3
\$\begingroup\$

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.

\$\endgroup\$
1

2 Answers 2

1
\$\begingroup\$

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.

\$\endgroup\$
4
  • \$\begingroup\$ Good answer. I just don't understand the table? What do these numbers mean? What is ratio? \$\endgroup\$
    – AturSams
    Dec 12, 2012 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\$ Dec 12, 2012 at 10:48
  • \$\begingroup\$ Upvote if the answer helped (click the Up arrow). If it solved your problem tickmark it. \$\endgroup\$ Dec 12, 2012 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, 2012 at 11:07
2
\$\begingroup\$

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

\$\endgroup\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .