GDR Forum Index
Podcast Podcast
Dev Dev Logs
Search Search
RSS RSS
Register Register
Log in Log in
Reply to topic GDR Forum Index -> Game Developer's Refuge -> Development Log - Moai Page 1, 2, 3 ... 26, 27, 28  Next
View previous topic :: View next topic  
Author Message
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9363
Location: Not Finland
PostPosted: Fri Apr 01, 2011 4:28 pm    Post subject: Development Log - Moai Reply with quote

Not a joke, given the day I've chosen to post this.

Moai is a modern recreation of the original Autodesk Animator, only with the Animator part excised. It is 100% a tool designed for my work flow rather than a general purpose pixel editor. It will be released as freeware once completed. The main purpose is to move the existing editor forward about 20 years from a platform standpoint rather than a technical one. There are dozens of decent editors out there; this is just taking a unique product and introducing a few useful features while purging some stuff I never use. This is both an exercise in indulgence as well as an excellent test for my completed framework.

Adding - Paletted as well as true color editing, save/load jpgs and pngs and some others, work with images larger or smaller than 320x200. Also, better zooming, scaling, and rotation.

Removing - Animation features.


Original product hotkeys will be preserved, and multiple editing frames will be available, even though they won't be saved to an FLI like Animator does. I'm keeping the old Autodesk font, but I'm redoing the menus and eliminating the top menu selection bar entirely. The original program's extensive collection of brushes and ink styles will be replicated as faithfully as possible, but I may cut a few corners here and there. I may also add in some features of my own during the course of development to make up for that. The menus are already well under way, a firm feature set has been laid out, and a semi-functioning build is already in my hands. The majority of time spend on this project (which hopefully will be brief) will be devoted to getting the brushes and ink tools working. The original program has 22 brush tools and 26 ink styles which may be selected independently.


[ Autodesk Animator ]




[ Moai - WIP ]

View user's profile Send private message Visit poster's website
PoV
Moderator

Joined: 21 Aug 2005
Posts: 10659
Location: Canadia
PostPosted: Sat Apr 02, 2011 12:16 am    Post subject: Reply with quote

Neat!
_________________
Mike Kasprzak
'eh whatever. I used to make AAA and Indie games | Ludum Dare | Blog | Tweetar
View user's profile Send private message
n29
Developer

Joined: 13 Sep 2005
Posts: 879

PostPosted: Sat Apr 02, 2011 4:43 am    Post subject: Reply with quote

Yes, quiet neat. One of the projects I've had on the backburner for a long time is a GTK + Python clone of MS Paint specifically targeted at Linux. Besides Gimp (which doesn't do pixel editing (? could be wrong here)) and a few crappy alternatives, there's nothing to do pixel editing and basic image manipulation on Linux. The person who fills this gap will find ever lasting glory as the founder of a widely used Open Source project.
View user's profile Send private message
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9363
Location: Not Finland
PostPosted: Sat Apr 02, 2011 7:07 am    Post subject: Reply with quote

Quote:

