I need your help to figure out Airscape's performance issues

0 favourites
From the Asset Store
Game with complete Source-Code (Construct 3 / .c3p) + HTML5 Exported.
  • TiAm this is exported with the latest beta.

  • Another idea, as suggested before, would be to try a node-webkit export and compare. Maybe one with 10.5 and one with the latest alpha. IIRC, I was able to use a higher rez when playing the steam demo, at least 720p.

  • Just guessing about the possible gpu loading with upscaling an image from a lower resolution compared to effectively downscaling a HD image at all game resolutions. Having just read through the other thread, my suspicions as to the cause are the same as yours.

  • TiAm I don't see why NW would have any better performance? In my experience performance is pretty much identical. It's interesting you say that though, can you try the demo again and confirm?

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • To tell you the truth, now that I try it again, the steam demo seems about the same as the demo you linked. I still get some halts and jerks here and there, even at a low rez and with 'fast' graphics, but nothing too bad. The consistant threshold on 'standard' seems to be 1024x576.

  • Laptop

    • Intel Core i5 1.6 GHz
    • 4 GB RAM
    • NVIDIA GeForce GT840M 2GB

    I'm using 2 monitors

    • 15.6" 1366 x 768
    • 24" 1920 x 1080

    Settings

    • Fullscreen: yes
    • Graphics: standart

    15.6" - native 1366 x 768

    • 640 x 360 > steady 60 fps
    • 854 x 480 > steady 60 fps
    • 960 x 540 > 45 - 60 fps
    • 1024 x 576 > 43 - 57 fps
    • 1280 x 720 > 37 - 51 fps
    • 1366 x 768 > 35 - 42 fps

    24" - native 1920 x 1080

    • 640 x 360 > 42 - 45 fps
    • 854 x 480 > 39 - 44 fps
    • 960 x 540 > 38 - 45 fps
    • 1024 x 576 > 37 - 40 fps
    • 1280 x 720 > 31 - 35 fps
    • 1366 x 768 > 27 - 31 fps

    Playing on those 2 lowest resolutions on the 15.6" was good, to actually see it without any hiccup. If I didn't know about the performance issue, I'd happily play on all resolutions, except maybe the two highest, and wouldn't even noticed/mind. Only when it dropped somewhere below 40 fps it become noticable and distracting.

  • Noga Are you on a laptop with a GPU? If so, and you haven't run into the issue before, it's likely that the GPU isn't being utilized at all here, and it's falling back to integrated graphics. If that's the case, you need to go to the NVIDIA Control Panel and enable GPU acelleration for the browser.

    Also, that's a very big difference for what should be no difference (monitor size). That's a classic example of the problem in the 'low quality fullscreen scaling isn't resolution independent' topic.

  • Well, I have tried the stripped down demo on my old 2nd generation core i7 with a VERY old ati HD 2600 xt video card, and get similar results as people above. I also tried it on my newer core i5 laptop with integrated HD4400 and get slightly better frame rates. I tried it in IE, Chrome and FireFox.

    While it certainly looks better when it is running at a buttery smooth 60 fps, I never felt it was unplayable - except in FireFox (at high resolutions) where I was getting around 15 fps and down into single digits and strange, buggy things would happen like swimming through rocks into open ocean, and animations going wacky occationally. (There's a lot of ocean out there.) At low resolutions FireFox behaved itself and was getting much better frame rates.

    Input never felt laggy (just the frame rate got a little choppy). It might help to test if there was a specific task to do that required accurate timing to see if lower frame rates make it impossible (or more difficult) to play - rather than just not looking as smooth.

    I understand your desire to make it look perfect, but for someone who knows they have old equipment, I think it looks more than good enough. (It looks fantastic!)

    As for the "low quality fullscreen scaling" issue - I don't think it is a reasonable expectation that something should run at the same frame rate at any resolution. Any time you are scaling video you are adding a lot of extra work for the gpu. The more you are scaling it, the more work involved. Even though it is being rendered at a consistent size, the final output resolution will have an impact on performance.

  • On my pretty beefy desktop PC (Core i7 860, 8GB DDR3, GeForce GTX 770), it only runs okay. At native res (full screen 1920x1080), I get between 40-59 (never 60) fps. It slows down the most while spinning around a lot, but even if I just sit there it constantly shifts between 49-59 fps. It's also noticeably janky - lots of noticeable lag even while spinning around, about every few seconds, even though the fps doesn't show any drop-off.

    If I switch to lower resolutions and/or decrease the size of the window, the frame rate improves to something that never drops below 50, but the jankiness persists. Even at super low resolutions it occasionally hits 60 fps but never for very long, tending to stick around the 55 mark.

    Basically, it looks like every performance nightmare everyone complains about on these forums come true

  • I did some testing to see what triggers the janking on my laptop. My earlier result of 1280, the design resolution, being the cut off was probably just a fluke / caused by the slight loss of performance associated with rendering at higher resolutions, and it might have been influenced by my having developer tools running...

    The jank seems to be only dependent on the number of pixels that need to be rendered each tick - lots of large area overlapping objects or large objects that move quickly seem to be the culprit.

    It seems like my GPU can only handle a certain amount of pixel drawing work when drawing the canvas before frame drops start. Thus if I draw 2k moving large sprites the frame rate is poor, even though only 100 of them might be visible due to z order. Make the sprites small, so the overall pixel area they cover is reduced, and performance goes up - that seems to not be a function of the sprite original image resolution but just related to its draw size.

    Not sure if this helps though because it just seems that there an upper limit to the number of pixels that can be smoothly drawn, a number that is different for each piece of hardware. If you allow nw window scaling then the player can at least select a window size that is playable on their machine, and perhaps the forthcoming jank fixes in chrome will also help.

  • Noga Are you on a laptop with a GPU? If so, and you haven't run into the issue before, it's likely that the GPU isn't being utilized at all here, and it's falling back to integrated graphics. If that's the case, you need to go to the NVIDIA Control Panel and enable GPU acelleration for the browser.

    Also, that's a very big difference for what should be no difference (monitor size). That's a classic example of the problem in the 'low quality fullscreen scaling isn't resolution independent' topic.

    I changed it to use gpu and tested few resolutions, but the numbers are the same.

  • starred the issue, and I did saw this in the past and my conclusion was the same: it seems drawing X number of pixels is a limitation that has to be taken in account with chrome (an dnode webkit and others) until they correct that, not sure it is directly tied with the actual hardware power itself in a simple way. it could be nice if you could try to draw a certain amount of pixels sqiddster (like you just increase the number of small textured large sprites (size of a screen) then just reduce the size of the last created one when the framerate takes a hit to have an estimation of the maximum pixel number that can be drawn), and retry the same with a tiled background instead to see if that changes anything (as sprites are scaled while tiledbackground are not), that may justify it.

    (I have no access to a decent computer to do that unfortunettelly)

  • Voted! If we can get these performance issues dealt with then C2 will be a game designer's dream!

  • Silly question I know, but I have to ask: are you disabling all the effects - particles, sine, objects creation etc... when not off screen?

    I guess you already are.

    Also, you are using a lerp for the camera rotation, right? What happens if you do a quick test with a basic rotation instead, are the janks noticable ?

  • OK!

    I've uploaded a new demo (Just follow the original link, you may need to refresh a few times or maybe clear the cache).

    Basically, I got rid of all the shaders, added a graph with red showing 1/dt and green showing fps, and tested it out in a few configurations. This has shown some very interesting results. Here's what my testing showed:

    That's right, ladies and gentlemen, the winner is Internet Explorer with no webGL.

    I... I think I need to sit down for a while.

    (Oh, by the way, I tried out the new r198 release and found no difference. The new demo is exported in r198.)

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)