Ashley's Forum Posts

  • In 2020 the problem was repeated with another application and I solved it by deleting addons "even if the addon was not used in the project, it interfered with the app's performance!"

    None of the official addons should have any performance impact at all if you don't use them. If you can measure a performance overhead, please file an issue - we should be able to fix it.

    If a third-party addon has a lot of performance overhead, you'll need to contact the addon developer about it.

    I'd add that without rigorous measurements, it's easy to be completely misled by changes. For example if you change 2 things, one has a huge impact on performance, and the other has no impact at all, you can easily come to the false conclusion that both of those things improved performance, or that the wrong one improved performance. Since your post mentioned several things you did, it's not at all clear that the issue with addons you mentioned actually caused the problem. Further, even if a single addon does have some performance overhead due to a bug or something, "remove unused addons" is still not actually helpful advice: someone could remove a whole bunch of addons, but unless they remove that single offending addon, it won't make any difference. So to be useful advice, you should specify which. And if you specify which, we can investigate a potential performance problem and optimise it.

    I don't mean to pick on this poster specifically, but this kind of thing is repeatedly coming up in this thread, and often plays out across the rest of the community. Guesswork can result in poor advice, misleading conclusions, time wasted on meaningless changes, and create fear and uncertainty in the community as people say things like "but I thought unused addons had no performance impact?!" when they're probably actually right. If something really matters to performance, prove it: make two projects with a single change, make performance measurements in both, and compare the results. I would hazard a guess that of all the things people are saying here, 3 in 4 of them will make no difference at all. Measurements are the only things that matter, and you should only ever take performance advice seriously if it mentions measurements, and those measurements clearly correlate to a single change.

  • You need to contact the library developer about this. They need to make sure the library supports JavaScript Modules.

  • Will there be a Scripting API for containers, to be able to reference them? A sample use-case is setting all containers with an instance variable of the uid of the parent object, upon creation.

    It's not currently supported. It's best to log suggestions at construct3.ideas.aha.io so they don't get lost in the forum.

    FWIW, containers are pretty straightforward: because they always create and destroy together, all instances have the same IID (i.e. the same index in the instance lists), so you should already be able to figure out the container instances fairly easily.

    I've tried picking the objects by manual name search (runtime.objects["name"]), however it seems that the container objects are only later created after the "instancecreate" event. So, it's not possible to reference them on creation, unlike events.

    It's impossible to reference all container instances in a create event, due to the reasons I explained here.

  • I tried a minified export in Firefox 86 and it worked fine.

    It can take a while though, so you may have to be patient.

    As ever if you run in to problems please file an issue following all the guidelines, since we need that information to be able to help.

  • For loading the game on the android app, we download and cache the whole game bundle locally to reduce the download time for subsequent game loads. We leverage the request interceptor functionality of WebView to intercept the network request and then use the WebViewAssetLoader to load the response for the intercepted request from internal storage.

    Can I ask why you are doing this in the first place? Construct's built-in Android export option already gives you an Android app with all the resources bundled, so it works offline, and you don't need to download anything from the Internet, do anything else to manage offline support, or write your own network request interceptor. Construct's Android export has quite a lot of complicated compatibility code to work around all these types of issues, and so if you don't use Construct's Android export, you're going to have a long path of reinventing all these difficult compatibility headaches, such as this one, and probably several more you will encounter in future.

    Anyway, this specific problem should be simple to solve: as the error message says you just need to make sure the returned MIME type is application/javascript for .js files. A quick Google shows that you can set this on the returned WebResourceResponse via setMimeType. However as I said, this will probably look like it works until you run in to the next compatibility problem which you have to add further hacks for...

  • In r235 we fixed a bug in vertical alignment: previously it was not actually correctly vertically aligning the text; now it does a better calculation which is closer to the true middle based on the text metrics. This is technically a breaking change, so if you had adjusted your text positions to compensate for the wrong position, now you don't need to do that and so you might need to move them back a bit again. Unfortunately this is something of an unavoidable consequence of changing the alignment.

    To be honest the alignment of the Text object is a bit of a mess - the Text object dates back to the original version of Construct 2 in 2011, where BBCode was not supported, browsers did not provide the necessary text metrics to accurately align text, and (partly due to the missing text metrics) the original top alignment was actually slightly wrong. These things have been adjusted and fixed over the years (as I explained in the earlier linked bug). However some things are too difficult to change - for example if we changed the default "top" alignment we would break 10 years worth of Construct projects and inevitably be forced to change it back again. The change to middle/bottom vertical alignment when using BBcode was deemed to be both infrequently used enough to justify changing, and necessary as the previous result was actually wrong.

  • There's no point using this for the editor - the only reason now that we distribute an NW.js editor is to make it convenient to test when using the NW.js plugin. WebView2 doesn't support the NW.js plugin, so there's no point making an editor wrapper with it. Just use Chrome and install the PWA for an app-like experience.

  • The log showed it was using the Chrome 69 browser engine, which was released in 2018. All you should need to do is install app updates so either Chrome or the Android System Webview app updates, and it should work. I've no idea how a device could have gone so long without a routine app update.

  • It looks like the devices have out-of-date software. For example the 7.1 device appears to not have had any update since 2018. Check for app updates and system updates on those devices, and it should start working.

  • I regularly test APKs on different devices, and I've never seen what you describe. Perhaps it's a problem with the emulator, or a specific device. It's hard to help without more details such as the Construct project and details about the specific devices tested.

  • I guess I was hoping there would be a path for a Construct user to implement their own game on a console. But rather you seem to imply that Construct users should just hire third party people to help get their games on consoles. I would rather do this myself, but I literally don't even know where to begin or if it's even feasible - is this something I could do?

    In short, no, it's not feasible for an individual Construct user to do. You'd need a small team of C++ experts with console development experience, an in-depth knowledge of the Construct engine, and probably a year or two of full-time work to develop an engine. The porting companies already have all of that and already spent a couple of years developing existing C++ codebases that are ready to go now. So it's far easier to get them to use their existing codebase and expertise.

    Good games take a long while to make, which may be why you haven't seen much usage.

    It's been supported since 2017, so over 3 years now. I'd expect to have seen results by now. Don't worry, we will definitely have a phase-out period if we do remove it (as we do when removing any feature), but I'd advise to plan on using the porting services instead anyway, which is more or less the de-facto approach now anyway.

  • If it's slow to load, I would guess the server is just slow. I don't know how your server is configured and it depends on your host too, so I'm afraid I can't help you any further with this. Try contacting your host for support.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • We had already established that some specific devices seemed to have performance issues, so this does not seem to be anything new. Since we don't have every Android device ever made it's difficult for us to test, which is why we advise to file an issue at crbug.com describing the device and the performance measurements.

    gpuultilization showing NaN means the device does not support GPU profiling, not that it doesn't support GPU rendering at all.

  • I'm not really clear what the problem is from your post, but I tried loading the web link and it appeared to load and run OK in Chrome. However if you press F12 and check the browser console, some resources are failing to load with a 403 Forbidden error from the server, which suggests a configuration problem with the server, or perhaps you didn't upload all the files.

  • I ran both demos on a Pixel 3 and both cases appeared to perform identically. The test does not do anything performance intensive, so it's probably not really useful for testing performance differences anyway.