Improvements that can make Drawing Canvas much more useful

0 favourites
From the Asset Store
You need this package if you want to program a Street Fighter or battle game.
  • DrawingCanvas was an awesome addition to C3, but there are too many limitations and things that can be improved. Here is the copy of this post on the feature suggestions website, please vote and comment if you agree:

    construct3.ideas.aha.io/ideas/C3-I-1155

    .

    Some of these ideas have already been suggested, but they received no status updates or replies from Scirra. So I decided to combine them all here in one post.

    1. Allow rotation. Not being able to rotate DrawingCanvas significantly limits its usefulness.

    Imagine you are making a top-down view game and want to leave scratches and splashes of paint on moving enemies. It's easy to do in C2 with Paster, not possible in C3 with DrawingCanvas.

    Yes, you can save the canvas image and then load it into another sprite, both these actions are slow and can't be used on every tick. Also, with many enemies you will need many empty animation frames in the sprite, and a complex system to manage them.

    construct3.ideas.aha.io/ideas/C3-I-1050

    2. Add arcs and Bezier curves.

    construct3.ideas.aha.io/ideas/C3-I-766

    3. Paste layer, Paste everything.

    If you need to make a snapshot of a small area (for example when making a split-screen game), pasting individual objects onto the canvas may be a difficult and tedious task, especially when objects are overlapping each other, have different blend modes etc.

    construct3.ideas.aha.io/ideas/C3-I-921

    4. Allow resizing canvas with stretching the image, or add actions for resizing the image inside the canvas.

    For example, Paster addon in C2 can be used to make deformation effects (like adding perspective) to images, this is not possible with DrawingCanvas.

    5. It's impossible to draw with transparent color, for example when you want to erase a part of the existing image, or cut a "hole" in drawing canvas. Actions like "Fill rectangle" with color rgba(0, 0, 0, 0) have no effect. Maybe there needs to be an option "Replace pixels=Yes/No".

    6. Flood fill, or bucket fill, similar to the one in Animation editor.

    7. Load image from URL. As I understand, currently the only option is to load it into a sprite, then paste onto the canvas.

    Ashley, Nepeo, could you please comment, are any of these changes possible?

  • As a small team constantly pushed for time, the more you ask for, the less likely you are to get it. It's much more feasible to deal with small and highly focused suggestions. So if you had to pick just one of those, which would it be?

  • I want to express my very own, personal, subjective opinion on that case.

    I'd say that point "3. Paste layer, Paste everything." is great.

    It can be a user-friendly "quick and dirty" way to use canvas.

    I, as a user, would even be ok with some limitations (like maximum caption area size available).

    If one wants to make some serious big canvas usage, with it being game's core mechanic - go ahead with adding it's containts object by object. If another one wants smaller scale episodical usage of it then something like "copy paste everything within set area fast" would be nice.

    Other points like rotations, arcs, resizing etc are secondary for a quick and easy use.

    Maybe the "Load image from URL" point can be also usefull, to a limit.

  • Ashley I'm not asking for a personal favor here, this is something many people will benefit from...

    I would say for me rotation, paste layer and resizing are the most important. But it's hard to choose just one, because I need different features in different projects.

    Could you tell which of these changes are possible to make, and which are not possible or too difficult?

  • Ashley I'm not asking for a personal favor here, this is something many people will benefit from...

    I know, but you could say exactly the same about the close-to-600 other suggestions filed on the suggestions platform. That represents years and years of work, and suggestions are being filed faster than we could possibly implement them, so many ideas will probably never be done. So the question every suggestion has to answer is: why is this more important than all the other possible ideas we could work on? And what is the smallest, quickest and easiest way it could be done?

    Could you tell which of these changes are possible to make, and which are not possible or too difficult?

    I can only make educated guesses, since to know for sure would mean actually doing it and seeing how long it took, but based on speculation I'd say:

    1. Allow rotation: extremely difficult

    2. Arcs/curves: extremely difficult

    3. Paste layer: moderately difficult

    4. Allow resizing/fixed resolution: probably relatively straightforward

    5. Drawing with transparency: possibly quite easy if one of the existing blend mode suffices (i.e. similar to using destination-out on an own-texture layer)

    6. Flood fill: difficult and messy, since AFAIK it can't be done on the GPU, so would require a performance-killing GPU readback, software implementation of flood fill, then uploading the GPU buffer again. This is async and so will also conflict with any other attempts to draw while it processes. It's also inconsistent with all the other drawing commands which are GPU-accelerated.

    7: Load URL: it's not clear that this is necessary if you can already do it via a Sprite?

  • If i have to pick one, then it's

    3. Paste layer: moderately difficult

    I know that I'm a bit cutting into that conversaton, but i would like my opinion to be accounted as well. Because i'm interested.

  • Ashley Could you please add 3-Paste layer to your future plans? And 4 and 5, if they don't take much time will also be quite useful.

    As for "Load image from URL", yes, it can be done via sprite (although it requires a temporary sprite object and several extra lines of code). It's just the whole purpose of DrawingCanvas is image manipulation, so an option to load image seems like a logical thing to have.

  • The best thing to do is post a suggestion to the features platform which is as small and concise as possible, and see if it collects votes. The point is to focus on the features that lots of people want, rather than just one or two.

  • Ashley As you mentioned yourself, there are almost 600+ open suggestions, most of which don't have any status or comments. And the voting system is not working that well now, because it's too restrictive.

    It was fine two years ago when the platform was first launched. But since then many people have already spent their 10 votes, and even if they visit this platform now and stumble upon an interesting idea, they won't bother revising and revoking their votes. I did this once and it took me some time to figure out how to do it.

    That's why you see lots of old ideas with 50+ votes, and most recent ideas have 1-3 votes at most (unless you promote your idea heavily on this forum or on Discord or somewhere else)

  • People can adjust their votes at any time. And if we just go back to random passer-by comments on the forum for feature suggestions, I think that would be a step back.

  • Actually, I guess now there are so many more suggestions, increasing the max vote count makes sense. I've been thinking about bumping it up from 10 to 25, so maybe now's a good time to do that.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Well, I wasn't even aware that I had only 10 votes. I tried to vote many times on different ideas, and it didn't work and I just gave up. Until one day I clicked the link and read about how it works. I am sure there are many people like me. (because it's a known fact that developers don't read documentation)

    What I'm saying is that it's wrong to judge ideas by the number of votes. Old long-forgotten ideas will win, all recent ideas will lose.

    .

    May I suggest something new? What if you pick several popular/interesting ideas, say, every month, and create a poll here on this forum? And the winning ideas will make it into the next release?

  • The header on the suggestions platform links to the full guidelines on suggesting features which explains how it all works and our advice on how to approach posting and voting on suggestions. I just increased the vote count to 25 so you can vote on more suggestions.

    You're right it's probably biased to older ideas, but I don't think there's any perfect system. I think people should periodically re-cast their votes if they're not getting anywhere. As I've mentioned elsewhere, voting for small/quick/easy things is much more likely to get results than voting for huge overhauls that will take months of work - and then return your votes once they're shipped to cast on something else.

    As mentioned in the linked threads, we used to do periodic polls, and I don't think they worked very well, which is part of the reason we moved to this system.

  • I just increased the vote count to 25 so you can vote on more suggestions.

    Thanks! Is it possible to also show some message or notification when you are out of votes and trying to vote, explaining what to do and how to re-arrange votes?

  • It's a third-party voting system so out of our control - you could ask them (aha.io) about it.

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)