Ashley's Forum Posts

  • I'm afraid it's impossible to help without more information. If you run in to a problem please file an issue following all the guidelines.

  • Please note suggestions in replies to this thread will not be considered. See the original post for details on posting suggestions.

  • What about the other cases I pointed out, like when combining with multiple conditions from the same object type, or involving system conditions that don't do any picking?

    TBH I don't think this is going to happen, realistically. The event engine involves a large amount of complex code, internally there are several different types of conditions that work differently, many important conditions have custom coding for them, and code for OR blocks is highly complex and spread through it all. Even after many years we still occasionally get bug reports and have to tweak the implementation. The idea of adding even more OR logic to all that fills me with dread. Then there's the fact that it's adding a second alternative to an existing feature, which I generally think is the way to end up with messy and complicated software. Add on top of that that I get the impression different people have different views on how this should work, and it seems likely an alternate OR implementation will not fulfill everyone's wishes in every case, and so could end up as something people end up avoiding anyway. Altogether this kind of adds up to a worst case scenario for a feature suggestion.

  • It's still not clear to me how any new OR feature should work. There are lots of awkward combinations of different types of conditions that need to be properly thought-through with specific results defined. It definitely can't just be a logical OR, because it needs to involve picking somehow. You can't just say "make a true OR" without explaining exactly what that means.

  • It's possible that the browser logs its own messages automatically, without involving JavaScript calls to the Console API. There is no way to access those messages from the page content. However if intercepting calls to the Console API is enough, then as noted there are libraries that can do that.

    Please contact supportquc@construct.net for any questions about subscriptions.

  • FWIW the editor should support emoji anywhere (in expressions, object names, etc). If it doesn't, please file an issue. Supporting emojis is more or less a similar technical problem to supporting different languages like Japanese or Greek, so an emoji problem is probably also a language problem. And we want to fully support emojis anyway as it's kinda fun 😀

  • In the event system function parameters only exist for the duration of the function call. (It's not like JavaScript where you get a closure.) Therefore if you call setTimeout, the callback will run after the event sheet function finished and so the function parameter no longer exists.

    I think you can work around it by copying the local variable though and using a JavaScript closure, e.g.:

    let ind = localVars.ind;
    
    setTimeout(() => /* can use 'ind' here */, 300);
    
  • -----> Audio: Add remote URL FileChooser.FileURLAt(0) (type "audio/mpeg") as name "LocalMusic"

    -----> Audio: Play FileChooser.FileURLAt(0) looping from Music at 10 dB (stereo pan 0, tag "")

    If you add a URL with the name "LocalMusic", then you need to play audio named "LocalMusic", not pass the URL again.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • I'm not clear what you're doing or if you're even using Construct? If you're not getting help you should provide more information and details to ensure others can help you, rather than just constantly bumping the thread.

  • The tutorial Offline games in Construct covers this. You can use the Browser object to detect update events and auto-update, and you can also look in the browser console to see what's going on as Construct logs update events there too.

    FWIW Wordle isn't uploading new content every day - it's just one app with a database of words for all the future day's puzzles. So it can load new puzzles every day without needing to update or load any new content.

  • That's how it's always worked - Sprites all share the same source set of textures.

  • If more than 1 collaborator adds a new behavior, effect, object type, family, layout, event sheet, script, or timeline, it modifies the .c3proj and creates a conflict.

    This should not create a conflict as long as separate parts of the file were modified. It should only be a conflict if two people both try to commit changes at the same time that both affect the same line (e.g. both adding an object to the same folder).

    That really is just how source control works - I suppose Construct could load things some other way, but that doesn't prevent conflicts. You'll still get conflicts if two people modify the same image, edit the same comment, change the same instance variable, etc. etc. The best approach to avoid conflicts is to assign clear roles on the team - for example we have clearly assigned code areas for working on Construct itself, so we rarely have to modify the same thing and rarely ever get conflicts.

    Again, not the expert here, but sequential UIDs might not be the safest approach.

    It's true sequential UIDs don't work well for merging, and it's been a problem before. However I think there's a smarter way to solve this than just adding a whole new kind of UID: in r348 there's a new project property you can change that assigns all UIDs as random numbers with at least 6 digits. Therefore if two people add new objects, the chance they are assigned the same UID is negligible. I think if you set your project in to this mode it should avoid this type of problem happening.

  • There are new script APIs in r348 that let you do this, e.g. replaceCurrentAnimationFrame(blob). You can use it to load a URL like this:

    const response = await fetch(url);
    const blob = await response.blob();
    await spriteInst.replaceCurrentAnimationFrame(blob);
    

    The fact it uses a Blob helps make it flexible for other purposes like locally generated content.

  • If Construct let you place layers on top of HTML elements, would that solve a lot of the problems then? I had a feature like that planned.

    I think people mean lots of different things when they say "UI" - sometimes it means things like text inputs, which browsers already do very well, and are often very tricky with in-house engines. Playing Valheim recently I noticed the text inputs are kind of janky with poor support for selections, keyboard shortcuts, and other missing features - I think that's some in-engine Unity plugin. The browser built-in stuff is actually very sophisticated, something I went in to detail on in this blog. In other words, doing this in-engine is extremely difficult and a colossal amount of work, and even then it doesn't always reach the standard of a basic part of a browser engine!

    I don't think it's even feasible for us to address this as we just don't have a large enough team, which is why I'm focused on making HTML and CSS work - and if we can get it integrating nicely it will probably end up a much more powerful and flexible system than if we did it ourselves. Still, third-party developers could give an in-engine UI system a go if they really wanted to - best of luck to them if they try!