Working though the combinations (I don't understand Flash)

Here are the notes from me trying to get Mr Bubble to run in full-screen mode at a native resolution, in preparation for GameCity on Friday:

native res = 1280 * 800

1024 * 768 | full screen | no scale = 14 FPS
1024 * 768 | full screen | show all = 43 FPS
1024 * 768 | full screen | exact fit = 45 FPS 

1024 * 768 | windowed | no scale = 40 FPS
1024 * 768 | windowed | show all = 40 FPS
1024 * 768 | windowed | exact fit = 41 FPS
 
1280 * 800 | full screen | no scale = 10 FPS
1280 * 800 | full screen | show all = 13 FPS
1280 * 800 | full screen | exact fit = 13 FPS
 
1280 * 800 | windowed | no scale = ?? FPS -- the FPS counter is cut off. but it feels smooth. I would assume 30 FPS
1280 * 800 | windowed | show all = 30 FPS
1280 * 800 | windowed | exact fit = 30 FPS

As you can see, it is painful and frustrating. Notable bits of extra-ordinary pain are : the only times it is fast are when it is performing scaling. Or is windowed. Even if it's smaller than the resolution, getting it to display without scaling makes it run slowly. Since the game is cleanly pixelled, scaling appears as doubled pixels. It looks rubbish, and is surely extra work for Flash to do. Surely?

After this I tried rendering at 960 * 600 and scaling up with stage.fullScreenSourceRect. It didn't help at all.

I'd download a newer Flex SDK (I'm apparently on 4.0, there's now 4.5), but I am at home, and on stolen phone Internet, so large SDKs are a bad idea. Apparently the newer one has GPU support. But it claims the newer playes have that, when embedded within webpage, if you set the wmode. Fiddling that parameter did not do a damn thing for me. I don't understand the Flash ecosystem.

My current plan is to show the game within a full-screened Chrome window, in-browser. I can get an FPS that oscillates (noticably :<) between 30 and 60 FPS there, running at native resolution. Why is that faster than without using a browser? Why does the best solution involve turning up, finding out the native resolution, and then hurriedly entering it into the 5 different places it needs to be set for it to work properly (in the source, in the FlashDevelop project settings, written to an XML file you can't seem to override, arg, in the webpage multiple times, including once, halved, as a offset to center the player properly). *sigh*

If someone knows of a better way... please let me know.

 


26 October 2011