Forum > Webcomic & Art discussion > Ideal drawing program features
Pages: 1 2 3
"Ideal drawing program features", 17th Jan 2020, 5:38 PM #1
New Member
User avatar
Okay so this is probably overambitious and won't go anywhere, but since I've got a prototype of a gap-filling flood fill tool half working, I've been sort of considering trying to extend that code to make my own drawing program. Maybe not like, super big and elaborate, but this might be something I'll kind of fiddle with in my spare time, and try to get at least good enough that I could use it for some parts of my own artwork.

For myself, my main focus would be ensuring it could efficiently work with high-resolution aliased line art and cel shading, which I feel is a particular weakness of most graphics programs, particularly open source ones.

What kind of features would you be interested in, though? Any pain points of current art programs I could address if I took this project further? Feel free to suggest weird stuff—I've half considered trying to make an alternative editing paradigm to layers work :p

Even if this project goes nowhere, I'm sure people could vent about this anyway lol
_______________________
Current project: 2 Guys 1 Laptop (pretty much just NSFW, arguably)
Other accounts: Patreon | itch.io | Twitter | DeviantART | YouTube
17th Jan 2020, 5:44 PM #2
Environment Knight
User avatar
Something that makes a huge difference is having an Add Text function that works!! I mainly use Procreate to make comics and OH MY GOD the Text function is absolutely the worst, for whatever reason they decided to make it so you have to adjust the font size with a slider and you can't just type in the size you want?! It makes it impossible to get the same font size twice in a row, and I hate it so much that I literally just add font in a separate program. It's a big hassle!
17th Jan 2020, 8:01 PM #3
New Member
User avatar
As you may have surmised from how often they're a problem, coding good text tools is a bit of a pain, so I was thinking I'd try to get more basic drawing tools working before I'd tackle text in anything I'd make :p

However, the thing is, drawing the text isn't necessarily the problem—it's letting the user edit the text right there in their picture.

So I was thinking, as a stopgap measure, of just trying to make it easier to work with other programs for this.

Like, at bluntest, letting users place layers that link to other images, so that when they edit text and word balloons in another program, they can have everything automatically update in mine just by re-exporting.

Or, having a text tool that pulls text from a text file, and could understand some comic script formats. So, like, the tradeoff would be, you can't edit text in the program, but it could automatically import and synchronize your pages with your comic's script—e.g. if you edit your script, the text in your picture will change too.

Would things like this work for anyone?

Also, I'd plan on having all numerical entry thingies use the same widget, which would have a way to slide and a way to type numbers, so UX issues like not being able to precisely specify values would hopefully not happen :p
_______________________
Current project: 2 Guys 1 Laptop (pretty much just NSFW, arguably)
Other accounts: Patreon | itch.io | Twitter | DeviantART | YouTube
17th Jan 2020, 8:26 PM #4
User avatar
For me, a good drawing software is one, which supports tablet pen-pressure. I don't know jack-diddly-squat about programming, but if it's possible to make that work, then your software will definitely be great for usage. Also, a wacky idea I have is you can make the software support both pixel and vector forms. Again, I don't know if that's even remotely possible, but if there's like a brush tool and a Draw Vector Tool or something like that. Or like separate them into Pixel Brush and Vector Brush. Pixel Shape and Vector Shape. Pixel Pain and Vector Paint. That'll make your software more print-friendly. You can use it for art and you can also use it for interesting graphic design of your pages and covers. Like having a mix of Photoshop and Illustrator, but like a more simplified version of that.
_______________________
image
image
17th Jan 2020, 9:21 PM #5
New Member
User avatar
I'd likely try to make it work properly with my own drawing tablet, but the way I understand it, most tablet problems in art programs are the result of weird glitches that are kind of outside of the art program's control, so I don't think I'd be able to promise much more than trying to mitigate that as much as I can lol

Mixing vector/raster graphics in some way would definitely be a priority for me, though. After getting my flood fill code working better, my next task would likely be experimenting with various ways of drawing lines and/or vector shapes, and figuring out what's practical there.

If I went with my weird alternative to layers idea, the whole program would be a weird raster/vector hybrid—you'd be working with a list of instructions to apply to a raster image, with the ability to time travel through and alter your picture's edit history however you please, including moving around individual points of strokes. But I'm not sure how practical that would be :p
_______________________
Current project: 2 Guys 1 Laptop (pretty much just NSFW, arguably)
Other accounts: Patreon | itch.io | Twitter | DeviantART | YouTube
18th Jan 2020, 12:10 AM #6
User avatar
Some features that I end up missing when i use something other than clip studio:

