Adventure Game Studio

Community => General Discussion => Topic started by: SpacePaw on Mon 02/03/2009 16:58:47

Title: PixelArt editor - Another question :)
Post by: SpacePaw on Mon 02/03/2009 16:58:47
Ok,
I wasnt quite sure where to put this thread but I finally decided it's technical after all :)

I'm a computer science student and I had to decide on my final project I have to make to graduate (something like engineering doctorate). I chose to develop a program used to create/edit pixel art (something like GraphicsGale for example). The thing is - I want to make it free and as useful for all of us here.

That's the point where I could use some help :) I already have some ideas about useful tools to put in there but I bet that with YOUR help I can get a neat list of requirements and suggestions that could lead to professional (It's a graduate project after all - so It'll be the same as commercial one) and FREE tool for us all :)

It won't be complete in a less than a year, but it's a serious project after all. Guys I need your help! :) Tell me everything that you ever thought could be usefull for creating low res sprites and backgrounds (or thinhgs that irritate you in the programs you use so I can avoid them)!
Title: Re: PixelArt editor
Post by: SSH on Mon 02/03/2009 17:07:18
Make it like my walkcycle generator, but better ;)

my favourties:

Onion skinning for animation

Layers

Direct export of animated GIFs

Title: Re: PixelArt editor
Post by: ALPHATT on Mon 02/03/2009 17:26:57
grid

possibility to create  animated .gifs

pallette import/export

magic wand

plus everything mentioned above
Title: Re: PixelArt editor
Post by: Mr Flibble on Mon 02/03/2009 17:28:02
Gradient with spatter like in Deluxe Paint (or indexed gradients), optional grids, and free-zoom.  In that order.
Title: Re: PixelArt editor
Post by: Khris on Mon 02/03/2009 17:56:39
Just clone ProMotion ;)
Title: Re: PixelArt editor
Post by: on Mon 02/03/2009 19:33:41
* basic shape tools (rectangle, circle, polygon (outline and filles), line and "multi-line" (click
   to add points to the line
* onion skinning
* gradient fill
* edit/load/save palettes
* zoom +/-
* custom "brush tips" (a la PhotoShop)
* a loser version of the Office Paperclip Assistant that is constantly harassed by BlueCup

Title: Re: PixelArt editor
Post by: rharpe on Mon 02/03/2009 19:37:44
- Make it generate 'tweens' or in-betweens (similar to Macromedia Flash)
- Allow one color to be changed all at once (Example: all the black pixels in the image can be changed by modifying that black color on the palette.)
- Auto Cel Shading. (Get rid of those harsh black outlines!)
- When zooming or scaling, DO NOT anti-alias the image! (FireFox 3 and many other programs are doing this... it sucks!)
Title: Re: PixelArt editor
Post by: ALPHATT on Mon 02/03/2009 20:44:11
Quote from: rharpe on Mon 02/03/2009 19:37:44FireFox 3 and many other programs are doing this... it sucks!

Yes it sucks!
Title: Re: PixelArt editor
Post by: IndieBoy on Mon 02/03/2009 20:55:51
Title: Re: PixelArt editor
Post by: SpacePaw on Mon 02/03/2009 21:51:44
Great :3 Keep it coming
Some of the functions mentioned probably won't be included in the first version (like auto-inbetween) but I'll try my best at basic stuff like grids/palletes/brushes etc. :)

It's a good requirement for later though :)
I write all of them down anyway so I can keep them in mind :)

Remember to drop a post anytime you remember something cool or very important! :3
Title: Re: PixelArt editor
Post by: on Mon 02/03/2009 22:14:03
Out of interest, how are you making that program? Which programming language/wrapper library/programming approach? It would be interesting to see a sort of developer's diary.
(Well, it would be for me, and I bet I'm not alone here  :) )
Title: Re: PixelArt editor
Post by: SpacePaw on Mon 02/03/2009 22:26:12
Quote from: Ghost on Mon 02/03/2009 22:14:03
Out of interest, how are you making that program? Which programming language/wrapper library/programming approach? It would be interesting to see a sort of developer's diary.
(Well, it would be for me, and I bet I'm not alone here  :) )

Well, it's just an idea right now, nothing really started yet :)
I'm feeling good in C# (Microsoft Visual Studio IDE) but I'm not sure if it's a right choice concerning the multiplatform problem (Java probably would be better...what do you think?).
As for the libraries I have no idea yet to be honest. I was searching for some books concerning programing 2d graphics but I didnt find much. I'm not sure if GDI+ will be enough for that :)
If you know any free good libraries that could help me I would be glad to hear about them :)

Umm..About the developer's diary. Maybe LiveJournal account or another bloggy thingy?
Title: Re: PixelArt editor
Post by: on Mon 02/03/2009 22:31:51
I'd rate any C version dialect over Java, but that's just me. Visual Studio's very good in my opinion- but I am by no means a pro!

Libraries... SDL comes to mind- it's free and seems to give good access to graphic routines, but as an oldfashioned Allegro user, I have no hands-on experience with it  :P

And for that diary, just use blogger- simple, painless, easy.  ;)
Title: Re: PixelArt editor
Post by: ThreeOhFour on Tue 03/03/2009 00:50:06
Two really big things for me:

A well designed colour palette so that picking colours is not a difficult process. Mixing colours in MSPaint is hard for me! Doing in GraphicsGale is simple and easy! Keep in mind that some (a rare few, of course) people like to mix colours with RGB rather than just HSL, so make sure to use both, and try and have sliders for each value instead of just number boxes you can edit.