Besides Gimp (which doesn't do pixel editing (? could be wrong here))


You can do pixel editing in Gimp, but it's not really designed for it. The things I miss most when I move to other programs are the group of favorite colors right on the front page (bottom center of screenshots), having a well-rounded palette manager, and being able to easily apply filter-like effects from a brush. I use Gimp as a last resort when I need to work on something that Animator can't handle. If there's enough interest, and I can actually get it to compile, I wouldn't be opposed to a Linux port.
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9363
Location: Not Finland
PostPosted: Sat Apr 02, 2011 10:08 am    Post subject: Reply with quote



First feature added - pointer crosshairs for aligning image elements. I can mimic this behavior in Animator by hitting the tilde key to capture a cel, but it's not as handy as this. This will be a feature than can be toggled by the GUI or by a hotkey. You will also be able to set the color and blend strength of the crosshairs. In this pic the color is pure white, with a blend strength of 13 (from 0-255). Barely visible!

The coordinates in the top corner refer to the absolute x,y position of the mouse, and the camera position. The image I loaded with something like 1280x800, but only 320x240 of it is visible. I'll be working on zooming and panning today, plus whatever else I feel like working on ;)
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9363
Location: Not Finland
PostPosted: Sat Apr 02, 2011 11:25 am    Post subject: Reply with quote



Drat. That didn't work out as planned.

Edit: That turned out to be some sort of weird color conversion problem with Allegro's stretch_blit routine. It's a pseudo-bug. Now I just need to find a good way around it.

Edit 2: Had to change color conversion settings because stretch_blit() is a thug and doesn't like to play nice with others.
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9363
Location: Not Finland
PostPosted: Sat Apr 02, 2011 1:13 pm    Post subject: Reply with quote

[ Quick Pan ]


Kinda hard to see what's happening in this pic.

Holding the middle mouse button (clicking the scroll wheel on a typical desktop mouse) invokes the quick pan routine. It overlays a scaled image of the entire frame and shows a rectangle with your current viewing area relative to it. Move the mouse to what you want to see, then release the button. Voila... you're there. Right now it looks a little assy because it doesn't make any attempts to clean up the scaled image; thin lines such as the ones in this test image may get chopped up. It's not supposed to look beautiful, just functional ;) The selection rectangle on these next two images looks different because the aspect ratio of the source image is 16:9 instead of 4:3.

[ Normal view ]


[ Quick Pan ]


I'm very happy with how this turned out. I was leaning toward something a bit different but this just hit me this morning and I had to go with it.
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9363
Location: Not Finland
PostPosted: Sat Apr 02, 2011 3:10 pm    Post subject: Reply with quote

Starting to run low on steam :(

I'm still contemplating how I want zooming to work. I'm going to attempt to emulate Animator faithfully as far as how it handles zooming, and have started designing how the scaler and offsets will work, but my brain is seriously starting to revolt on me. Something about food and entertainment. I keep reiterating to my brain that this work is both sustenance for it as well as entertainment... but it doesn't seem to be buying that argument.

View user's profile Send private message Visit poster's website
0xDB
Developer

Joined: 26 Dec 2005
Posts: 1637
Location: Your consciousness.
PostPosted: Sat Apr 02, 2011 3:20 pm    Post subject: Reply with quote

It looks like you already made a lot of progress, so I'd say your brain deserves some well earned entertainment and a break.
_________________
0xDB
View user's profile Send private message Visit poster's website
mikedoty
Developer

Joined: 18 Mar 2006
Posts: 1788

PostPosted: Sat Apr 02, 2011 3:36 pm    Post subject: Reply with quote

n29 wrote:
Yes, quiet neat. One of the projects I've had on the backburner for a long time is a GTK + Python clone of MS Paint specifically targeted at Linux. Besides Gimp (which doesn't do pixel editing (? could be wrong here)) and a few crappy alternatives, there's nothing to do pixel editing and basic image manipulation on Linux. The person who fills this gap will find ever lasting glory as the founder of a widely used Open Source project.


I usually use "KolourPaint" to make my graphics. It's a shame I have to install all of the KDE dependencies for basically one program, but (sadly?) it seems like the best option for light image editing to me.

This looks like a pretty useful tool. Seems like you've got a pretty good balance between having enough features to be useful without being so bloated you can't find anything without the help docs.
_________________
The end of the game, yes, is pretty much getting the weapon and killing off the population.
mashup games . com | Finally! - A Lode Runner Story
View user's profile Send private message Visit poster's website AIM Address
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9363
Location: Not Finland
PostPosted: Sat Apr 02, 2011 4:38 pm    Post subject: Reply with quote

Quote:

I usually use "KolourPaint" to make my graphics. It's a shame I have to install all of the KDE dependencies for basically one program, but (sadly?) it seems like the best option for light image editing to me.


Does Allegro 4.x work reliably in Linux?
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9363
Location: Not Finland
PostPosted: Sat Apr 02, 2011 6:20 pm    Post subject: Reply with quote

Oh boy, a bug!




If I ever have to zoom in more than that, something's wrong with me.




Good enough for now. I'll pick things up in the morning. Gotta do... stuff... now.
View user's profile Send private message Visit poster's website
mikedoty
Developer

Joined: 18 Mar 2006
Posts: 1788

PostPosted: Sat Apr 02, 2011 6:47 pm    Post subject: Reply with quote

Sirocco wrote:
Does Allegro 4.x work reliably in Linux?


I actually don't know. My experience with anything allegro in any version is pretty minimal. Is there a common test app(s) that I could run to provide some benchmarks for you?
_________________
The end of the game, yes, is pretty much getting the weapon and killing off the population.
mashup games . com | Finally! - A Lode Runner Story
View user's profile Send private message Visit poster's website AIM Address
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9363
Location: Not Finland
PostPosted: Sun Apr 03, 2011 8:38 am    Post subject: Reply with quote

That I know of, the best way to go about that is to download the Linux version's source, then compile it. Doing so produces ~30 test programs that demonstrate the lib's features. I'd have figured someone would have posted the programs themselves, but prayers to the Google Oracle have not produced satisfactory results.

Edit:

SEE? My fucking brain is b0rked. I totally forgot the url.


Edited by Sirocco on Sun Apr 03, 2011 9:30 am; edited 1 time
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9363
Location: Not Finland
PostPosted: Sun Apr 03, 2011 9:29 am    Post subject: Reply with quote

Totally unfair.

I feel completely hungover, yet I didn't drink last night. God, my head :(


I'm working on the last bits of the zoom stuff right now. By default, the mouse wheel changes the zoom level. You will be able to change that functionality to 8-way scrolling based on your mouse position relative to the center of the screen. I suspect most people will be happy with the default wheel = zoom setup.
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9363
Location: Not Finland
PostPosted: Sun Apr 03, 2011 10:52 am    Post subject: Reply with quote

There are two different ways to handle the mouse pointer while zoomed:

Modern style - Pointer remains the same size at all times.

Animator style - Pointer scales with the image, unless over a menu.


Animator style will likely be the default. Like most things it will be tweakable from the configuration menu.


[ Animator Style ]








Oh god, WTF is wrong with my brain?@?@!!!
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9363
Location: Not Finland
PostPosted: Sun Apr 03, 2011 12:10 pm    Post subject: Reply with quote

Code:

---------------------------------------------------------------------------------------------
[ LABEL ] [ BRUSH ] [ BRUSH ] [ M ] [0] [1] [2] [3] [4] [5] [6] [  INK  ] [  INK  ] [  PIC  ]
[  ZOOM ] [ BRUSH ] [ BRUSH ] | C | [0] [1] [2] [3] [4] [5] [6] [  INK  ] [  INK  ] [  CEL  ]
[  UNDO ] [ BRUSH ] [ BRUSH ] | F | [  Selected Color Range?  ] [  INK  ] [  INK  ] [  USER ]
---------------------------------------------------------------------------------------------


My drawing menu mockup was delightfully low-tech :) I need to work up something similar for the palette menu. I want the user to be able to switch between true color and paletted editing modes with a single button click. Dealing with the consequences of the change is left to the user ;) So this means there will actually be two separate menus, one for each editing mode. Animator was originally based on a 24 bit color model, so internally all calculations were done on that level, then fit to the current palette (or vice versa) upon writing to the frame. This explains why the program offered color definition as either RGB 0-63 or HLS 0-255, which at first blush seems highly odd for a strictly paletted image editor.

