Ashley's Recent Forum Activity

  • Try using the File System plugin.

  • Is there a way to animate an icon?

    You can use [tag] in BBcode to tag a region of text - perhaps just a placeholder icon - and get its position. Then you could put an animated Sprite object there - which allows for using any other features in Construct (effects, behaviors, other kinds of objects like Particles, etc.)

  • Even if we did this, I'm not sure it would be sufficient for all those use cases - if you want something like a private message channel to multiple users, or different levels of group chat, then you need a dynamic number of Multiplayer instances. Even if you can add more Multiplayer instances, then how many do you add? Then setting up your event sheet to be able to manage them as if they were an array sounds complicated.

    Things like an "Alert" server that just sends a global message out every now and then would be a relatively simple case for a WebSocket connection to a custom server - re-using Multiplayer for that seems a bit overkill.

    Another option is to run the host on a traditional headless server - it's not especially straightforward to set up, but then you have better privacy as things like private messages are routed via a generic server rather than a player's machine. Even with the host being a player, it's possible to set up an encrypted messaging system between two peers so the host still can't read their messages, but that's a fairly complicated cryptography case. (Maybe the Cryptography plugin could help...)

    So I think if we wanted to do this properly, the single Multiplayer object alone would have support for connecting to multiple rooms simultaneously. I think that would be a pretty complicated change to make though. Even if adding multiple Multiplayer objects is straightforward, in the long term there will probably still be a need for truly dynamic room joining, and so there'd still be a need for the proper multiple simultaneous rooms support; then if we did implement that, we're left with a messy design, as there is no longer any need for multiple Multiplayer instances but we're stuck with that short-term measure for backwards compatibility reasons. So with a long-term view, I'd rather do this the proper way, even if it's more difficult. It's always tempting to choose the easy option, but it can make a mess in the long term, and we'll still be here dealing with that.

  • This just came up in this thread as well where I already responded.

  • Listing all templates is also an interesting idea, but I think it's a slightly different use case. Should all those templates be in a separate section of the Project Bar? If so, there's still the problem of what happens when you drag in a new instance from the Object Types folder. Should templates appear as child items of object types in the Project Bar? If so presumably you can still drag from the object type itself, and the same problem comes up. So while I think that may well be worthwhile as well, it's probably best thought of as a separate addition.

  • It was retired in r413. As far as we're aware, virtually nobody used it, and virtually no iOS users care about Game Center, and it was difficult to support and maintain. We've heard very little about it since stable r416 rolled out to everyone nearly a month ago, so I think we made the right call - I'd say just ignore it and don't bother trying to use it any more.

  • I think it's important to use the templates feature for this. It's what it's for: by defining a template, you are defining a named instance which you can make copies of. It's also what's used at runtime for creating instances based on copying another instance. If we define some other system for the editor, then the editor and runtime have different systems to define default instances. This then causes other inconsistencies, and people will ask things like "how do I create an instance at runtime that matches the editor's default instance?" to which the answer will still be "use templates"; others would rightly complain that the design of Construct is inconsistent. So I think this feature has to be based on templates.

    My issue with your proposed solution is every single instance pulled from the project bar would then need to be manually set as a replica—an error-prone or easily forgotten step that my level designers should not be expected to do.

    What if there's another checkbox to control whether new instances are replicas or not? It looks like the default at the moment is to make replicas. If you disable that then you just get a non-replica copy of the template set to be used for new instances in the editor.

    We could still then add a 'Make default instance' context menu option, which would just be a shortcut to:

    • Set the instance as a template with a default name (e.g. "default", but that string can be made translatable as the specific string doesn't matter)
    • Set the object type to use that template name for new instances

    ...but it's not clear what that should do if the template named "default" already exists, nor whether you want the 'new instances are replicas' setting to be enabled or disabled. I'm also a bit concerned about long-term cluttering the Layout View context menu too much, as it's already pretty long. Perhaps it's not too bad to leave that as something that you manually set up?

  • Make sure the server is configured to use the same cache settings for all file types - if your server is doing something like caching HTML files for 7 days but JS files for 1 day, then after an update you could end up with browsers loading a mix of files from different versions, which will then break.

    Your Cache-Control header looks strangely formatted - it should be enough to set Cache-control: no-store, but that won't fix existing browsers with a bad cache.

    You may actually find it works better with offline support enabled - Construct then manages updates by ensuring the new version is fully downloaded bypassing the cache, and then swaps over to that on the next reload. Another strategy is to use different URLs for every update to make sure it never mixes up versions (e.g. mygame/v1/index.html, mygame/v2/index.html...), which you can then enable immutable caching for as versions never change.

  • In the latest beta release r419 if I export 'Spell caster' with Windows WebView2, extract all the files to a folder, and run WindowsIconUpdater.exe, it works fine for me and reports it successfully updated icons.

  • This was not directly accessible from script, but it was easy to add, so there is now an IRuntime loadingProgress property in r419.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • The code you showed is definitely wrong, so if something doesn't work, the first thing you should do is fix that code. I can't help any further if your code is obviously wrong, as my only assumption will be that wrong code is going to break things.

    The 'Play in background' setting in Construct's Audio object only affects audio played with the Audio object, and it only means "do not deliberately stop all audio playback when the page goes in to the background". So the default is to continue playing audio in the background, providing the browser allows it.

  • Currently the debugger inspector is designed to use flat tables. That works for most properties, and flat data structures like 1D arrays, but it doesn't work well for 2D or 3D arrays, or complex nested data structures like JSON. So it's not a case of "just add that", it means implemeting an entirely new kind of user interface within the debugger inspector, and adding new UI usually means the feature request is complicated and time-consuming, which generally means it has to be really important to be worth prioritising over hundreds of other suggestions.

Ashley's avatar

Ashley

Early Adopter

Member since 21 May, 2007

Twitter
Ashley has 1,418,589 followers

Connect with Ashley

Trophy Case

  • Jupiter Mission Supports Gordon's mission to Jupiter
  • Forum Contributor Made 100 posts in the forums
  • Forum Patron Made 500 posts in the forums
  • Forum Hero Made 1,000 posts in the forums
  • Forum Wizard Made 5,000 posts in the forums
  • Forum Unicorn Made 10,000 posts in the forums
  • Forum Mega Brain Made 20,000 posts in the forums
  • x108
    Coach One of your tutorials has over 1,000 readers
  • x62
    Educator One of your tutorials has over 10,000 readers
  • x3
    Teacher One of your tutorials has over 100,000 readers
  • Sensei One of your tutorials has over 1,000,000 readers
  • Regular Visitor Visited Construct.net 7 days in a row
  • Steady Visitor Visited Construct.net 30 days in a row
  • RTFM Read the fabulous manual
  • x35
    Great Comment One of your comments gets 3 upvotes
  • Email Verified

Progress

32/44
How to earn trophies

Blogs