The other thing is smart use of hotkeys and shortcuts. Picking a colour from the image by having to go and manually select the eyedropper tool, click the colour, then manually select the brush tool again is going to make me get frustrated quickly, particularly when I can go into GIMP/Photoshop and do the same thing by holding a key down or into GraphicsGale and right click (both work well). Also, with my tablet and my keyboard I have assigned macros so that undo and redo are single button things, right next to each other. Because I use these a lot, it makes things much quicker. Not sure if that's sensible or possible, but it certainly helps me.

Good luck!
Title: Re: PixelArt editor
Post by: SpacePaw on Tue 03/03/2009 02:46:18
Quote from: Ghost on Mon 02/03/2009 22:31:51
And for that diary, just use blogger- simple, painless, easy.  ;)

So here you go! A blogger diary!
http://spacepaw.blogspot.com/ (http://spacepaw.blogspot.com/)
Any news concerning my projects will go there now (I'll notice you all on the forum too :) )

Quote from: Ben304 on Tue 03/03/2009 00:50:06
Not sure if that's sensible or possible, but it certainly helps me.

Not only possible. It's a necessity. Without that I won't even want to release the beta :P
Title: Re: PixelArt editor
Post by: InCreator on Tue 03/03/2009 07:19:29
QuoteThe thing is - I want to make it free and as useful for all of us here.

...useful...
I can help in that department!!!

* Isometric grid + optional 1-pixel grid
* Quick isometric wall
* Quick isometric box, maybe some other shapes too, like pyramids and cones. Good circle algorithm.
* Isometric snap for line tool. I mean, holding down something would make your lines isometric, like holding shift in mspaint would make them straight.

This could work by combining straight and 2-1 isometric theme to lines, according to direction you drag. Like - in mspaint, if you hold shift and move mouse vertically or horizontally, you get straight line. In-between, perfectly diagonal. Iso-snap could include 8 extra directions, adding those 2 for each direction (shown ones are for upper-left)
(http://www.increator.pri.ee/i/pull/isolines.png)

This simple addition alone will make a HUGE impact bringing all MSPaint-using isometric artists from MSPaint to your program.

* Isometric cropper (If you can get your hands on a SimCity2000 (try abandonware sites), check out the editor. Year 2009 still doesn't have any alternates to such powerful isometric drawing tools). By cropper I mean that you define isometric rectangle bounds as drawing are and cannot cross them. SC2000 editor has it - you pick the base (ground) size and can draw only in its boundaries.

Why so much isometric suggestions? Simply because modern world lacks any good isometric drawing programs (http://www.adventuregamestudio.co.uk/yabb/index.php?topic=36065.0). And considerably heavy portion of pixel art is isometric today.

For extra ideas,
* as simple and good-working select-copy-paste system as MSPaint has. Otherwise, you won't win over paint. Because for simple pixel-making, its system is definitely best.
EDIT:

* Ability to change between real pixel and image pixel selection box frame. I mean, in MSPaint, if you draw selection box, even if your image is zoomed 10x (how to do that is a neat trick), you still have 1-pixel frame depending on your desktop resolution. In many other programs - selection box frame is as big as pixel on your image - this might be hell when you want to select really small area and zoomed everything to do this - selection box rectangle actually covers that area so you cannot see what you select very well. Both ways have their benefits and problems. So ability to select proper one might be best.

* For pixelart program in the era of super-high desktop resolutions, flexible and powerful zooming is extremely important. Zoom-to-fit-window/screen etc stuff is highly recommended.

* Replace color tool. You eyedrop a color, pick another and click. It should be that simple. Even cooler if we could apply this to selection only and it would self-detect if something IS selected so there's no need to select all to use it.

* Brighten/darken processors for a tool. NOT that horror that is in Adobe Photoshop!! I cannot stress importance of such simple thing enough.

* Manual Anti-alias tool? Something that by clicking detects nearest pixel colors and interpolates clicked pixel using those? Not sure how it would really work.

* Pan/center image part under cursor, preferably via simple keyboard key. Especially useful when zoomed up on a larger image.

* Hotkeys based on keyboard/mouse/tablet/etc input. I mean, if I want to assign a hotkey to pen tool, and have 5-button mouse, pressing any of them while assigning the key should be so paint program actually understands the input. So if someone has 40 button mouse or some other technological wonder, he could still use all of those. Mouse wheel support is elementary too.

I think I'll edit this post forever.
Instead of reading/relying on this forum thread, start a feature list early and mark down what you like and what will be likely to actually happen in program.
Title: Re: PixelArt editor
Post by: Scavenger on Tue 03/03/2009 09:18:38
Hmmm, not much will wrest me from MSPaint and ProMotion, but if there was to be a challenger to bring pixel art into the new millenium...

- Proper support for 8bit palettes. [not just blocking out anti-aliasing and effects once you go 8bit. If it's for backgrounds too, I'd like to be able to paint in it :P]

- Graphics tablet pressure sensitivity. I mean, I'd paint backgrounds in ProMotion, but it's too lame to have support for something I use quite often. It feels unnatural.

- Simple onion skinning. Pro Motion's method is so aggravatingly arcane.

- Tile view option (to make sure everything lines up - rendering tiles in a 9x9 grid of the same tile while you work on them)

- Layers.

And my favourite:

- Support for removing and adding in shortcuts to customise our interface to what we need it for (I might not need the Isometric functions so much, but will need the Tile View. Others might need the Iso functions to be right there.)
Title: Re: PixelArt editor
Post by: Misj' on Tue 03/03/2009 11:47:43
Quote from: Ben304 on Tue 03/03/2009 00:50:06A well designed colour palette so that picking colours is not a difficult process. Mixing colours in MSPaint is hard for me! Doing in GraphicsGale is simple and easy! Keep in mind that some (a rare few, of course) people like to mix colours with RGB rather than just HSL, so make sure to use both, and try and have sliders for each value instead of just number boxes you can edit.

As I mention about every other day I'm not a pixel artist ;), but based on Ben's remark I was wondering whether the following would be valuable additions:

1. Implementation of the colour theory in the palette (some of the basics are explained here (http://www.colormatters.com/colortheory.html)).
2. A library of pre-set colours that can be expanded by the user.
3. Highlight and shadow colours for the current selection (at least one shade away, possibly two).
4. Import palette based on a (reference) image (or a colour picker from a reference image).

5. Not on colours: a background that can be turned on or off that can contain reference (concept) art (either scaled or at the original size).

ad 1. This would allow people to more easily select matching colours (as long as it's not forced upon them of course).
ad 2. This could be everything from skin-colours to the colour of tomatoes. Homogeneity of colours throughout the project can of course be achieved by picking colours from existing images, but to me it would make more sense to implement a library (where one can give a name, a small description, the colour itself, etc) to use. Preferably each of the colours in this library can be shared separately with collaborators.
ad 3. Not everyone uses the same approach in deciding the highlights and shadows (http://www.adventuregamestudio.co.uk/yabb/index.php?topic=36336.msg477598#msg477598), so implementing a single automated approach might not be preferable...of course of you implement multiple approaches and have people decide for themselves which to use...also, if within the library people can include shadow and highlight colours either automatically or manually this should not be a limitation.
ad 4. To do this in a way that is trully valuable to the user might not be that simple actually...

ad 5. By 'either scaled or at the original size' I mean that pixel art is normally designed at a magnification (as far as I understand), so that means that a single pixel-art pixel can contain multiple pixels in your reference image. By not pre-scaling the reference (to the dimensions of the pixel-art), the artist can decide himself how to interpret these pixels correctly into a single pixel. On the other hand scaling the reference might be valuable in certain cases.

Just some ideas...as mentioned, I think pixel-artists will have to decide which of these ideas they would consider valuable.
Title: Re: PixelArt editor
Post by: ThreeOhFour on Tue 03/03/2009 12:25:08
Interesting suggestions there, Misj'.

I know you appreciate that every artist has a personal choice when it comes to picking highlight and shadow colours, meaning either you stick to a very basic technique for selecting a highlight colour or you spend ages on the feature. I doubt that I'd use the feature, but I can imagine someone who is starting out would find it very useful. It'd be great if one could write their own function for calculating highlight and shadow tones for our selected tone, but that's started to make things very complicated.

The other issue here is that in the past when I have tried to make palettes based on just the numbers, it has never looked very good. The gaps in hue, sat and lum from say a red to an orange never seem to work quite the same on say a blue to a green. But that could be just me.

Interesting ideas, anyway.

Quote from: InCreatorGood circle algorithm.

This one is important to me as well.
Title: Re: PixelArt editor
Post by: InCreator on Tue 03/03/2009 12:40:42
Actually, I think I can make my own isometric painter - inspiration ahoy!
I think Game Maker is probably enough for such project.
Then again, it's quite a CPU hog...
Title: Re: PixelArt editor
Post by: SpacePaw on Tue 03/03/2009 14:00:52
I'll probably make a special toolbox with isometric tools :) no worries. it's one of easier things :)
Title: Re: PixelArt editor
Post by: DoorKnobHandle on Tue 03/03/2009 14:50:51
Maybe this (http://www.wayofthepixel.net/pixelation/index.php?topic=7405.0) thread could help you.

Somebody suggested SDL/Allegro but I have to say that I'd be all for a real windows application (multi-platform or not). Personally, I'd use Windows Forms and the .Net framework that comes with the free MS Visual C++ 9.0 (sometimes called 2008 express edition). I have used it and it works great.
Title: Re: PixelArt editor
Post by: SpacePaw on Tue 03/03/2009 15:40:30
Quote from: dkh on Tue 03/03/2009 14:50:51
Maybe this (http://www.wayofthepixel.net/pixelation/index.php?topic=7405.0) thread could help you.

Somebody suggested SDL/Allegro but I have to say that I'd be all for a real windows application (multi-platform or not). Personally, I'd use Windows Forms and the .Net framework that comes with the free MS Visual C++ 9.0 (sometimes called 2008 express edition). I have used it and it works great.

That's the thing I use everyday :) That's why I'll probably stick to it. The thing is I dont know how many of you guys work on linux/mac/other
(as everything made in .NET technology needs to have .NET framework installed on your PC. I know there's Mono for linux but I'm not sure how good it is)
Title: Re: PixelArt editor
Post by: SpacePaw on Tue 03/03/2009 16:21:20
By the way. I just had an interesting idea. Can you tell me what do you think of it?

It's about the number of colors you operate with. Usualy you have 2 colors (left/right mouse button). What if you could make a queue of colors and switch them with the secondary color using for example the middle mouse button? I think it would make the shading much easier :)

EDIT: Probably everyone would just use the drop eye tool to take colors from elsewhere anyway..
Title: Re: PixelArt editor
Post by: Haddas on Tue 03/03/2009 16:48:07
1. Assignable shortcuts.
2. I like the idea about the colors. how about this. hold right mouse button and scroll to swap colors. enable/disable that feature by clicking middle mouse button, and if disabled, returns to the 2 color mode. The buttons should also be assignable though.

Middle button could also open up the color picker, if you choose that.


The ability to customize the controls and shortcuts is important for any tool
Title: Re: PixelArt editor
Post by: Ubel on Tue 03/03/2009 20:49:46
I agree with Haddas. Far too many programs are lacking in shortcut support because the developers don't think it's really that important. You should be able to assign a shortcut key for every single action and customize them the way you feel comfortable.
Title: Re: PixelArt editor
Post by: Shane 'ProgZmax' Stevens on Tue 03/03/2009 21:46:41
Many of the suggestions here already exist in the delicious Pro Motion, whether or not you are aware of them.


Quote
Proper support for 8bit palettes. [not just blocking out anti-aliasing and effects once you go 8bit. If it's for backgrounds too, I'd like to be able to paint in it ]

What do you mean?  Pro Motion fully supports 8-bit palettes.

Quote
- Simple onion skinning. Pro Motion's method is so aggravatingly arcane.
It's as simple as clicking on the layers icon...Or are you not using the latest version?  Even in version 5 it was easy to use, though.

Quote
- Tile view option (to make sure everything lines up - rendering tiles in a 9x9 grid of the same tile while you work on them)
I'm fairly certain the new Pro Motion does this.  Extensive improvements were made to the tile drawing interface for version 6.

Quote
- Layers.
Pro Motion 6 has these.

And my favourite:

Quote
- Support for removing and adding in shortcuts to customise our interface to what we need it for (I might not need the Isometric functions so much, but will need the Tile View. Others might need the Iso functions to be right there.)

Pro Motion has always supported the adding of shortcuts for every function.


I've used the program steadily since its' debut so there's probably no one more savvy with its workings except Jan Zimmerman himself.


As far as art programs go, I don't see much point in re-inventing the wheel.  With Pro Motion around, and to a lesser extent Graphics Gale since it is free (or DPaint IV if you can get and use it), there's really no need for yet another pixel art program.  Something like InCreator's idea for an isometric-specific art utility would be fresh and very useful for a lot of people, so trying something new is something to consider.


Title: Re: PixelArt editor
Post by: Trent R on Tue 03/03/2009 22:13:15
Quote from: SpacePaw on Mon 02/03/2009 22:26:12
As for the libraries I have no idea yet to be honest. I was searching for some books concerning programing 2d graphics but I didnt find much. I'm not sure if GDI+ will be enough for that :)
Maybe I'm an idiot and I'm hearing you wrong, but XNA has a graphics content pipeline....

A suggestion about shortcuts: Adobe Premiere had fully customizable shortcuts, for every function. But they also had shortcut templates (or called something like that) so if would automatically set up shortcuts to copy Premiere CS3, Final Cut, and other video editing programs. And of course, you could export your own preferences.

Although many graphics programs have fairly identical shortcuts, this wouldn't hurt to add in later in your development. And, this forum is the perfect source to ask "Hey, what are the shortcuts for Graphics Gale?" or such.


~Trent
Title: Re: PixelArt editor
Post by: LGM on Tue 03/03/2009 23:17:09
Progz, from what I can see, the idea is to create a program as good as Pro Motion but for free.

My personal advice? See if there is an open-source pixel program or similar out there written in code you are comfortable in, and then shape it into your own, adding the features suggested here and improving others existing.
Title: Re: PixelArt editor
Post by: Ubel on Tue 03/03/2009 23:27:34
Quote from: LGM on Tue 03/03/2009 23:17:09
My personal advice? See if there is an open-source pixel program or similar out there written in code you are comfortable in, and then shape it into your own, adding the features suggested here and improving others existing.

I doubt this would work since plagiarizing is very much frowned upon in academia. In fact, it can get you suspended, at least around here.
Title: Re: PixelArt editor
Post by: SpacePaw on Wed 04/03/2009 02:38:40
Quote from: Pablo on Tue 03/03/2009 23:27:34
I doubt this would work since plagiarizing is very much frowned upon in academia. In fact, it can get you suspended, at least around here.

Yeah that's true. Besides, most of the better free graphic programs have no source code released for public use anyway.

Progz - I thought that GraphicsGale was shareware? Besides, I dont want to make just another copy of it. I want to make free tool as good as it and full of new interesting tools, options and ideas :) Isometric toolbox is one of the things I'm sure I will include. How about the ability to make your own 1-3 tone brushes? Painting stripes in 2 different shades, or colorful dot patterns etc would be easier then. That's a sure thing to be there too. And auto outline brush? where the shape you draw has a 1 pixel (or more if user wishes to) outline of specified color? There are things that arent too hard to program but can be really useful. I'm looking for ideas like that for you :) to speed up the process of creation
Title: Re: PixelArt editor
Post by: Makeout Patrol on Wed 04/03/2009 03:55:02
I'll chime in and say that the chances that I would use this program would decline severely if there isn't a Mac version. If you had a Mac version I have no doubt that it would become a hell of a lot more popular since the only decent free pixel-art program available for OS X is Pixen, which appears not to be in development anymore and is alarmingly buggy.
Title: Re: PixelArt editor
Post by: LUniqueDan on Wed 04/03/2009 05:49:31
One word : Edges.

The possibility to set quickly (and save it) a zone where nothing (brushes, pasted items, lavers)  can move in on a given canevas size. 

Good idea of project, btw. 
Title: Re: PixelArt editor
Post by: Layabout on Wed 04/03/2009 06:22:53
Makeout Patrol, why don't you just do what every other mac user does when they need to run a decent program and run windows on your Mac. It's one of the major selling points of the Macs nowadays.

Anyway, enough mac badmouthing.

I like the sound of this project. I have tried out pro motion, but none of the features have really made me think to myself, ooh! I need to fork out my cash to buy that. A pixel targeted graphics program is a good idea, after all, I did my first bit of pixelart in dPaint.
Title: Re: PixelArt editor
Post by: on Wed 04/03/2009 06:43:37
Quote from: SpacePaw on Wed 04/03/2009 02:38:40
How about the ability to make your own 1-3 tone brushes? Painting stripes in 2 different shades, or colorful dot patterns etc would be easier then. That's a sure thing to be there too. And auto outline brush? where the shape you draw has a 1 pixel (or more if user wishes to) outline of specified color?

I am falling in love with that project. Sounds all really good- luck on yer!
Title: Re: PixelArt editor
Post by: cat on Wed 04/03/2009 09:07:35
Tools for manual dithering, maybe something like predefined masks where you just paint over.
Title: Re: PixelArt editor
Post by: InCreator on Wed 04/03/2009 11:42:41
Quote from: cat on Wed 04/03/2009 09:07:35
Tools for manual dithering, maybe something like predefined masks where you just paint over.

I second this. Or rather - ability to make that dithered gradient DeluxePaint and old LucasArts games have.

Title: Re: PixelArt editor
Post by: SpacePaw on Wed 04/03/2009 12:45:51
Quote from: cat on Wed 04/03/2009 09:07:35
Tools for manual dithering, maybe something like predefined masks where you just paint over.

Maybe something like greyscale mask where ligter/darker areas define amount of dithering?
Title: Re: PixelArt editor
Post by: DutchMarco on Wed 04/03/2009 15:35:52
If I may add my 2 cents: I must say that C# Looks good on paper, but in my experience, the real thing (at least talking about the visual studio express version) the paper seems to promise more than the real thing can deliver (talking about the .NET-bit). Also, I created a tiny program (a Gregoriancalendar-tool)  and in spte of it being so small, it does take very long to start up. I guess next time I'll try it in C++.
Title: Re: PixelArt editor
Post by: RickJ on Wed 04/03/2009 21:41:52
Spacepaw, cudows for taking on such a challenge.  Is it your goal to make a paint program designed for the creation of game resources?   Since you are posting here I'll assume this is your idea and if it isn't may I suggest that perhaps such a goal would differentiate your project from all the other paint programs  and that it would be worth considering.       

Development Platform
If your project is going to be open source and you wish it to work on multiple platforms then I would suggest that you consider Qt (http://www.qtsoftware.com/products/developer-tools).  Windows, Linux, and Mac OSX are supported.  Their development tools are also multi-platform and the resulting applications are fast, self-contained and not dependent on bloated runtime package.  It was recently acquired by Nokia who appear to have big plans and a commitgment to open source with regard to QT.

Animation Frames
Please make a convenient, automatic method of exporting animation frames to individual png files.  I really like how graphics gale does this and have found this to be the most accurate, reliable, and efficient means of importing sprites into AGS. 

Grids
Make your grid system automatically adjust to the zoom level.  Visio does this and now I can't live without it.   Having an iso-metric and other grid options would also be pretty  cool.

Guides
The paint programs I am familiar with have very limited or no support for creating guidelines.   Consequently I will use Visio ot sketch out a background, export the drawing to a PNG and then use Photoshop or whatever to paint in the details. 

I would like to suggest several different types of guides that would be useful. The first type is the normal horizontal and vertical guidelines that many programs allow you to drag on to the screen from screen rulers.   They are not part of the drawing and have behavior similar to the grid.  It possible to snap to a guide line the same as  snapping to a grid line.   It should be possible to reposition a guideline just by dragging it,

The second type of guide lines would be used for perspective.  It would be cool if you could create one or more points of perspective and drag lines from those points to the edge of the screen or to some location in the drawing.   These lines would be connected to the perspective points so if the such a point were moved (by dragging it) to another screen location  then all of  it's line would remain connected in the new location.   I suppose it would also be useful to create a non-connected perspective lines so that a photo or other image could be imported as a model and perspective lines drawn between or along references in the image. 

Both kinds of guidelines behave similar to the grid and can be setuo for snap-tooperation.  It would probably be a good idea to differentiate them from the grid  and each other by using different (configurable) colors. 

Vector Graphics
The third kind of guide I use is a vetor graphic sketch.  As I said before I use Visio to create a vector sketch of a background, export it to a png file, and then import it into a layer in Photoshop or other paint program.  From there I can place individual objects on specific layers by duping the vector layer and erasing the unwanted objects.   Detail can then be painted into the new layer using pixel art  techniques.   The process is repeated until the image detail is complete.

It would be cool if simple vector graphic elements (shapes) could be created and then later converted to pixels, perhaps via a context menu.  Another intriguing alternative  would be to maintain the individual vector objects as drawing surfaces.  So then you would sketch the background using vector elements (simple geometric shapes or collections/groups there of ).   Details would then be painted onto the object using pixel painting tools.    The objects could then be moved around, scaled/skewed to fit perspective, etc.   Each object could even have it's own set of layers.  It would be pretty  cool  ;D

Shared/Community Resources
A while back one of our members, Mari, came up with an interesting way of quickly creating backgrounds.  It was discussed in this thread.

http://www.adventuregamestudio.co.uk/yabb/index.php?topic=33765.0 (http://www.adventuregamestudio.co.uk/yabb/index.php?topic=33765.0)

Basically there  would be one or more models for a background.  The model would dictate such things as scale,perspective, etc.   There would be a library of layers that could be selectively applied to the model to create a background image.

This is similar to the way Charas works to create character sprites for RPG games.   You can checkout Charas at their website here:

http://charas-project.net/charas2/index.php (http://charas-project.net/charas2/index.php)

Anyway I was thinking that it would be pretty cool if your editor was web/ftp enabled and was able to assign a file to a layer so that,  in addition to pixels and/or vectors,  a drawing could also consist of links to external files.   For example and object or layer would contain a file name instead pixels and vectors.   

If this sounds interesting we could certainly discuss  it in more detail.  Obviously the above explanation is not detailed enough to implement code.

==============

I have some other  ideas and can expand upon some of the above if you are interested.  I hope my comments are in some way helpful or inspirational.
Title: Re: PixelArt editor
Post by: Charity on Thu 05/03/2009 03:18:28
All of the following are fewatures I use frequently or wish I could use:

Multiple layers of Undo/Redo.  The more the better.

A quick way to convert tiles of a specified size into layers and layers into tiles.  This way you can stack frames in an animation or display them side by side.  Possibly, this should generate a new image.

Autosave backups.  I use the Gimp, and it crashes on me constantly, but even if you manage to construct a stable program, it is nice to know that if you do crash, you will never lose more than a couple minutes of work.

Simple lighting/tinting options with HSV and Brightness/Contrast.

Selection tools should constrict the area affected by tools and other functions.  Color picker should probably be immune.

Add/subtract/invert selection.

Transparency and alpha channel support.

At the very least, bmp, png, and gif support, and at least one lossless format capable of storing multiple layers with alpha channel.

Ability to adjust opacity of layers.
Title: Re: PixelArt editor
Post by: Wonkyth on Thu 05/03/2009 07:21:59
Customisable Hotkeys as mentioned before, sound really good to me. using programs like Blender and the gimp I have constant problems with Hotkeys. while blender has everything Hotkeyed, they aren't really convenient.
Title: Re: PixelArt editor - Another question :)
Post by: SpacePaw on Thu 05/03/2009 19:25:58
Quote from: RickJ on Wed 04/03/2009 21:41:52
If your project is going to be open source and you wish it to work on multiple platforms then I would suggest that you consider Qt (http://www.qtsoftware.com/products/developer-tools).  Windows, Linux, and Mac OSX are supported.  Their development tools are also multi-platform and the resulting applications are fast, self-contained and not dependent on bloated runtime package.  It was recently acquired by Nokia who appear to have big plans and a commitgment to open source with regard to QT.

Ahh... Now you really got me curious :)
I have 3 possibilities then...

1. .NET C# - Slower (framework dependant) and not much cross platform - but I know it really good
2. Java - still framework dependant but fully cross platform - I'm not as good at it as at C# though...
3. C++ in QT IDE+Compiler - cross platform and self dependant but I have no idea how to use it yet :)

I wish my university werent pro-Microsoft only, I would know other languages and libriaries much better now :/

AAAAND - Another question :)
I like the suggestion about it beeing designed especially for low-res game developers, what ideas do you all have concerning this? What functions (not talking about graphics now) would help you with developing the game then :) ? I'm sure that some presets about the canvas size would be nice but besides that I cant think of anything that could help us sprite-makers :)

EDIT: Oh and of course - THANK YOU ALL - You don't even know how you help me :) Thanks to you I'll write user stories and gather requirements in no time
Title: Re: PixelArt editor - Another question :)
Post by: SSH on Thu 05/03/2009 22:38:52
Do it in python or ironpython or somethign!
Title: Re: PixelArt editor - Another question :)
Post by: SpacePaw on Thu 05/03/2009 23:37:15
Nah I think I'm decided to use java. It has neat Java 2d library that will speed things up a lot :3
Title: Re: PixelArt editor - Another question :)
Post by: rharpe on Fri 06/03/2009 03:52:13
Good choice, Java is cross-platformed! (PC, MAC, and LINUX people can unite!)

Also, in Java, you can cut many more corners and get a project developed in half the time... my opinion of course.  ;D

Can't wait to see the first alpha design.
Title: Re: PixelArt editor - Another question :)
Post by: Babar on Fri 06/03/2009 04:33:35
Quote from: SpacePaw on Thu 05/03/2009 19:25:58
AAAAND - Another question :)
I like the suggestion about it beeing designed especially for low-res game developers, what ideas do you all have concerning this? What functions (not talking about graphics now) would help you with developing the game then :) ? I'm sure that some presets about the canvas size would be nice but besides that I cant think of anything that could help us sprite-makers :)

