Author Topic: DeluxePaint clone - basic drawing framework done, planing features begun  (Read 8946 times)

0 Members and 1 Guest are viewing this topic.

Offline zawran

  • Sponsor
  • Pentium
  • *******
  • Posts: 909
  • Karma: 67
    • View Profile
I have decided to go ahead with making that DeluxePaint clone I always thought about doing. But before I go on, I need to decide on the interface gui. Either custom DeluxePaint alike, or standard winApi?

Deluxe Paint

Grafx2

WinApi


Which of the two would be the way to go? Also, should the tools be on the left side, right side, top or buttom?

I am looking for input on what people would prefer.

So far I have decided on the following features:

Tools:  pen, spray, line, curve, box (hollow+filled), circle (hollow+filled), paintbucket (floodfill), stencil (brush), magnify (zoom)
Colors: 256 color palette chosen from all 16 mill. available for 32bit. Fixed palette, which can be saved/loaded. Loading a new palette will update colors in image accordingly. Palette editor with gradient generation.
Save formats: PNG is standard, option to save as binary 32bit format with alpha. save as palette colors with/without palette attached at end.

Those are the currently planned features, but I would like to know what other features and ideas you might have for a drawing tool like this?

Once I have made a plan for what I would like to accomplice for a working beta version, then I will proceed ahead with coding it.

Offline Jim

  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 5301
  • Karma: 402
    • View Profile
Windows+MDI.  See if you can make the toolbar dockable, that would be cool.  Palette mode is cool, but extending it to 32bit colour as an option I think would be great.
There are a load of other dpaint clones you can grab ideas from.  Most of them totally, totally fail to be anywhere near as good as dpaint.

Jim
Challenge Trophies Won:

Offline stormbringer

  • Time moves by fast, no second chance
  • Amiga 1200
  • ****
  • Posts: 453
  • Karma: 73
    • View Profile
    • www.retro-remakes.net
I'd prefer the original DP UI.. simple, fast and efficient (but you know I like remakes ;) )
We once had a passion
It all seemed so right
So young and so eager
No end in sight
But now we are prisoners
In our own hearts
Nothing seems real
It's all torn apart

Offline Pixel_Outlaw

  • Pentium
  • *****
  • Posts: 1382
  • Karma: 83
    • View Profile
I like the modern layout best. Any specs on language/libraries you are using?

You might consider adding dithering patterns as fills.

I probably have many tool ideas tucked away in the back of my mind but it is just too late to access them all.
Have some karma for doing something that I wish I could do.
« Last Edit: December 22, 2007 by Pixel_Outlaw »
Challenge Trophies Won:

Offline zawran

  • Sponsor
  • Pentium
  • *******
  • Posts: 909
  • Karma: 67
    • View Profile
I will be using BlitzMax as the programming tool, since thats what I am using these days and its probably the best language I have used so far. I don't think I will need any external libraries since Bmax can do just about everything I will need, or at least that is what I am thinking at this moment.

I am leaning towards the Dpaint style interface, but I am going wait for more feedback before I choose. My own reason for this is that its going to be a tool for pixel pushers not the general artist, and that interface style is clean and easy to use and it immediately tells people what kind of drawing package they are dealing with. It might be a little more work though since the winApi is easy to setup and control code is already there as a bmax internal module, but with the Dpaint interface I will have to make the control code myself, which isn't too bad considering that I have made plenty of tools, and several gui libraries before.

Dithering patterns should be doable, as well as regular gradient. I could use a link to a good site where I can get some more information on the different drawing techniques that pixel artists use. This could help me adding specialized tools to make life easier for the pixel artist, especially for the iso-artists.

I am definately not looking to make a PhotoShop replacement. So the aim is not to do an all out art package, but something more specialized towards the pixel perfect drawing style of the old Amiga days and the modern iso-artists. Something where people using limited color selection and no use of filters will feel at home.

