Beta r297 Really bad performance

0 favourites
  • 10 posts
From the Asset Store
********* Bad snowman enemy game character ********
  • The other day I downloaded the last beta, opened the main project im working on and the performance (either preview or debbuger mode) was a mess: Constant stutters and dropped frames.

    It have been so long I opened that project that I thought maybe I remembered wrong and it indeed ran like that. Thankfully, I switched back to beta r295 (the first one implementing templates and such, that my project uses) and the performance went back to normal.

    I know this feedback is vague without submitting my project, and betas are somewhat supposed to be unstable, but I also want to know if it was something that devs were aware of (that is, broadly, performance issues with last beta).

    Windows 10 x64 build 19044.1706

    32gb ram

    Gigabyte Aero 15 KD with RTX 3060 mobile

  • Is there any other info you might be able to provide? Maybe l if you run your project with Debugging, do you get different CPU rates in your event sheets with the different versions of Construct?

    I know it's not really down to you to test all of this, but since the latest version of C3 is a beta, I was curious if you found any other clues.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • So. I know the screenshots Im attaching here are meaningless without context and being just a short window of performance analysis.

    What I can add is: The prototype is an infinite runner with autogenerated platforms. There's also a wall of fire that chases you from behind if you take too long to advance.

    Thing is, in the new beta the prototype overall stays in the range of 60% CPU (instead of r295 staying in the reing of 50%). It jitters a lot to the point of the mechanics being affected (I know, many of my mechanics seem to be tied to framerate since in beta r297 now there are jumps that sometimes YOU FAIL because of the mechanics being altered by the drop in performance).

    Also, if you let the wall of fire get you, in r295 the game stays overall at ~144fps (my monitor's refresh rate). In r297 the framerate goes to the 90ish fps really stuttering the image and the feel of the preview.

    So, there are stuff that last beta (or at least after r295) that construct is handling different.

    If any dev is interested, im willing to share my humble early prototype via mail if it helps to figure out what's happening.

  • What about r296? It's very helpful to identify the specific release where a change happened, as it significantly narrows down the list of potential code changes that affected it.

  • Seems to be your "Event group: Level_1_Sheet / Mechanics" that suddenly started to be heavy.

    Do you have any specific events there? There was some change for movements in the recent release..?

  • Ashley

    Sorry for the delay.

    r296 cant open the project. Instantly crashes on start

    1. It's worth mentioning that I may be having installed some 3rd party legacy stuff (because I have a pop-up telling me that NW.JS has been deprecated) probably when I tried to migrate a project from C2 to C3 and had to tweak stuff for compatibility
    2. Im using the fake "desktop" version that runs Construct 3 from an .exe because before disabling blacklisting flag on chrome, C3 ran like trash on my browser. So this must be the cause
    3. Ok. I tested it on the browser and everything behaves the same as in the desktop launcher I used until now >
    • r295 runs fine
    • r296 crashes
    • r296.2 bad performance
    • r297 bad performance
    • r298 bad performance

    (Bad performance meaning UNSTABLE performance. It's not constant but framerate drops and stutters happens 75% of the time

    r296 crash:

    Error report information Type: unhandled exception File: https://editor.construct.net/r296/projectResources.js, line 639, col 206 Message: Uncaught Error: effects not supported Stack: Error: effects not supported at d.ZB (https://editor.construct.net/r296/projectResources.js:639:212) at ZB.next () at d.b7a (https://editor.construct.net/r296/projectResources.js:776:514) at b7a.next () at d.aDa (https://editor.construct.net/r296/projectResources.js:776:453) at d.Df (https://editor.construct.net/r296/projectResources.js:1269:377) at d.Df (https://editor.construct.net/r296/projectResources.js:1229:3) at QYb (https://editor.construct.net/r296/components/editors/layoutView/layoutView.js:78:153) Construct version: r296 URL: https://editor.construct.net/r296/ Date: Tue Jun 07 2022 12:36:36 GMT-0300 (Argentina Standard Time) Uptime: 42.1 s Platform information Product: Construct 3 r296 (beta) Browser: NW.js undefined Browser engine: Chromium Context: nwjs Operating system: Windows 10 Device type: desktop Device pixel ratio: 1.25 Logical CPU cores: 16 Approx. device memory: 8 GB User agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (@62f83a7521ae1f32e563795732dff0c9da1b660d) NWjs/0.63.0 (like Chrome/100.0.4896.60) Language setting: en-US WebGL information Version string: WebGL 2.0 (OpenGL ES 3.0 Chromium) Numeric version: 2 Supports NPOT textures: yes Supports GPU profiling: yes Supports highp precision: yes Vendor: Google Inc. (NVIDIA) Renderer: ANGLE (NVIDIA, NVIDIA GeForce RTX 3060 Laptop GPU Direct3D11 vs_5_0 ps_5_0, D3D11) Major performance caveat: no Maximum texture size: 16384 Point size range: 1 to 1024 Extensions: EXT_color_buffer_float, EXT_color_buffer_half_float, EXT_disjoint_timer_query_webgl2, EXT_float_blend, EXT_texture_compression_bptc, EXT_texture_compression_rgtc, EXT_texture_filter_anisotropic, EXT_texture_norm16, KHR_parallel_shader_compile, OES_draw_buffers_indexed, OES_texture_float_linear, WEBGL_compressed_texture_s3tc, WEBGL_compressed_texture_s3tc_srgb, WEBGL_debug_renderer_info, WEBGL_debug_shaders, WEBGL_lose_context, WEBGL_multi_draw, OVR_multiview2

    fredriksthlm That could've been because at the time I randomly took the screenshot a lot of events of the mechanics took place. Again, I admit the earlier screenshots aren't useful. But whilst I'll be able to run r295 stably, I will continue developing on there, because I cant focus all much time into diagnosing the new betas, despite that I will like to.

  • That's weird, I can't see anything about the r296 release that would have seriously affected performance. Send your project to ashleyscd@scirra.com and I'll do some profiling and see if anything comes up.

  • Thanks Ashley

    I've just sent you my project.

    I tested my project on other computer and same happens. Crash 296 and bad performance on the next ones.

    I may be remembering wrongly but I think I installed a couple of third party effects that I used and then removed from the project.

    Particularly this one and maybe some other.

    I'm adding this since the error mentioning effects not supported

    Could it happen that despite the project not actively using the 3rd party addon anymore, it got "marked" anyway inside the .c3proj data ?

  • I had a look at the project. I can't reproduce any significant performance difference between r295 and r297. In both cases the CPU is around 50-60% and it runs about equally smoothly. The GPU utilisation increased slightly in r297, probably due to a rendering change to improve how transparency is handled, but it didn't appear to affect the smoothness much.

    The events are pretty inefficient. In particular a great deal of CPU time goes on two actions that adjust the Z order of a couple of hundred "Billboard_Grass" objects with the "Move in front" action, which is done apparently redundantly every frame. The engine doesn't handle this efficiently at the moment, but it's a poor solution for Z ordering anyway - use layers, Z elevation, or if necessary, only run those actions when something actually changes, rather than all the time. If I delete those two events I don't actually see any obvious visual change and the CPU usage drops a lot.

    It also creates around 1000 objects which seems a lot for a relatively simple style of game like this - perhaps you're creating hundreds of unnecessary objects and running intensive events on them all?

    It's also difficult to test this reliably, as it seems to be based on randomised and procedurally generated content, which makes doing a fair comparison between two releases difficult. What if one time it generates a lot more content? It could be slower because of the content, not because you switched release. You have to be scientific about performance and make sure you're running exactly the same thing in each case and only vary one thing. It seems possible that there is no significant performance change in Construct and the content differences gave you a misleading impression of a performance change. From an engine point of view it is also much, much easier to investigate performance differences with a minimal project (as per our bug report guidelines).

    I'm afraid I don't have time to dig any deeper, but in short I can't see any evidence of a major performance difference between r295 and 297 here, and the most serious problems look like inefficient events or game design, which are up to you to change! As ever it's important to keep an eye on the performance numbers and watch out for any changes that cause a big change to the numbers, which is an indication you made a change that hit performance, so you would probably want to find a better way to do that. And if you want to track down something that might be slow, split events up in to smaller groups to get better numbers from the performance profiler, and try deleting chunks of events to see if performance improves when to remove specific events.

  • Ashley

    Thanks for taking the time and for your feedback for me to optimize the prototype.

    In my notebook (CPU i7-11800H GPU RTX 3060 mobile) where I'm working on, the performance drop is consistent independently of the procedurally generation since I ran it many times each and, most of the running time, the new betas can't maintain full framerate.

    But you are right that to correctly and reliable diagnosing anything you have to minimize the variables to the minimum.

    I just tested the performance of r298 on the other computer I tested r296 (that also crashed) and the performance was the same as r295 as it was also your case. Sorry for not having to be able to test that earlier.

    Conclusion:

    • My prototype runs every tick unnecessary redundancy with some events that lead to inefficient use of the cpu.
    • My notebook is particularly impacted by something in this inefficiency that doesn't happen on other systems.

    I'll fix what you pointed me out and continue digging about my issue if it persists on future iterations of my prototype.

    Thanks

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