I haven't gone in detail over the whole thread, so I may be covering ground that has already been done. I think someone already mentioned about grids. Being able to set them on and off, and vary the size- from 1 pixel grid to 5, 10, etc. (and whether it gets 'clipped to') would be useful. I don't know whether someone mentioned this before, but some flexible palette handling would be good. Most 'modern' art software does irritating things to the palette, like compressing it, rearranging it, etc. Having the option of doing this yourself would be good.


Kudos for going at this. The most I ever went at this was making a weird tile drawing program 8 years ago in Qbasic, that didn't even have mouse support :D
Title: Re: PixelArt editor - Another question :)
Post by: SpacePaw on Fri 06/03/2009 09:18:24
Quote from: Babar on Fri 06/03/2009 04:33:35
Being able to set them on and off, and vary the size- from 1 pixel grid to 5, 10, etc. (and whether it gets 'clipped to') would be useful.

What do you mean by clipping the grid?
Title: Re: PixelArt editor - Another question :)
Post by: Gilbert on Fri 06/03/2009 09:24:23
I think he meant snapping to the grids. I might be wrong though. Also, (I never read all of the thread so I don't know if something similar was mentioned) be able to set the offset of the placement of the grids (not just snapped to (0,0) ) could be useful in some particular instances.
Title: Re: PixelArt editor - Another question :)
Post by: RickJ on Fri 06/03/2009 14:53:23
Quote
C++ in QT IDE+Compiler - cross platform and self dependant but I have no idea how to use it yet
C++ is a good thing for a programmer to know  ;D.  QT is easy to learn and  results in clean and efficient code.  It includes 3d, 2d, and svg graphics libraries.  It also includes support for network and web (webkit used in many popular browsers), plus support for script, plugins, and other llibraries as well.  I humbly suggest you take  a test drive.

