Ashley's Forum Posts

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

  • If you extract a project on Windows then transfer it to Linux, generally that means all the executable file permissions are lost, and then the project will fail to run at all on Linux. So if it runs at all, it's probably not that.

  • 3D shape rotation is already supported in the latest beta (along with 3D rotation for other objects like Sprite).

  • Use the Pick by highest/lowest system expression, and pick by lowest Family.BBoxTop. Then you can position an object at Family.X, Family.BBoxTop to position it at that point.

  • The project should always successfully open with any UI state files missing with no worse consequence than the UI reverting to default settings. If that's not the case please file an issue.

    • Post link icon

    Construct 2 was retired 5 years ago now, in July 2021. Much like after the retirement of Construct Classic, the Construct 2 forums will be placed in to read-only mode in a month's time, on August 3rd 2026. The content will remain available in read-only mode for archival reasons, but new posts will not be allowed. Posts concerning Construct 2 posted to other forums will be moved in to the Construct 2 forums where they will become read-only. For continued official support, please upgrade to Construct 3. Thanks for your support over the years, but 15 years after the original launch of Construct 2 and 5 years after its full official retirement, the time has come to move on and ensure the focus of official support and resources is for Construct 3.

  • As ever the best place for bug reports is the issue tracker. However based on the project file shared by R0J0hound I think I have a fix for the next beta.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Text objects default to pixel-snapping to ensure they display with best quality. The easiest way to disable that is set the angle to something like 0.01 degrees - rotated Text objects skip pixel-snapping as they won't line up with the display anyway, and so a small nonzero angle will not visually look rotated, but will be enough to stop the pixel snapping.

  • How to render a complex group of sprites (with blend modes) into a single flat image/texture?

    The easy answer to this is to put them all on a layer with 'Force own texture' enabled.

    Spawning real sprites for each card (30 parts × 7 cars = 200+ objects just for the UI) is completely out of the question—mobile devices will instantly drop frames.

    Have you actually tested this? A few hundred objects is not actually a lot even for low-end mobile devices. Modern software and hardware is often a lot more powerful than people assume. For example this blog post from a few years ago references an Android device which is by now nearly 10 years old, and it could still manage thousands of on-screen sprites.

  • I don't think there's currently a way to make a build with additional command-line flags, but you can always use a small script or a desktop shortcut to run another executable with additional arguments.

    I would caution against changing random undocumented settings via the command-line to solve problems though. It's the software version of putting wallpaper over structural cracks. It could also cause new problems, and in some cases those problems may be worse than the one you are trying to fix. In general such things should only be done on a temporary basis while the root cause issue is identified and fixed.

  • I think sometimes browsers suspend pages in the background to prevent them wasting resources. It might be doing that but unintentionally also pausing any work Construct is doing. Perhaps there is a browser setting that can adjust it.

  • Folder projects should actually be faster to open and save than single-file projects. They don't need to decompress/compress data to a ZIP, and saving can overwrite just a few changed files, rather than regenerating the entire project every time.

  • This forum is for Construct 2, and the post appears to be about Construct 3, so moving to the Construct 3 forum. Please report any issues to the issue tracker.

  • The idea is the user edits the collision polygon visually in the Animations Editor. Why do you want to overwrite it? Do you expect it to work with undo? Changing the project from addons is quite tricky - just undo alone is quite a complicated area: either we add all the (significant) API surface to handle undo and redo properly, and you write all the code necessary to handle it for your changes, or we don't and in some cases undo is broken for the user.

  • You do not have permission to view this post