I will likely offer color selection in a variety of forms... HSV seems more popular than HLS these days, but I have already written conversion routines for both, so I'll likely have four available: RGB 64, RGB 255, HLS 255, HSV 255. So... I'm off to do a little design work.
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9363
Location: Not Finland
PostPosted: Sun Apr 03, 2011 1:28 pm    Post subject: Reply with quote

I ended up rewriting the quick pan code because it was a teensy bit buggy (calculations were off slightly) and didn't work right when the view was zoomed in. The new code... not that it matters to anyone but me... is half as long; more importantly, it now works no matter the image size, aspect ratio, or zoom level. Yay for me.

I'd love to do more, but I still feel like total shite. Going to bed now.


Before I collapse into sweet unconsciousness, I would like to mention that I really like the flow of the current build. I get the feeling that if I were able to draw stuff right now... which I can't because I'm saving that for last, I'd be really comfortable with the process of moving about and such. I find that reassuring.

Also... one final thought. All GUI buttons will feature tooltips, in case you're a n00b.
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9363
Location: Not Finland
PostPosted: Sun Apr 03, 2011 3:59 pm    Post subject: Reply with quote

I got better.


Time to look at Animator's thoroughly excellent palette manager and see where we want to go with it. Of all the pixel editing programs I've ever used, Animator has the best palette manager... by far. You have total control over your palette, including the pixels in the frame that use each color index, all from one menu. I want to make sure I keep that functionality intact. Aside from the extra favorites and color spaces, I doubt I'll have anything to add to the existing feature set.

