Ashley's Forum Posts

  • To integrate with Android you'll need to develop a Cordova plugin, and then develop a Construct plugin to talk to the Cordova plugin.

  • Does the Construct game take time to load before it’s ready to receive messages?

    It depends when you add the event listener in your code.

    You might have a race between loading the parent page and loading the iframe. If one sends a message before the other is listening, it won't work (and will fail intermittently depending on how long loading works).

    There are various strategies to deal with this - one for example might be to make sure the parent page is listening before the iframe is loaded, and then post a ready message from the iframe to the parent once the iframe is listening, after which the parent can safely post to the iframe. Another is just to post messages to the iframe regularly on a timer and send an acknowledgement back from the iframe once received, at which point the parent can stop posting.

  • I believe that is the intended functionality of cordova-plugin-purchase. It was previously discussed in this issue - in some countries people can use a "pay later" option, which counts as the purchase succeeding, but the transaction is later cancelled.

    It's not actually correct to assume a product is granted in "On purchase success" - as noted in the documentation you should be having "On transaction finished" and "On product owned" being triggered, with only the latter being the true completion of the purchase. Perhaps in the "pay later" case the other triggers only fire when the transaction is completed? I'm not sure, and it's difficult for us to test. You might also need to make use of the validator service to perform checks server-side and revoke any items that ended up cancelling the transaction.

    FWIW I don't think any of this is specific to Construct - it's just how the app store works.

  • Addons which hack new features in to the engine are an absolute compatibility catastrophe and regularly cause disasters, and it looks like the addon in question does that. The SDK v2 is probably capable of making a plugin that produces a 3D shape that is rotatable in 3 dimensions, providing the plugin implements those features itself rather than hacking in to the rest of the engine - which is a far better design and the one that really should have been used in the first place.

  • Without seeing a project all anyone can do is try to rely on telepathic debugging, which is notoriously unreliable - as ever the best way to get help is to share a project so others can try it out. My best guess is you somehow mixed up mismatched versions of DLLs/plugins causing it to crash on startup. Or maybe it's a graphics driver crash. Hard to say.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • It's not supported, and it's particularly tricky to support efficiently for music, because normally music streams (downloading and decoding chunks of audio at a time) using the built-in browser support. If files were obfuscated it would probably have to deoptimize that and fully download and decode music files before starting playback, causing a longer playback delay and higher memory use.

    As far as I'm aware, virtually all web games just serve audio as-is. It's not like you're providing a download button for the audio. You'd still have to use developer tools to find the URL for the audio to download, and I think you could argue that is not easy access to download a file. If that was still regarded as easy access by some legal terms, to be honest I don't think that's a reasonable restriction for a web game.

  • On most operating systems, for security reasons apps do not have write access to their own folder, and instead write storage to a separate folder. That folder corresponds to the "<current-app-data>" picker tag in the File System plugin. As the Steam Deck is based on Linux, the folder path will be something like /home/username/.local/share/com.myapp.id. So you'll need to clear that folder to clear the app-saved data like savegames and Local Storage.

  • Yeah, serving complex content like exported Construct projects requires being served normally. That means https: on the web, or in Cordova or desktop exports it internally uses a protocol like app: that works similarly. It doesn't even work properly on file:.

  • Ah yes, no duplicate filenames does make this a bit tricky. The good news is we're planning to lift that restriction soon when the 'Flat' folder structure mode is removed. Until then I think you might have to do something a bit more hacky - perhaps you could export to Android Studio/Xcode, then add the extra files to the app. The idea is to add the extra files outside of Construct, but in a way that still bundles them with the app.

  • We've already got the File System object and it should now work in Chrome on Android to save files to the local device. However to get it working in Android apps Cordova needs to add support for it, which this issue I previously mentioned is about.

  • It looks like you navigated the main window rather than an iframe.

    By far the easiest way to help is if you share a project. Otherwise I can only rely on telepathy, which isn't very reliable.

  • I think you'd need to do an ordinary web export of the other projects, and import all their files to different subfolders in the general 'Files' folder in the Project Bar of the main viewer project. Then you should be able to do something like navigate an iframe to "subfolder/index.html" and it should load the project exported in that folder. I haven't tried this though.

  • I'd guess the easiest way to do this would be to show other exported projects in an iframe.

  • I'd suggest taking the Learn JavaScript in Construct tutorial series if you're new to coding. It covers this in part 11, explaining how in the runOnStartup callback the project is still loading and no objects exist yet, so there's not much you can do. You will almost always want to use the "beforeprojectstart" event. Many of Construct's coding examples also do that.

  • Perhaps you tried to import a corrupt image. Construct shouldn't crash even if you do that though. It's hard to say any more without the same information a bug report requires (steps to reproduce, a sample file, etc).