Ashley's Forum Posts

  • It might help a bit to run the engine in a worker, but I wouldn't expect it to be a transformative improvement. Running the engine on the main thread means it contends with other browser work happening on the main thread, but browser developers already work hard to keep the main thread as free as possible (by making the browser do its own work in other threads - already using other cores if available - see this blog) specifically so there's as much time as possible to be spent running JS code. I don't know, I'd guess at maybe at best a 10% improvement running in a worker. As the blog post mentions, a nice thing about browser engines is they already split work across cores where possible.

  • If you have concerns about mobile performance, please, please, please:

    • make a .capx
    • make performance measurements
    • share the .capx and measurements

    It is incredibly frustrating to read long threads about supposedly poor performance and yet not be able to do anything at all about it. On page 4 of this thread, all I can do is shrug and say I don't see what you're seeing, apart from maybe acknowledging that Chrome has had a rough patch of bugs which has affected smoothness and performance (and NW.js and Crosswalk inherited that), which is Google's responsibility, and not to do with Construct 2 or its engine. I saw another thread like this, something like 20 pages long, and I got a single .capx out of it. I profiled it and managed to make some improvements for the next build. That was a useful improvement. But I cannot make performance measurements and code optimisation improvements from complaints on the forum alone. If you really want to make a difference, the conversation about performance needs to be focused on real examples with actual measurements, not just talking about it.

    Often the next argument is "you depend too much on third parties like Chrome", followed by a suggestion to use a different third party engine like HAXE or some other library, which could equally cause problems, and IMO is more likely to since few of them have the backing of a billion dollar corporation with thousands of engineers. No software is perfect; everything has its issues; the fact one platform has issues is not an argument to go through an incredibly disruptive technology shift to another platform that has fewer development resources going in to it.

    Often then people send us .capx projects which clearly hit hardware limits, for example they hammer the GPU fillrate incredibly hard, or use tons of intensive shader effects. Native apps use the same GPU, so a native engine won't save you: it's still the same hardware, and will still be just as slow. A native engine will only help if your game is CPU-bottlenecked. Of the CPU-bottlenecked projects we see, often they do crazy things in clear contravention of our performance tips to an extreme extent. Badly designed games will still run badly no matter which technology you use. I don't mean to blame everyone here for designing their games badly, but of the .capx files I am actually sent, this is frequently true; if you think this is the case even with a well-designed game, see my request at the top!

    I had the opportunity to profile The Next Penelope - one of the most ambitious games developed with C2 - and look for any performance bottlenecks. It was running very well and the engine was holding up great: it had a very even spread of CPU load across lots of small functions, with no obvious bottlenecks, and good overall performance. I think that at least proves that well-performing ambitious-scaled games are possible, and that there are no obvious performance deficiencies in our engine (as in the JS code we've written).

    The asm.js version of Box2d should run within 1.5x as fast as native C code according to Mozilla's benchmarks, and it's still improving. Performance issues in physics games using asm.js physics are probably either due to maxing out the CPU due to too intense use of physics, or it's not actually physics which is causing the performance problem at all.

    When people run in to hardware limits that native engines would also face, or even come up with some crazy game that does something like hammer pathfinding across a huge map every tick and find it eventually chokes and dies, the impulse seems to be to immediately blame HTML5 or the browsers or our engine. Of the projects I see, this is frequently unjustified. Again, please, send me real examples so I can examine them and make any necessary improvements. Make this about .capx files and measurements, not just long forum threads.

  • It's very painful to implement anything but standards-compliant features that cover the exact same features. I couldn't immediately find any Cordova plugins that do. Ideally they will be compatible with the specification so all you'd need to do is add the Cordova plugin to your project and it starts working, but if it's not a compatible API then it's a real pain to integrate. If speech recognition is part of Chromium, then it really is best if Crosswalk can add support for it.

  • > If you don't change any of the object images or animations, then simply use letterbox scale mode. Then on a 720p screen you'll get 720p display.

    >

    Definitely. That's what my game already does. However, I'm wanting 720p on a 1080p screen, or even a 4k screen. Essentially, I want to limit the max resolution. Does it make sense to do that to improve performance? The idea is that the GPU will have to render less overall pixels, but I'm not sure if what I'm doing to achieve that makes any sense.

    Only if you use 'Low quality' fullscreen mode. Even if the viewport is 720p, in high quality fullscreen mode letterboxing that to 1080p or higher will display more detail, and run at the same performance. If you use low quality fullscreen mode it will render at the viewport size and then simply stretch the result to fill the display, which improves performance on weak GPUs with low fill rate capacity.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • mindfaQ - we ask that you test all browsers in bug reports to help identify browser specific issues. Please test it in Chrome and if it doesn't reproduce there, report the issue to Opera; if it does, file a new report with full details.

    • Post link icon

    I can't get the latest 0.4.1 update to work. Has anyone else had any luck with it?

  • I've corrected the order of operations for the next beta. We'll see how it goes.

  • Sorry, it looks like a bug in Opera, it just does not fire the onended event on audio buffers. You'll need to report it to Opera. If you have any other issues which only reproduce in one browser but not any others, it's probably a browser bug that you need to report to the browser developer.

  • Can't reproduce any issue here, it looks fine in Opera Developer 30, with the same result as Chrome, which is unsurprising because they are both based on the same browser engine.

  • Thanks for the report, this should be fixed in the next beta.

  • Thanks for the simpler repro. I managed to track down the issue and it should be fixed for the next build.

  • Well, I can't reproduce here... can you reproduce on another system without the color calibration software?

  • Should be fixed in the next build, thanks for the report.

  • I can't reproduce in IE or Firefox, although your bug report seems to indicate they are affected. Also Chrome Canary is not affected, so this appears to be a Chrome browser bug that has already been fixed. We had a similar bug report with exactly the same conclusion recently so I think this is in fact the same issue. It should be fixed when Canary makes its way down to the stable channel.

  • The fact one crash happened in nvoglv64.DLL and the error message based on "NVIDIA OpenGL Driver" strongly indicates your nVidia graphics driver is crashing, not Construct 2. Therefore it's not an issue we can help with. You'll need to contact nVidia support.

    If your project happens to use more GPU memory than your system has available, try deleting all the .uistate.xml files (if you use a .capx file, rename it to .zip and extract it first). That will allow you to open it with just the first layout tab open, which will use less memory.