Ashley's Recent Forum Activity

  • The way construct exports the linux version does not cooperate with the steam web upload page because of the directory hierarchy

    As of the latest Construct releases, when you choose to export to a single platform (e.g. just x64), it should place everything in the root level of the zip - there is no subfolder and so no need to unzip and re-zip.

    I'm not sure what else to say - whenever I test this it works for me. There must be something you're doing wrong or some configuration is different on your end, but I don't know what that could be. Maybe it would be best to go to Valve for further support.

    • Post link icon

    I'm afraid for security reasons we cannot deal with such queries on the public forum - they have to be dealt with by email, so closing this thread. Due to staff time off responses may be a little slower over the summer - you should get a response next week (beginning July 27).

  • It's probably a bug, and I'm afraid it's hard to help unless you file an issue following all the guidelines.

    If you just want to recover your project, the best thing is just to restore a backup (because you keep backups, right?)

  • Construct's savegame system is designed to be robust against changes in the project. It should just continue to work even after updates to your project.

  • Nice, cool to see Construct games working on new devices! If you could get GPU acceleration to work that should improve performance a great deal.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • What if there was a hidden internal unique ID for layers? So it doesn't have to assume that a rename was a layer deletion, because it can see it still has the same ID.

    Layers already have an internal unique ID, but it doesn't help solve the problem. Each layout has unique layers; the only way a batch operation has to identify the "same" layer across layouts is its name. You could have a manually entered layer ID to help batch operations identify layers across layouts, but then you just have the same problem if you want to change the layer ID across layouts.

  • OK, so it looks like it's not just achievements, the entire Steamworks plugin is failing to initialize. I'm afraid it's difficult to help though - whenever I test this it using the Steam Devkit client it works fine, and I don't know what you could have done differently that would mean it doesn't work. Are there any error messages in the Steam Devkit log? Are you sure you are not doing something that is causing a problem with file permissions?

  • I'm not sure it's possible to resolve this with current browser technology. The browser appears to present the canvas and rest of the HTML page at different times, and there doesn't seem to be a good way to guarantee that they line up. So that means there will always be a frame or two delay between them. The HTML-in-canvas proposal may allow this to be resolved, but that appears some way off broad browser support, and would probably require a significant rework of HTML support in Construct anyway.

    Out of curiosity, what are you using this for? I had imagined that HTML content would be used mostly for UI and HUD style uses where the scrolling issue isn't important, rather than gameplay content where HTML content tracks scrolling.

  • The "steamworks connected" event always says false

    The official Steamworks plugin doesn't have a "steamworks connected" condition, but it does have "Is available". Are you using the official plugin?

  • The plugin doesn't currently support that. It is however open source so you could add the feature yourself (or find someone who can, or try to get an AI coder to do it for you).

  • The Steamworks plugin basically just directly calls SetAchievement in the Steamworks SDK. If the plugin works but achievements aren't working, I'd guess it's most likely because the Steamworks configuration is wrong. For example perhaps you forgot to add the achievement on Steamworks so Steam doesn't think it exists, or perhaps you spelled it wrong.

  • Sorry about the delay on this - I did have it on my list, but as pretty much always happens, so many other things came up I haven't had time to work on it yet. I have thought further about it though and I'm still not convinced the batch update approach is the best one. With some kind of significant new "layer templates" style feature being off the cards for now, I can think of two viable options:

    1. Batch editing

    This involves basically repeating the core layer editing operations across layouts. To cover all kinds of edits it would probably need to cover the following:

    • Batch add layer before/after
    • Batch add sub-layer
    • Batch rename
    • Batch delete
    • Batch replicate layer properties
    • Batch move layer (before/after another layer, or to/from sub-layer)
    • Possibly also batch replicate layer content, although that overlaps with global layers so might not be needed?

    Each operation just matches layers across layouts by name. For example if you choose to batch-add layer "foo" after layer "bar", then it would find every layer named "bar" in the project and add a layer named "foo" after it.

    Pros: conceptually simple - these are all existing operations in the UI and the idea is just to repeat them across multiple layouts

    Cons: there are actually a lot of different operations which makes it more work and potentially a clunky workflow. It is also not obvious how to manage "batch move layer" - typically this is done with drag-and-drop, and it's not clear to me how to design the necessary UI to express the intent "move this layer to there across multiple layouts", especially when taking into account sub-layers. I don't think it's feasible to just skip that option as otherwise you still have the same problem when you want to rearrange layers.

    2. Replicate sub-layers

    With this approach, you would organize all the layers you want to "template" as sub-layers of a parent layer. Then you could right-click on the parent layer and choose to replicate all its sub-layers across layouts (again matching by name). For example suppose you have layer "parent" with sub-layers "foo" and "bar", and that arrangement is repeated in 100 layouts. Then you could go to any layout, add a new sub-layer "baz" under "parent", and then choose to replicate all the sub-layers of "parent". Then it goes through all 100 layouts, finds the layer named "parent", and makes sure all its sub-layers match - which involves adding the new layer "baz". This would be a single operation that covers adding, removing and moving layers (also going in to further sub-layers), and updating properties.

    Pros: simpler user interface and possibly better workflow.

    Cons: this involves quite a complicated tree-diffing algorithm to work out everything that's changed and how to update it. In particular handling renaming layers would be difficult with this approach. In the previous example if layer "parent" as sub-layers "foo" and "bar", and you rename "bar" to "baz", there doesn't seem to be any way to tell this apart from deleting "bar" and adding a new layer named "baz". The difference is important if you want to preserve the existing content of the layer, as a rename preserves the content, but a delete-and-add will clear the content. With this approach there doesn't seem to be enough information to know that a layer rename happened so these cases cannot be resolved.

    So I think there are probably three ways forward:

    Option A: use batch editing, and figure out how to handle moving layers.

    Option B: use sub-layer replication, and figure out a way to persistently identify layers to match them up for renames. For example perhaps you could manually enter a layer ID and renames work by looking up layers by ID. (But then what if you want to change a layer ID?)

    Option C: a hybrid approach - use sub-layer replication in a way that always assumes a rename was a removal and addition of a layer. Then have a separate "batch rename" option solely to handle the case of renaming a layer using the batch editing approach instead.

    I think this is a good case study in how a feature that might seem simple on the surface actually gets quite tricky when you start to dig into the detail of how precisely it works, what the UI looks like, and how to cover all the workflows and edge case that will come up.

    I'm leaning towards option C as the sweet spot for a reasonable workflow with a reasonably straightforward implementation. Any thoughts?

Ashley's avatar

Ashley

Early Adopter

Member since 21 May, 2007

Twitter
Ashley has 1,788,417 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
  • x126
    Coach One of your tutorials has over 1,000 readers
  • x74
    Educator One of your tutorials has over 10,000 readers
  • x5
    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
  • x43
    Great Comment One of your comments gets 3 upvotes
  • Email Verified

Progress

32/44
How to earn trophies

Blogs