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

Discussion and feedback on Construct 2

Post » Thu Feb 26, 2015 4:32 am

Laptop
  • Intel Core i5 1.6 GHz
  • 4 GB RAM
  • NVIDIA GeForce GT840M 2GB
I'm using 2 monitors
  1. 15.6" 1366 x 768
  2. 24" 1920 x 1080

Settings
  • Fullscreen: yes
  • Graphics: standart

15.6" - native 1366 x 768
  1. 640 x 360 > steady 60 fps
  2. 854 x 480 > steady 60 fps
  3. 960 x 540 > 45 - 60 fps
  4. 1024 x 576 > 43 - 57 fps
  5. 1280 x 720 > 37 - 51 fps
  6. 1366 x 768 > 35 - 42 fps

24" - native 1920 x 1080
  1. 640 x 360 > 42 - 45 fps
  2. 854 x 480 > 39 - 44 fps
  3. 960 x 540 > 38 - 45 fps
  4. 1024 x 576 > 37 - 40 fps
  5. 1280 x 720 > 31 - 35 fps
  6. 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.
ImageImage
B
26
S
6
G
8
Posts: 774
Reputation: 6,685

Post » Thu Feb 26, 2015 5:00 am

@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.
B
92
S
31
G
24
Posts: 3,191
Reputation: 32,709

Post » Thu Feb 26, 2015 7:11 am

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.
B
99
S
35
G
20
Posts: 438
Reputation: 17,910

Post » Thu Feb 26, 2015 10:44 am

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 :(
B
57
S
15
G
11
Posts: 912
Reputation: 12,626

Post » Thu Feb 26, 2015 11:06 am

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.
A big fan of JavaScript.
B
76
S
20
G
76
Posts: 2,296
Reputation: 47,576

Post » Thu Feb 26, 2015 1:13 pm

sqiddster wrote:@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.
ImageImage
B
26
S
6
G
8
Posts: 774
Reputation: 6,685

Post » Thu Feb 26, 2015 1:28 pm

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)
Game design is all about decomposing the core of your game so it becomes simple instructions.
B
54
S
22
G
18
Posts: 2,123
Reputation: 17,150

Post » Thu Feb 26, 2015 2:35 pm

Voted! If we can get these performance issues dealt with then C2 will be a game designer's dream!
Image
B
20
S
4
Posts: 382
Reputation: 3,004

Post » Thu Feb 26, 2015 3:34 pm

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 ?
Image | @AurelRegard on twitter
B
19
S
6
G
1
Posts: 307
Reputation: 2,500

Post » Thu Feb 26, 2015 11:15 pm

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:

Image

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.)
B
92
S
31
G
24
Posts: 3,191
Reputation: 32,709

PreviousNext

Return to Construct 2 General

Who is online

Users browsing this forum: No registered users and 8 guests