• entries
    1212
  • comments
    1738
  • views
    1138631

New flash player

Sign in to follow this  
johnhattan

121 views

Saw some interesting video from Japan showing the new version of the Flash player. Interestingly, the Flash player has focused pretty-much entirely on performance-tuning for the past two releases. They've certainly added functionality improvements, like server support in V6 and ActionScript 2.0 support in V7. The server support, though, was really more of an addition of server classes to the underlying communication code, and ActionScript 2.0 was implemented as a preprocessor in the IDE, so there really wasn't much to do in the underlying player. Everything else involved making it perform better.

It's an interesting video. The renderer improvements look very nice. The new "better-than-ClearType" font-renderer's okay (but frankly I thought the original renderer looked fine).

Flash still has two major improvements that can be done, though. First is in ActionScript. Flash's scripting language is still implemented as a Java-style VM. Java, though, now has the benefit of optimizer/obfuscators that shrink code-size and improve performance. Also, many Javas are implemented as "just in time compilers" that can bring about performance close to native code. The current bottleneck for Flash apps is in screen-rendering, but I think that's going to change when people start making more computing-intensive apps in Flash. They can learn a lot from Java about improving performance in VM-style apps.

Second improvement is taking advantage of hardware for rendering. Far as I know, the bulk of Flash's screen rendering is still done in software, despite the fact that the most modest video cards available nowadays support very nice realtime blended image-processing via Direct3D and OpenGL. Of course, the advantage of the software renderer is that you don't have to work around a card's quirks. If I run a Flash movie on an older video card, a brand-new high-end video card, a Mac, and a Linux box, they'll all look exactly the same down to the pixel. Hardware screen-rendering will likely have to work similarly to the 3D support in Director/Shockwave. You've got the ability to switch between rendering your game in software, Direct3D, or OpenGL. That way if your card's OpenGL is broken you can switch to Direct3D or vice-versa.

Anyway, if I had to guess what's coming down the pike in later versions, I imagine that's what'll happen. For now, though, check out Flash Player 8's enhancements at http://www.moock.org/blog/archives/000146.html
Sign in to follow this  


2 Comments


Recommended Comments

Quote:
Flash still has two major improvements that can be done, though. First is in ActionScript. Flash's scripting language is still implemented as a Java-style VM. Java, though, now has the benefit of optimizer/obfuscators that shrink code-size and improve performance. Also, many Javas are implemented as "just in time compilers" that can bring about performance close to native code. The current bottleneck for Flash apps is in screen-rendering, but I think that's going to change when people start making more computing-intensive apps in Flash. They can learn a lot from Java about improving performance in VM-style apps.


And that's a big "no kidding". when making cowhead/hexircuit, I had to essentially generate a random maze. Any size less than 6x6 could be done in a short enough time such that no one would be disturbed by the delay(my biggest board was 16x16). Anything more than that, and the maze generator would timeout the script. I had to come up with a solution that would generate the maze one room at a time, and experiment with generating a particular number of rooms each frame. I believe I decided on 10, and I then put in a little status bar control so that the player wouldn't think that the app was locked up (really the only reason status bars exist... they don't really have to indicate anything)

Share this comment


Link to comment
I suspect that they don't need any of the 3D stuff, just compositing. I would expect that they could get away with just using OpenGL. Which would be nice for them for its OS independence. I suspect they'd be using a tiny subset of it I would hoep that they could find a path that would work on most if not all cards.

Given what I suspect they need I would expect that they could probably get away with a little mini-driver API that could have a default implementation for software and OpenGL but could easily be ported to any API including some of these low-level APIs that would be likely on phones and similar devices.

However, I suspect that even with all of that said they'll stick with the software renderer. I suspect it is tempting to be able to control the entire graphical pipeline. Also, since the bugs that are likely to come up in the field will be things like graphical glitches and such I'm not certain if there would be an obvious way for non-techie users to switch between renderers and deal with support issues related to 3rd party drivers.

They might be able to get away with depending on Moore's Law to carry them forward.

Share this comment


Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now