Again I am not sure, that there is a big need for such a tool, but I have been wanting to make one for years, and this is the time to get started on one. If things work out, then others will find it useful as well. I myself is not an artist by a longshot, but I like the challenge of programming and enjoy making tools. So I am looking forward to more feedback and please do feel free to bring forth any ideas you might have for this project. I do really appreciate all ideas.

[edit] I found this tutorial which seems rather good. http://www.19.5degs.com/element/832.php#Isometric+Pixel+Art%2C+Complete+Guide%3A+Chapter+1
« Last Edit: December 22, 2007 by zawran »

Offline zawran

  • Sponsor
  • Pentium
  • *******
  • Posts: 909
  • Karma: 67
    • View Profile
I have completed the code for the palette type. I decided to create it as a type to allow the user to have more than one palette loaded at the same time. All methods for the type like, colorswap, invert, copy, gradient and so on is done. I have coded both save and load methods for both binary and ascii output. I have also started work on a layer type, which will allow the user to build their art in layers. This should provide the artist with added functionality compaired with MSPaint. The user will be able to save layers individually, swap layers and flatten the layers to one, but those methods are yet to be coded. For now I have creation and deletion of layers working which is what I need to get started on some basic pen drawing code. So far I am happy with the progress.

Offline Pixel_Outlaw

  • Pentium
  • *****
  • Posts: 1382
  • Karma: 83
    • View Profile
Can I be the clueless artsy beta tester?   :goodpost:


Sounds good! My main gripe with MS Paint has always been palettes or lack thereof. Another question is how you are dong your seeded fills. I imagine you have to use some sort of queue? How are you storing and manipulating canvas data? Will there be support for alpha channel transparency in .png format?
Challenge Trophies Won:

Offline zawran

  • Sponsor
  • Pentium
  • *******
  • Posts: 909
  • Karma: 67
    • View Profile
Each layer will contain 3 parts. Image, pixmap and memorybank. An image which is shown on the screen (pixmaps are not affected by scale commands so for magnifying I need to use images). A pixmap which holds the RGBA data of the image (Bmax can only manipulate pixmaps, not images). And a bank holding the palette colors of the image (since I am using a fixed palette, and modern computers don't, I need to simulate it).

So I will have to create code which when image is manipulated updates all three accordingly. This will also allow for the palette changes to reflect directly on the image. So lets say you change palette color number 14 from a red to a blue, then all pixels that contained palette color 14 will change to blue as well.

Images will be saved by default to png including alpha information, so transparency is supported. By default, it will be color zero in the palette which will determine where transparency is set, but I imagine, that I might enable the user to pick any palette number and then just have the save function redo the alpha data before saving the image.

I am using a non-recursive floodfill (seeded fill) code I got from the blitz site. It was written by Paul Snart back in 2001, but it works great and I haven't really found anything since which works better. But I will probably going to have to create new code for gradient and dithering fills. But to start with I will settle with solid color flood fill and then have the other two on the wish list for when the program has its base features working.

Anyone from this forum can beta test if they want to. I will create a seperate thread once I have something worth testing :)  Until then ideas are welcome in this thread :)

Offline zawran

  • Sponsor
  • Pentium
  • *******
  • Posts: 909
  • Karma: 67
    • View Profile
All layer and palette functions are now done. The palette system works really great. I also got zoomed view working. I have a simple pen tool working as well so that I have something to test with. Whats next is getting the pen tool working when the mouse is inside the zoomed view. Once that is done I will start working on the GUI control and visual elements done. Its progressing nicely and I am happy with how everything is coming together so far.

The layers can be copied and since its using a fixed palette system, its really easy to completely replace one color with another. I have also made it so that the user can pick which of the palette colors is used as transparency, and they can change this at any time. I do not think that I will manage to work more on it tonight, but I might squeeze some time in monday morning, but the afternoon and evening its Christmas (in Denmark its celebrated on the 24th), so no progress will be made there since its family time and presents exchange :)

Offline Shockwave

  • good/evil
  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 17414
  • Karma: 498
  • evil/good
    • View Profile
    • My Homepage
If it's going to appeal to the ex-users of Deluxe Paint it should look and behave as much like Dpaint 3 as possible.
I loved Dpaint 3 the best of all.

