Ashley's Forum Posts

  • Do you know exactly what type of measurement you're looking at when you say Linux is using lots of memory? Accounting for memory usage is actually a lot more complicated than you might think. For example in Task Manager, Windows splits memory usage in to the categories "In use", "In use (compressed)", "Modified", "Standby" and "Free", with further measurements for "committed", "paged pool", and "non-paged pool". The concept of "total memory use" depends on which of these categories you include. For example in Windows the "standby" category is used in the sense there is lots of potentially useful cached data and code stored in memory which can help optimize the use of the system; however if an application suddenly demanded lots more memory, it can generally just release all that memory and give it to the application. So it's not used in the sense it blocks other applications from allocating memory. On my system memory is 41% full if you count just "In use", but 92% full if you count both "In use" and "Standby"; only about 7% is actually categorised as "Free". So the measurements can be wildly different depending on what is being counted, and the meaning of the result is significantly different too: 92% in use might be a problem, but 92% in use and standby is not a problem, because 51% of that memory is still actually available to applications should they need it.

  • There's this open issue which sounds related. I would hazard a guess that this is a bug in iOS and WKWebView isn't using gamepad input, but we need to finish reproducing/investigating it first, which is just taking a little longer as it's a hardware-dependent issue.

  • Then why is there a "GPU Preference" setting, what does it do?

    It changes what the application asks the system for. Sometimes the system will comply with it, and so the setting does take effect, but sometimes the system will disregard what the application asks for and so the setting does not take effect.

    Applications can't override system preferences. This has been a problem for years with dual-GPU laptops. If the system software does not apply the right preference, you'll need to contact the GPU manufacturer, as it's out of our hands.

    IIRC there were some hacks you could use to try to force applications to use specific GPUs with some vendors, but I don't think they were ever officially documented, so we didn't implement them ourselves. You could give it a go, but it would be at your own risk.

  • Dual-GPU systems commonly include system software that overrides the application's choice of GPU. There is nothing the application can do about this.

    The only options you have are:

    1. Instruct players to manually change their system settings to use the discrete GPU
    2. Try and get in touch with NVIDIA/AMD/whoever else and get them to change their system settings to default your game to the discrete GPU. They usually do this for big titles, but don't set it for every game.
  • This is actually a bug in Construct's TypeScript definitions: IWorldInstance.effects is actually an array of IEffectInstance, but it generates a type definition with a named map like instance variables and behaviors. So the correct usage is to treat it like an array, and to make TypeScript happy, for now work around it by casting to IEffectInstance[].

    As we're close to a stable release the fix for this is in the next release cycle (first beta after the next stable).

  • Allocating virtual memory is not the same thing as actually using memory, so if the only thing we know is it allocates lots of virtual memory, that does not in itself mean there is any problem.

  • That's not to do with TypeScript - as per this manual entry:

    One extra requirement of Advanced minifying is that global variables must always be referred to as a property of the global object.

    i.e. you must use globalThis.InstanceType.

  • The video is 4 years old and since then we switched to using JavaScript Modules. With modules, everything is scoped to the same file and cannot be used outside of the file unless it's either exported and imported, or explicitly put in global scope with globalThis. The latest documentation reflects this.

  • Try exporting an Android Studio project - then you can modify the app using Android Studio like any other Android app before publishing.

    If you can find a plugin that does what you need, it may be able to make automatic modifications for you. However that typically requires a Cordova plugin, with a Construct plugin that wraps it.

  • Software does actually require on-going maintenance and so constantly costs money to run, maintain and support. It's like buying a car and expecting it to be free every time you take it to the mechanic - it's obvious that is not economical. Things tend to be less obvious with software as it's more abstract, but many similar principles of engineering apply.

    If a tool doesn't have a sustainable business model, it could end badly. If you're going to invest in learning and using a tool for a long time, you probably don't want the company to go under just as you're getting to grips with it. So a sustainable model is in the interest of everyone who uses the software, too.

  • Does it use that much memory on other platforms? If not, it's probably the Steam Deck using all that memory, not Construct, so it would be best to contact Valve for support.

  • Am I doing something wrong or is this a bug?

    It's a mistake in your events. The "Else" means "is not on Android". So your logic will only ever show "Android" or "OtherPlatform".

  • I think one of the big lessons of the Unity runtime install fee debacle is that game developers need to think about the sustainability of their tools. If the development of the tool is not sustainable then it can suddenly run in to serious difficulty and have to radically change things, possibly to everyone else's detriment. It seems to me Unity went with a very generous offer for many years, ended up losing huge amounts of money, and then suddenly tried to impose install fees on everyone to try to get back to profitability. Obviously that didn't work out, a huge backlash forced them to reverse course, they've now made thousands of staff redundant, and a question mark still hangs over their long-term future. The tool cannot continue to exist in its current form if they can't find a way to make its development sustainable.

    I know not everyone likes the subscription model, but it does guarantee that we can keep going indefinitely. It's clearly a sustainable model.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • It looks like the Android WebView v121+ also supports WebGPU. However Construct still sets WebGPU disabled for Android exports, but that will be changed to enabled for the next release cycle.

  • Try using 'Set stepping iterations' and increasing the iteration counts. That will help improve the precision of the physics simulation, although at the cost of higher CPU usage.