- Fill tool that references the whole canvas and not just the active/reference layer
- Fill tool that lets you drag over all the spots you want filled (//glares at procreate...)
- Selection fill! Something that auto fills the spots you "select" as soon as they are selected


Bascially everything I love is stuff that makes coloring easier lol.


Best of luck to you!
_______________________
image
18th Jan 2020, 12:23 AM #7
User avatar
Clip Studio Paint has vector layers that are REALLY useful for line art. By using them, you'll NEVER get any white holes, since the magic wand will make the selection slightly bigger. So yeah.
_______________________
image
18th Jan 2020, 12:25 AM #8
User avatar
Something that will not crash ever.

Will automatically save your work when you close or when the program is idle for too long.

Allows you to set project goals, and when you achieve those goals it gives you currency in which you can use to buy resources from their product store.

Ability to memorize the drawing sequences to a particular character so you can automatically have that character drawing rather than having to draw them every single panel.

Flexible options for ownership, such as allowing ads to run or paying for it outright.

Steam sales.
18th Jan 2020, 1:25 AM #9
voted to be eaten first
User avatar
Pen stabilizers that don't lag. This is why I haven't switched to a program other than Paint.net, and that doesn't even have a stabilizer.
_______________________
image
18th Jan 2020, 5:07 AM #10
New Member
User avatar
To respond quickly to some of the ideas here:

Flood fill reference control: If GUI or layers get done, flood fill will get options like this. (Making gap filling work quickly may necessitate some weird options like "only fill transparent areas" as well.)
Flood fill by dragging: Already planned, will be implemented as soon as I get flood fill working fast enough for this to be useful at all. (Right now some fills take multiple minutes lol)
Selection fill: The point of this would be to fill little gaps in the colors if you drag over them, right? I'd like to code something like this at some point, but I'd have to think of how.
Vector layers: Experimenting with implementing something like this is next on the agenda after flood fills.
Never crashing: lol
Auto-saving: Will keep in mind for future.
Let users set their own standards by which to gain virtual currency for microtransactions: There are a variety of problems with this idea, but the largest seems to be how easy this would be to game :p
Ability to replay drawing sequences: Some fancy nondestructive editing features, like synchronizing copy+pasted drawings across panels, are a possibility if I get far enough to implement layers. The weird no-layers route I'm imagining for the program could enable weird tricks like this to the point of confusion.
Flexible ownership options: For a variety of reasons, I'm planning on free and open source, like Krita and GIMP, at the moment.
Steam sales: Arguably will always be on a Steam sale as a result of the above :p
Lag free stabilizers: If I get far enough to implement stabilizers, I'd likely implement a few different kinds, and try to include some that feel more responsive. The same code required to make vector layers work may be be able to to provide retroactive stabilization, which would feel super responsive while drawing. The program itself would be as lag free as I could make it.
_______________________
Current project: 2 Guys 1 Laptop (pretty much just NSFW, arguably)
Other accounts: Patreon | itch.io | Twitter | DeviantART | YouTube
23rd Jan 2020, 8:10 PM #11
User avatar
Ideally, I'd like a portable app that's tiny, fast and super efficient. Pinta is nice and small but it's not quite perfect yet. Maybe you can fork or contribute to something like that.

Are you hosting this on Github or something so others can contribute? What programming language are you using?
23rd Jan 2020, 11:36 PM #12
New Member
User avatar
Currently I'm working in C, with SDL2 as my main dependency. Still deciding other dependencies, but trying to avoid Qt and GTK in particular, other than maybe taking code/inspiration from their drawing tablet handling code—that will likely ensure a certain amount of lightweightness in and of itself. If anyone actually wants to talk about the minutia of program design and dependencies, I could pitch some ideas I have for that.

Right now, I'm working on this project alone, but I'll likely gradually open it up as it becomes more useful and presentable. Realistically, the most likely place this project will end up is as few graphics demos on itch.io with the source in a zip file. But hosting a repo somewhere could be a possibility down the road :p
_______________________
Current project: 2 Guys 1 Laptop (pretty much just NSFW, arguably)
Other accounts: Patreon | itch.io | Twitter | DeviantART | YouTube
24th Jan 2020, 3:03 AM #13
User avatar
I'm interested in minutia on this topic and hope to learn from you. Maybe blog about your process/progress in a webcomic here!
24th Jan 2020, 3:02 PM #14
User avatar
This' on the brink of insanity in and of itself: but having used this before,
I can't help but want it. Allow for after one finishes their art work; effects/animations
such as rain, snow, camera light,s lightning ect. be either a fill-tool pattern
and/or a gif to overlap or "put in the background" (unless your tool has layers
in which case the deciding-if-it-should-collide-with-something-or-not problem
wouldn't exist..) so one won't have to draw EVERY RAIN DROP and if they're doing
a comic *hint hint, nudge, nudge...* they can have effects without having to meticulously
draw EVERYTHING!

A small yet insane suggestion I would love to see!
_______________________
Me: I suck...

God: Who told thee that thou suck?


image

image
25th Jan 2020, 7:17 PM #15
User avatar
Alignment.

I don't know why most art programs lack this feature that is so important for composition.

If only CSP had it then it would be the perfect program and I wouldn't even look back at Photoshop ever again.
_______________________
image
25th Jan 2020, 8:18 PM #16
User avatar
25th Jan 2020, 8:19 PM #17
Digital Metalworker
User avatar
Krita has the Colourise Mask editing tool, which is essentially a fill tool that doesn't require the linework to be watertight. It's been a complete game-changer for my colouring process, to the point where I can't imagine how I'd have pulled off what I've already done for Spider Pizza without it.
_______________________
image imageimageimageimage
25th Jan 2020, 9:30 PM #18
I can explain
User avatar
TanteiSakana:As you may have surmised from how often they're a problem, coding good text tools is a bit of a pain, so I was thinking I'd try to get more basic drawing tools working before I'd tackle text in anything I'd make :p

However, the thing is, drawing the text isn't necessarily the problem—it's letting the user edit the text right there in their picture.

So I was thinking, as a stopgap measure, of just trying to make it easier to work with other programs for this.

Like, at bluntest, letting users place layers that link to other images, so that when they edit text and word balloons in another program, they can have everything automatically update in mine just by re-exporting.

Or, having a text tool that pulls text from a text file, and could understand some comic script formats. So, like, the tradeoff would be, you can't edit text in the program, but it could automatically import and synchronize your pages with your comic's script—e.g. if you edit your script, the text in your picture will change too.

Would things like this work for anyone?

Also, I'd plan on having all numerical entry thingies use the same widget, which would have a way to slide and a way to type numbers, so UX issues like not being able to precisely specify values would hopefully not happen :p


So I've been pondering this idea since you posted it. I actually thought it was an awful idea at first, just an ugly hack to avoid having to make a decent text editor, but it grew on me when I started thinking about it differently, and turned that special-case of text in an external file into the core concept of the editor.

I ended up thinking about something a bit more radical than you seem to be going for - an image composition tool, rather than yet another image editor. Because there's kind of plenty of image editors already, most of them are pretty good, and whatever problems there are with them are usually best resolved by fixing them rather than starting over. (Possible exception being GIMP, they built it a long time ago and a lot of the early decisions that made sense at the time have become problems later on). You could still have a built-in bitmap and vector editors for the sake of convenience, but I see those as being secondary to the core composition tool.

This is something that is pretty common in the audio and video realms, but doesn't seem common in the image world. I think the Adobe suite does it to some extent, but not as a core focus, and I've not seen anything open-source that does it at all. (Granted, I'm not exactly an artsy artist, I've not extensively used every editor out there. There's a decent chance I've just spent an hour reinventing something that's already common.)

This is how I'm thinking about it. Your main object is a "layer", each layer being a separate file created elsewhere. You can have raster layers (.PNG, .BMP, etc), vector layers (.SVG), text layers (.TXT, maybe .MD), and (most powerfully) you can have a composition be a layer in another, allowing for recursion. In the future you could even go crazy, have video layers (for animated comics) and 3D layers (.blend files for people mixing 3D backgrounds and 2D foreground art), or even "procedurally generated" layers that just call a script or plugin executable to generate a bunch of pixels, and uses whatever comes out of it. But start with the simplest ones - raster, vector, text, and composite. The document itself simply describes the output format (eg. "1200x1800 RGB, PNG compression"), and what layers to assemble and how, when the user pushes the "render" button.

Each layer has a series of transforms that are applied to it. Not just scaling and positioning, but rotation, skew, clip, color changes, blurs, sharpens, borders, whatever postprocess effects you think are useful. For text layers, "transforms" would include font choice and where to position each line. Maybe even a "speech bubble" transform, with fine controls for shape, where to point the arrow (if any), and so on.

Keeping the different elements separate would open up some possibilities. It would make translated versions of the comic easy - just switch from one text file to another, and push the render button to build a new version. You could drastically change page layouts without needing to redraw anything, because each panel was already a high-def image that was being clipped and transformed by the compositor. You could more naturally reuse backgrounds - just tell the compositor to use the same image. Changing speech bubble layouts would similarly be easy - just tweak the transforms on the text layer, and your only problem is hoping that your art doesn't get in the way.

And, of course, it lets the user use whatever programs they prefer to make each layer with - because if I know one thing about artists, it's that they get really attached to their tools and hate changing them.

This is... probably not what you're trying to build. I think this idea sort of ran off on me. But it was interesting to think about. Hopefully you found it at least interesting to read, even if you don't follow any of it.
_______________________
Watch this space
Watch every space
25th Jan 2020, 11:17 PM #19
User avatar
PDF, ODF, SVG and HTML can accommodate a lot of those ideas, if I understood correctly. Open-source compositor examples might be Inkscape, Scribus, Synfig, Pencil2D, Natron, and Blender.

SVG is cool because you can embed HTML and JavaScript inside it, and of course hotlink a variety of external raster images as well as describe vectors in different layers.
25th Jan 2020, 11:21 PM #20
New Member
User avatar
Quick feature responses:

Automated weather/lighting effects - Could be possibility for future, but would be very low priority right now. Existing graphics programs, like GIMP, may actually be better for things like this.
Alignment - Will keep in mind for future. If you could describe your use case and specifics of how you would like this to work, that would help.
Krita/GIMP's line art coloring tools (grouping these together since they are based on roughly the same algorithm) - Not planned, since developing my own alternative to those is actually pretty much my number one priority here lol. I'm hoping my gap filling flood fill is good enough to replace these tools for most use cases. However, there are some fancy things their algorithm does, like automatically flatting heavily anti-aliased and sketchy artwork, that I'm not planning to support.

Robotwin.com:I'm interested in minutia on this topic and hope to learn from you. Maybe blog about your process/progress in a webcomic here!

With technical stuff… well, these are my recent advancements. I don't think I want to draw a comic about this though lol

Also, a writeup on my wild "no layers" idea that I'm probably not actually going to do :p


GMan003:So I've been pondering this idea since you posted it. I actually thought it was an awful idea at first, just an ugly hack to avoid having to make a decent text editor, but it grew on me when I started thinking about it differently, and turned that special-case of text in an external file into the core concept of the editor.

Yeah, I was sort of inspired by the fact that, whenever I work with comics, I mainly just use the text tool to paste in lines from my scripts like a robot. The only thing I use the in-program editor for is to fix typos, tweak word wrapping, and bold words. The ability to sync text on pages with a script with text formatting information could automate most of my current workflow :p

As for your idea of an "image composition" tool… I actually have something fairly similar in mind. Since one of my main use cases for this project would be to have an in-house inking/flatting tool to use in tandem with other programs, interoperability is likely going to be a focus.

Basically, though, I'm thinking, if I implement layers, I'd like to implement them similarly to Godot's scene graph. Different types of layers would have complete freedom to draw to the canvas what they please, treat layers inside them as they please, and define their own tools to manipulate their contents. One of these types of layers could link to external content, and potentially allow users to split pictures apart into multiple files the same way Godot's scene system does.

I still need to think through the details of how this would work, though. (Each type of layer defining its own toolset could lead to weird inconsistencies without careful consideration, like identical appearing tools doing completely different things on different types of layers. And I'm not really sure if it would be desirable to express all masking operations like this…)
_______________________
Current project: 2 Guys 1 Laptop (pretty much just NSFW, arguably)
Other accounts: Patreon | itch.io | Twitter | DeviantART | YouTube
Forum > Webcomic & Art discussion > Ideal drawing program features
Pages: 1 2 3