Quote
I like the suggestion about it beeing designed especially for low-res game developers, what ideas do you all have concerning this? What functions (not talking about graphics now) would help you with developing the game then..
First of all I think that "2d game developers" rather than "low-res game developers" better describes the need.

Secondly to answer your question you need to think about the process of creating graphical elements, importing them into a game, revising, reimporting, etc, and how this process can be made more efficient.  Here are some of the things I would be considering were I in your place:

Revision Control/Automation
Consider what would be required to change an animated sprite.   Ideally one would open the graphics source file (many  people don't even bother to preserve graphic source) make the desired changes, save under a different (i.e. MyGraphic-V01.pdd => MyGraphic-V02.pdd), then export each frame.  In photoshop for example each frame could be on a different layer or collection of layers, so to export a frame the appropriate layer(s) would be made visible graphic exported to a file of the form MyGraphic-V02-LLFF.png (LL=loop number, FF=frame number).  The process would then be repeated for each frame.

It would be great if this whole process could be done with a single mouse click, or perhaps two at most.   There could be a configuration dialog where the user could control the process.  This would only need to be done once.

Gale, as well as some other programs, does a better job of exporting frames but it still requires multiple clicks and some data entry each time an export is made or a new version of source is saved.   

Integration with AGS and other engines
Now that we have exported our animation to separate sprite files we need to import them into AGS and then create animation loops and select a sprite for each frame.  But inside the graphics editor we already knew which graphic went with which frame.   

What if it were possible export the source file to a single output file that contained not only the graphics but also the animation loops and frames.  AGS could then make use of this file directly and automatically import sprites, define animation loops and frames, etc, thus eliminating the need  to do all this manually. 

For backgrounds the concept of area masks could be added to the export file format.  This would mean that the masks and background image would always be coupled and that AGS could import the whole shebang in one click instead of doing it a piece at a time.

Of course all this AGS integration talk makes .NET an attractive choice, one that perhaps should be reconsidered if your project takes shape in this direction.   If a more general game integration is the goal then it would seem like self contained C++ with a Game Engine Integration API ought to be the choice.  Just my opinion of course.  :=

Grids, Guidelines and Perspective lines/tools
I noticed you are getting a lot of commentary about grids.  Take a look at Visio and how it handles grids.  As you zoom in the grid becomes finer eliminating the need to change grid spacing to achieve a more accurate placement of points.  One only need to zoom to an appropriate level an viola the grid you need is the grid you have.  Implement this kind of scheme and you will  have addressed 99% of grid issues.

The other thing to consider having different styles such as an isometric grid or a perspective grid (i.e. grid lines would be equally spaced with regard to a horizon line and vanishing point), etc. 

Guidelines are of course those horizontal and vertical lines that can be drug from the margins of the drawing surface.  They are helpful in placing graphical elements in relation to existing elements.  It would be nice if this concept could be extended to support perspective drawing.    A simple implementation would allow the user to drag/draw a guideline from one point to another point in the drawing and would allow an endpoints to be moved so that line would rotate around the other endpoint.   Perhaps there could be an ability to define a vanishing point from two or more such lines of perspective.       

Other perspective tools would also be useful.  The equal distance fence post ruler thing comes to mind but I am sure there are other things that would be useful in making perspective drawings.

Project Support
It would be nice if there could be project wide settings, project specific templates and a project root directory.   If we are going to be specific for games then the project should contain categories of graphical elements such as rooms, characters, GUI, etc.  Perhaps these categories are configurable so the user can have as many or as few (even zero) as desired.  The root would then contain a sub-directory for each category of elements.  This would be done to provide easy navigation through the project.  When the user clicked he would first select the category and then the element or directory to open.  He could also elect to navigate the file system as one wwould normally expect.   
Title: Re: PixelArt editor - Another question :)
Post by: SpacePaw on Fri 06/03/2009 16:15:48
Quote from: RickJ on Fri 06/03/2009 14:53:23
Project Support
It would be nice if there could be project wide settings, project specific templates and a project root directory.   If we are going to be specific for games then the project should contain categories of graphical elements such as rooms, characters, GUI, etc.  Perhaps these categories are configurable so the user can have as many or as few (even zero) as desired.  The root would then contain a sub-directory for each category of elements.  This would be done to provide easy navigation through the project.  When the user clicked he would first select the category and then the element or directory to open.  He could also elect to navigate the file system as one wwould normally expect.  