Dockable tool bar would be great, but in default mode, the tools etc should be on the right and most important to get right are the palette tools and also the brush options (especially shade mode as it was ruined on Dpaint 4).

If it could support 24 bit colour or maybe even have selectable modes ranging up from 1 to 32 bit colour it would be simply incredible.

I'd pay good money for a Dpaint clone that was at least 95% faithful to the original.
Shockwave ^ Codigos
Challenge Trophies Won:

Offline zawran

  • Sponsor
  • Pentium
  • *******
  • Posts: 909
  • Karma: 67
    • View Profile
I got a few things done this morning. I have made the code for drawing the following to any layer: pixel, straight line, rect, rect-filled, circle, circle-filled, flood fill. So the basic tools are ready to go. Now I will try and decide on the gui setup. I was thinking that I like the grafx2 setup where they have everything in the buttom of the screen because it would allow plenty of room for all the tool icons and a full 256 color palette with colors big enough to be easily pickable. But I haven't decided on anything yet. I will also start to work on the code to handle showing the layers and the magnify area when active. Once that works its onto mouse control and probably save/load code.

So there are still progress, although the Christmas days has slowed things down a little bit, but that was to be expected :)

Offline Jim

  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 5301
  • Karma: 402
    • View Profile
If you have a 16:9 monitor, you really want the menus to be at the left or right.
Sounds like you're making great progress!
Jim
Challenge Trophies Won:

Offline zawran

  • Sponsor
  • Pentium
  • *******
  • Posts: 909
  • Karma: 67
    • View Profile
Yes, you are probably right about the controls on the side, more and more people are getting wide screen monitors and it could make better use of the screen space. I will see what I can come up with. I would like to have all 256 colors of the palette on screen at the same time, but I will see what kind of space is there and how I can work it. Not all people have big monitors, but I think that 20-22 inch are becoming more and more popular and they go up to 1680x1050, so there are a good deal of pixels to work with.

What are peoples view on full-screen vs windowed, what is the preference there? I am thinking windowed.

Offline Pixel_Outlaw

  • Pentium
  • *****
  • Posts: 1382
  • Karma: 83
    • View Profile
I'm not quite sure why you wouldn't include both modes? Just like a normal window in XP or Vista. One thing I don't quite  care for however is tool bars that can exist outside the main window.
Challenge Trophies Won:

Offline zawran

  • Sponsor
  • Pentium
  • *******
  • Posts: 909
  • Karma: 67
    • View Profile
I do not like the toolbars outside the window either. I have been using paint.net for a while and it is really annoying that when you resize the window, the toolbars floats around outside the window, so that I am definately avoiding.

Offline Jim

  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 5301
  • Karma: 402
    • View Profile
They copied it from Photoshop!  I don't like it either.  I think in PS it can be turned off as an option.
Jim
Challenge Trophies Won:

Offline zawran

  • Sponsor
  • Pentium
  • *******
  • Posts: 909
  • Karma: 67
    • View Profile
Unfortunately I have not had as much time lately for coding, but today I managed to get loading and saving functions done, so at least that is out of the way. I think the next thing to tackle is the gui stuff to get selection of various tools working using the mouse instead of key presses. I am hoping to be able to set aside some time during the coming weekend to code on this.

Offline Pixel_Outlaw

  • Pentium
  • *****
  • Posts: 1382
  • Karma: 83
    • View Profile
Good news. I'd been wondering if you had given up. I really want to see the product.
Challenge Trophies Won:

Offline Shockwave

  • good/evil
  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 17414
  • Karma: 498
  • evil/good
    • View Profile
    • My Homepage
Do you plan to impliment the same keyboard shortcuts as in Dpaint, Zawran? :)
Shockwave ^ Codigos
Challenge Trophies Won:

Offline zawran

  • Sponsor
  • Pentium
  • *******
  • Posts: 909
  • Karma: 67
    • View Profile
Yes I could do that, if I knew what they were :)  I haven't used Dpaint since the Amiga days, so I don't really remember which keys they used for what.