Ashley's Forum Posts

  • runtime.platformInfo.exportType === "preview"

    Previously that required the Platform Info object to be added to the project, but as of r408+, it's permanently available without needing the Platform Info object.

  • I think those kinds of glitches usually come from buggy graphics drivers. Try checking for updated drivers or installing any available system software updates.

  • If you can, use the Windows WebView2 export option (and coming soon, the Linux CEF export option) instead of NW.js - long term, we want to phase out NW.js and move to our own exporters, as they're a lot simpler, easier to maintain, and don't tend to have these weird issues that can crop up with NW.js.

  • I just want to point out you might find an AI image generating service that says in its terms that the images have no copyright, but it could still generate copyrighted or trademarked content, like images clearly depicting Mario from Nintendo games. Does the fact the AI company saying "these images have no copyright" override Nintendo's copyright for Mario? It's not clear, and I suspect the answer may end up being no. In that case the AI company can't make any promises about the copyright of the generated content. They may try to claim the generated content has no copyright, but it might actually generate content which someone else owns the copyright for, which you could then get in to trouble for.

    This is all speculation, but I think there could be messy consequences for some people...

  • Basically the performance, download size and memory usage of the project depends entirely on what kind of content you put in your project. See the manual guides on Performance tips, Memory usage and Download size.

    In general the same amount of content will have the same amount of download size/memory usage requirement. However in Construct specifically, its memory management loads or unloads entire objects in memory, including all animations and frames. So for example it's better to use multiple Sprite objects (and use Families to share logic) instead of one gigantic sprite that has everything in the game in it: then Construct can only load what you use. But if everything is used anyway, then there's no difference. And there's no point trying to go too far in the opposite direction - trying to make every single animation, or even every single frame, a separate Sprite object is just going to make your life harder for no real benefit. Just use a sensible design and it's probably fine.

  • I was asking if I could put a variable on say every single sprite object type so they could universally be referred to

    Wouldn't a family of all sprites in the project do this then?

  • The previous post refers to "class variables". These do not exist in Construct. This kind of thing is typical with AI-generated posts - they tend to produce content that sounds plausible but is actually wrong and misleading and pollutes the forum with incorrect information. Please see our Forum & Community guidelines which say this, and note further such posts may result in a ban:

    Please don't use AI, such as ChatGPT, to generate content. It often produces text that sounds plausible, but is actually misleading, incorrect, or otherwise unhelpful. This causes confusion and ends up wasting people's time and making it harder for people to get help. It can also put pressure on more experienced users to have to step in and provide a correction, as it's important to ensure the forum is a useful source of information. So please only write posts that you personally know to be true and don't rely on AI to generate responses for you.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • If a Sprite belongs to FamilyA and FamilyB, then only actions on Sprite can access instance variables inherited from FamilyA and FamilyB. There is no way for an action on FamilyA to access instance variables from FamilyB - nor is it clear how such a feature would work - what if a member of FamilyA does not belong to FamilyB but you run an action on it accessing a FamilyB instance variable? I think for this type of thing you just have to work within the system.

  • We've seen this issue reported a number of times but we've never been able to identify why it happens - it works fine for us and most other people it seems. My best guess is you have a browser extension installed which is interfering with Construct and breaking it, so try disabling any browser extensions you have. If you find which one is causing the problem, it would be useful to know, in case it's possible for us to work around it, or so the problem could be reported to the browser extension developer.

  • I am also not a lawyer, but I believe part of the problem is that AI is still new enough that copyright law hasn't caught up yet, so there are lots of unknowns. Perhaps it's fine, or perhaps you'll be infringing copyright. You might need to wait until the situation becomes clearer.

    I've also seen cases where AI image generators are able to create obviously copyrighted or trademarked images. It's obvious enough to see if it generated Mario, which is a Nintendo copyright, but how do you know if it generated something else obviously copyrighted that you're not already familiar with? It's a difficult question and it's not clear to me how AI image generators can completely solve that problem.

    But yeah, I don't think anyone you'll talk to on this forum is able to offer proper legal advice, so this is probably all just speculation.

  • It's probably a question better asked to itch.io themselves - but as far as I know, Android devices deliberately make it difficult to install apps from anywhere other than its own app store for security reasons, so it'll probably be difficult whatever you do. It might be a lot easier just to do a web export.

  • Generally browsers are designed so it's impossible for merely visiting a website to harm your computer in any way. This is definitely not true of running a desktop app, so in this sense browsing the web is fundamentally more secure than running apps locally.

    For an iframe in a game to show a malicious website, the game would probably have to have chosen to do that, which means the game itself is a malicious website. However merely loading or showing it cannot generally harm your computer in any way. If you start interacting with the page it may then try to harm your computer - probably by getting you to download a desktop app, because those are more useful for malicious purposes and it's difficult to do any lasting harm from a website, as browser security is generally very tough and hard to bypass.

    A malicious website might try to do something like trick you in to entering your personal details, or pretend to be your bank and try to steal your login details. This isn't anything to do with Construct or HTML5 games though - these are just general risks of browsing the web, and these risks can be mitigated by some general rules of thumb, like don't download desktop apps unless you know for certain they are trustworthy, check the address bar is the website you're expecting, etc. But the bottom line is: websites are pretty much the safest way to run software - they're generally safer than mobile apps, and certainly safer than desktop apps. No other platform has such strict protections for privacy and security.

  • editor.construct.net/r407-2/components/bars/propertiesBar/https://editor.construct.net/yGo-WcBiKFxRwjDdQbSKot_YC5B1XbMpl55bpxqk7N2ZPmR2A-LUNmK6GYGvmAn9xUis7zbseYotB6BtbpMaYA==

    Unfortunately it's completely mangled that URL - it seems to have duplicated the full URL after part of the path. I don't think there's any way around this on our side. It looks a lot like a bug in NordVPN incorrectly processing URLs, so it would be great if you could report it to them.

  • Ah, there you go. Can you post one of the full modified URLs anyway? Just in case it's easy for us to work around on the server side.

    It would also be good if you could report this to NordVPN so they can make sure nobody else has the problem.

    You can find a full list of domains that Construct uses here if you can set up per-domain exceptions.

  • Probably the best way to figure out what's going on is look in dev tools at the failing network requests. Find the first one that fails with status 400 and see what the full URL is and share it here. It looks like something is adding a lot of nonsense to the URLs Construct requests, which makes them invalid and so the server returns 400 Bad Request. Then the question is: what is changing the URLs to do that? It might be obvious from the full URL if there's something like "contosoantivirus-xyzabc123..." in there, but it might not be obvious either.

    Whenever I've seen this before it's been a browser extension messing up URLs, and turning off the browser extension fixed it.