This sounds fun. I like the idea of beeing able to create an "AGS Project" or just a blank canvas. The project would be organized with the rooms, sprites and stuff... (I might not be able to integrate it with ags as I'm not sure if there's a possibility to write an import plugin for it) you would just "add room" where you would have areas layers and your drawing layers etc etc...Nice idea... really nice
Title: Re: PixelArt editor - Another question :)
Post by: Charity on Fri 06/03/2009 16:36:56
One Gimp function which I absolutely love is Copy Visible, which lets you copy sections of the image as you see it, instead of just copying information from one layer at a time.  Saves a bunch of trouble merging layers and such.
Title: Re: PixelArt editor - Another question :)
Post by: RickJ on Fri 06/03/2009 19:41:53
Quote
This sounds fun. I like the idea of beeing able to create an "AGS Project" or just a blank canvas. The project would be organized with the rooms, sprites and stuff... (I might not be able to integrate it with ags as I'm not sure if there's a possibility to write an import plugin for it) you would just "add room" where you would have areas layers and your drawing layers etc etc...Nice idea... really nice
Just to clarify,  what  I meant by "project support"  is that a project would be contained in a sub-directory tree.   The root could contain user defined categories such as room, character, etc.  Each of these categories would manifest as sub-directories in the root directory.  When the user selects "new" from the menu he would first have to specify what kind of entity to create by selecting a category from a drop down list then then entering a new room name.  A directory is created in project->rooms->new_room_name for the new room and is populated with project specific room template files.  Here is an example of what a project space may look like.