[ Animator's Palette Manager ]



Code:

---------------------------------------------------------------------------------------------
[    LABEL   ] [  I  ] [0] [1] [2] [3] [4] [5] [6] [ A ][      Selected Color Range  #1     ]
[ VGA ][ RGB ] [  M  ] [0] [1] [2] [3] [4] [5] [6] [ B ][      Selected Color Range  #2     ]
[ HLS ][ HSV ] [  Red Component Slider  ][ Green Component Slider ][ Blue Component Slider  ]
---------------------------------------------------------------------------------------------
[C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C]
[C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C]
[C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C]
[C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C]
[C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C]
[C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C]
[C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C]
[C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C][C]
---------------------------------------------------------------------------------------------
 [      PALETTE       ] [      CLUSTER       ] [      ARRANGE       ] [       VALUE        ]
---------------------------------------------------------------------------------------------


Legend:

I = Brush (Ink) Color
M = Mask Color
C = Palette colors
A = Select Color Range #1
B = Select Color Range #2
# = Favorites (Colors)



My current thoughts are to keep things largely the same, just making a little room for the additional color space options are more favorite color patches (already visible on the main menu in the center). Everything was going well until I realized I hadn't taken the top menu bar into account. I hastily tacked it onto the bottom of the menu -- I'll see how that turns out. Most of the time those options go unused... but they are important to have around.

The true color version of this menu will look radically different; certainly the palette will go bye-bye and some sort of color wheel or block-based visualization will be stuck in there. I'm going to try to put some serious thought into that since it'll be a totally new creation and not just something I'm adapting.
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9363
Location: Not Finland
PostPosted: Sun Apr 03, 2011 5:41 pm    Post subject: Reply with quote

My #1 goal when starting this project was to fix everything about Animator that annoyed me. It wasn't an extensive list :) I decided to tackle Animator's status bar.

It uses the standard Animator font and permanently occupies the top portion of the screen, unless you have the UI toggled off. The problem is that it doesn't bother repositioning itself when you start working in the area of the screen it happens to be occupying. But you don't want to toggle the UI because you can't do that without aborting whatever operation you were in the middle of when you ran afoul of the damn status bar. Yeesh.

So Moai's status bar, along with being purely optional, will semi-intelligently reposition itself depending on the circumstances. Here's the bar at its normal position at the top of the screen, followed by it repositioning itself right above the drawing menu when you get to the top of the screen, next placing itself at the bottom of the screen when it finds enough space to do so (because I moved the drawing menu up slightly), and finally going to the bottom when I move the menu up too far. Neat-o, I guess.




/me crosses another feature off the list.
View user's profile Send private message Visit poster's website
PoV
Moderator

Joined: 21 Aug 2005
Posts: 10659
Location: Canadia
PostPosted: Mon Apr 04, 2011 10:21 am    Post subject: Reply with quote

Wow, I didn't know you supported Lua scripting, iOS and Android.

http://www.pocketgamer.biz/r/PG.Biz/Moai/news.asp?c=28892

Ahh the fun of names. ;). I wouldn't change nothing, just sharing a deja vu moment I had.
_________________
Mike Kasprzak
'eh whatever. I used to make AAA and Indie games | Ludum Dare | Blog | Tweetar
View user's profile Send private message
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9363
Location: Not Finland
PostPosted: Mon Apr 04, 2011 3:19 pm    Post subject: Reply with quote

Quote:

Wow, I didn't know you supported Lua scripting, iOS and Android.


Yo dawg, I heard you liked Easter Island, so I put my Moai in their Moai so you can draw while you dev!



Allegro, I'm surprised to learn, has the ability to read and write Targa files right "out of the box". Somehow I totally forgot about that. It also comes with an LBM decoder, but curiously not an encoder. So you can read LBM files, but not write them. Seeing how delightfully... undocumented... the decoding routine is, I suspect whoever wrote it decided they had had enough after going half the distance.

That's a shame, because I was hoping to get 100% of the Animator's graphic formats, and LBM is one of them. But I also see that Animator will convert old Mac files as well as a bunch of different Atari ST formats, and I give slightly less than a fuck about those ;)

So, as it stands... I can support:

Gif - 8bpp only, borked at the moment *
BMP - Good to go
PCX - Good to go
PNG - Good to go
JPG - Good to go
TGA - Good to go
TIFF - I think I can?
LBM - Read only

I replaced my old GIF reading code with a recent Allegro add-on. It's better because it reads as well as writes GIFs (since mine... wait for it... only reads GIFs because I was too lazy to finish the job) but something seems to be messed up with my use of it. I don't want to impugn the lib itself because it seems solid, but perhaps Allegro is handling things a little differently since it's bolted onto it, whereas my bastardized code was a totally separate entity.

Also, I have to investigate whether or not this lib will write GIFs in higher than 8bpp. Sounds weird, but indeed the GIF format supports at least hi-color. Everyone and their Mom got lazy and forgot to implement the flag that indicates more than one definition block is available in the file, and after x years GIFs lost their ability to store more than 256 colors like penguins fucked up the whole "flying" episode.

I'm rambling, and I have work to do. Silly me.
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9363
Location: Not Finland
PostPosted: Mon Apr 04, 2011 4:33 pm    Post subject: Reply with quote

The short answers being: no, the lib assumes all GIFs are 8bpp, and it seems to be buttsecxing the palette when it loads a file. If it doesn't absolutely respect the image's palette and color indices, it's of no use to me.

*sigh*

Back to work.
View user's profile Send private message Visit poster's website
sonrisu
Moderator

Joined: 31 Aug 2005
Posts: 4965
Location: Silicon Valley!
PostPosted: Tue Apr 05, 2011 7:31 am    Post subject: Reply with quote

Nice. This is looking sweet.
_________________
loomsoft :]
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9363
Location: Not Finland
PostPosted: Tue Apr 05, 2011 3:27 pm    Post subject: Reply with quote



Serious WIP there.

In true color mode, you'll have plenty of ways to select your colors based on your particular mindset. You can work in four different color spaces (although really VGA is nothing more than RGB in 0-64 format) and you'll be able to play about with each of the three components of that space, and you'll be able to quickly make subtle changes with the variances on the left. They will populate with +/- variations of the three components. Lastly, I'm thinking of putting some sort of graphic visualization of your selection in the color space in the bottom right portion.

Things will likely slow down this week as I tackle a few important technical dilemmas that have been occupying my thoughts moreso than pillaging the low-hanging fruit of the feature tree. Also, I just realized that since I've mode the zoom functionality to the mouse, I can do something useful with the ZOOM button on the home menu. Hmmmm....
View user's profile Send private message Visit poster's website
Reply to topic GDR Forum Index -> Game Developer's Refuge -> Development Log - Moai Page 1, 2, 3 ... 26, 27, 28  Next

Use this link to get a Sign-On Bonus when you get started!

All trademarks and copyrights on this page are owned by their respective owners. All comments owned by their respective posters.
phpBB code © 2001, 2005 phpBB Group. Other message board code © Kevin Reems.