Ashley's Recent Forum Activity

  • 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.

  • B) Make it so new instances pulled from the project bar automatically become replicas of the "default" template if it exists.

    This design makes it a bit of a hidden feature, and hard-codes an English string which isn't great for non-English users. What about a property to choose the default template name used for new instances? This seems like a good solution as templates are the feature intended to be used for determining initial properties.

  • runtime.globalVars.Player = audio;

    This code is wrong - Construct's global variables can only be strings, numbers or booleans. You can't assign a complex JavaScript object like Audio to a Construct event sheet global variable (how would that work in the event sheet?). You will need to assign it somewhere else.

    Does anyone know if by adding the audio object, this will allow the entire app to stay alive in the background and all the scripted audio to continue to play?

    Adding the Audio object doesn't change the way browser permissions for audio playback work. If it's not working, it is most likely due to the mistake above.

  • This was changed earlier this year in r382. The engine has always stopped rendering frames when nothing is happening, but now the measurements better reflect what is really happening: FPS corresponds to actually rendered frames, and the newer Ticks Per Second (TPS) corresponds to the engine ticks, which continue even when nothing is rendered.

    I'm afraid as such matters involve personal details we cannot help on the forum - if you've already contacted the support email address then we will resolve the issue there.

Ashley's avatar

Ashley

Early Adopter

Member since 21 May, 2007

Twitter
Ashley has 1,398,045 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
  • x107
    Coach One of your tutorials has over 1,000 readers
  • x61
    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