project
     rooms
          intro 
               intro-00.sps (spw=SpacePaw source file)
               intro-01.sps
               intro-01.spx (spx=Spacepaw export file)
               intro-01.png
               intro-00.txt
     characters
     gui
     inventory



Quote
(I might not be able to integrate it with ags as I'm not sure if there's a possibility to write an import plugin for it) you would just "add room" where you would have areas layers and your drawing layers etc etc...Nice idea... really nice
So far this is non-AGS or game engine specific.   The game engine doesn't necessarily need to know the anything about directory structure with regard to integration.  Integration would come about through an open source file format and api (i.e. .spx in the above example) for an export file containing the information required for a game engine to import  the entities which it contains.

So in AGS an editor plugin would be required. to import  the spx file.  You say that you are skilled in .NET and CJ is usually very willing to provide functionality required by plugin writers so I would be very surprised if this couldn't be done.

Quote
Nice idea... really nice
Glad you liked them   ;D

[edit]
The MNG file format may be a candidate for your spx file.  It's the PNG equivalent of a GIF I suppose.  Anyway here is the link.
http://www.libpng.org/pub/mng/spec/ (http://www.libpng.org/pub/mng/spec/)
Title: Re: PixelArt editor - Another question :)
Post by: SpacePaw on Sat 07/03/2009 11:31:32
Quote from: RickJ on Fri 06/03/2009 19:41:53
So in AGS an editor plugin would be required. to import  the spx file.  You say that you are skilled in .NET and CJ is usually very willing to provide functionality required by plugin writers so I would be very surprised if this couldn't be done.

Well yes, it's not SO hard to make BUT I would need to have some sort of a source code or manual for making AGS plugins (if it supports them anyway). I need to know what kind of input it requires :)

Quote from: RickJ on Fri 06/03/2009 19:41:53
[edit]
The MNG file format may be a candidate for your spx file.  It's the PNG equivalent of a GIF I suppose.  Anyway here is the link.
http://www.libpng.org/pub/mng/spec/ (http://www.libpng.org/pub/mng/spec/)

I'll check it out - sounds fun so far :)
Title: Re: PixelArt editor - Another question :)
Post by: SSH on Sat 07/03/2009 12:59:01
Quote from: SpacePaw on Sat 07/03/2009 11:31:32

Well yes, it's not SO hard to make BUT I would need to have some sort of a source code or manual for making AGS plugins (if it supports them anyway). I need to know what kind of input it requires :)

http://www.adventuregamestudio.co.uk/accomplug.htm
Title: Re: PixelArt editor - Another question :)
Post by: RickJ on Sat 07/03/2009 16:11:54
Quote
Well yes, it's not SO hard to make BUT I would need to have some sort of a source code or manual for making AGS plugins (if it supports them anyway). I need to know what kind of input it requires Smiley
In addition to what SSH said the API is expanded as needs arise.

I should also point out that there is currently an AGS inport/export file format for characters .CHA and perhaps this would make a better starting point for the "spx" file than MNG. 
Title: Re: PixelArt editor - Another question :)
Post by: SpacePaw on Sun 08/03/2009 12:45:22
Oh great! I love you guys! This helps a lot :) AGS is much better then it was many years ago...