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 Previous  1, 2, 3 ... 25, 26, 27, 28  Next
View previous topic :: View next topic  
Author Message
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9459
Location: Not Finland
PostPosted: Sat Jun 29, 2013 5:44 am    Post subject: Reply with quote

I now feel that the program is mature enough to begin working on short video tutorials demonstrating the feature set. These will be linked from the program via a button that launches your browser and points it toward the video.

I'd say I've got a full roster of stuff for 1.8 now: checking for updates, video tutorials, and fixes for fonts and animated gifs that crash the program.
_________________
NoOP / Reyn Time -- The $ is screwing everyone these days. (0xDB)
View user's profile Send private message Visit poster's website
xearthianx
Developer

Joined: 28 Sep 2006
Posts: 771
Location: USA! USA!
PostPosted: Mon Jul 08, 2013 1:07 pm    Post subject: Reply with quote

I just grabbed 1.7 from your allegro.cc hosting space. I'm poking around in there, and I am coming to the conclusion that I just do not understand the workflow at all. Even after reading through the tutorial frames, I don't know how to create a new project / workspace / stack / animation / document / session / whatever it's called in Animator ternimology. Is there something I'm missing here?
_________________
Ionoclast Laboratories - Scientia et Dominatia!
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9459
Location: Not Finland
PostPosted: Mon Jul 08, 2013 2:09 pm    Post subject: Reply with quote

xearthianx wrote:
I just grabbed 1.7 from your allegro.cc hosting space. I'm poking around in there, and I am coming to the conclusion that I just do not understand the workflow at all. Even after reading through the tutorial frames, I don't know how to create a new project / workspace / stack / animation / document / session / whatever it's called in Animator ternimology. Is there something I'm missing here?


Animator was a unique beast, to put it lightly.

For starters, there are four menu buttons at the top of the drawing menu (PIC, CEL, FRAME, USER). The user button is the one you want: you can access your settings, workspace, etc. There's also a help menu in there, if you come across a feature and just don't quite grok it.

The other biggie is that right-clicking the mouse does various things contextually. This is the only thing I can point to that isn't consistent across the entire program. You can use it to toggle the drawing menu, and cancel drawing operations. For cels, it completes the operation (left-clicking grabs the cel to reposition it).

Another important thing to know is that you can right-click on your tools and ink to swap them out.
_________________
NoOP / Reyn Time -- The $ is screwing everyone these days. (0xDB)
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9459
Location: Not Finland
PostPosted: Mon Jul 08, 2013 4:31 pm    Post subject: Reply with quote



Goodies arrived. Thank you, USPS for not fucking the delivery up (for once).

Seems like I should retool the tutorial to do a better job of introducing the interface. This is just the sort of feedback I need right now.
_________________
NoOP / Reyn Time -- The $ is screwing everyone these days. (0xDB)
View user's profile Send private message Visit poster's website
xearthianx
Developer

Joined: 28 Sep 2006
Posts: 771
Location: USA! USA!
PostPosted: Tue Jul 09, 2013 7:50 am    Post subject: Reply with quote

Oh, thanks for that tip. I never would've even tried to click on either of those top rows of buttons, because they look like they're inactive-gray.
_________________
Ionoclast Laboratories - Scientia et Dominatia!
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9459
Location: Not Finland
PostPosted: Wed Jul 24, 2013 5:16 am    Post subject: Reply with quote

I've been noticing there are a lot of tiny inconsistencies in how cels are handled. I wouldn't call them bugs so much as oversights. All of it has to do with positioning... such as capturing a cel, but finding that when you go to paste it the cel is no longer where you captured it. I have some suspicions regarding what causes that.

There's also a very weird and (thankfully) rare bug involving the line tool. I've only seen it happen twice. Sometimes the tool will bug out and not draw a line correctly. The starting point is fine, but the end point appears to be random. I need to spend a day (or two) going over some things.

I've been using Moai a lot. I'm *really* happy with it, aside from the rare hiccup like I've described. Once I smooth those out, I'll think about working on new features for 1.8. Get comfy with 1.7 because it looks like it'll be the standing version for a while. I haven't run into any serious issues.
_________________
NoOP / Reyn Time -- The $ is screwing everyone these days. (0xDB)
View user's profile Send private message Visit poster's website
mandrake
Developer

Joined: 19 Aug 2005
Posts: 717
Location: The Land of Nod
PostPosted: Sun Jul 28, 2013 5:30 am    Post subject: Reply with quote

Nice. This thing is pretty cool, though I've never used Animator, it's still nifty.
_________________
<blog >
View user's profile Send private message Send e-mail Visit poster's website MSN Messenger
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9459
Location: Not Finland
PostPosted: Thu Sep 26, 2013 8:05 am    Post subject: Reply with quote

I did some work on 1.8 the other night. I'm concentrating on making sure this release isn't breakable due to poor input. Most things are caught and logged, and the program is allowed to exit or crash out so the user gets the point and can bitch at me. I never intended it to stay that way for this long :0

Now I'm changing tack and concentrating on fault recovery since the program is mature. Workspaces are self-healing in many regards, but I recently found a new way to break them. This is very bad because the last thing I want is for a user to find themselves locked out of their work.

I've fixed a lot of little bugs, and a few major ones in the animation menus. I've been reading up on a few approaches that seem to work better in A4, and have gotten a bit snappier performance out of the UI. Nothing major, but I'll take anything I can get.

I've also run into an unpleasant situation where I run out of memory. When working with very, very large frames (think 6000x6000) things that normally aren't a big deal, like the accumulation buffers, onion skin layer, undo/redo buffers etc eat up memory like crazy. And really I don't care because if you're working with images that large in Moai you clearly have needs I'm not going to understand or judge, and the OS should be able to carry the burden. >95% of Moai users will be eating less than 250 megs of memory while working on their projects, in my estimation.

The problem is that under Windows 7 64 bit, at ~1gig of memory, I hit a wall and Allegro refuses to allocate any more memory. I haven't thoroughly investigated it, and I was under the assumption that individual processes could have up to 2 gigs of memory before needing manual heap management. In ye olde days, if I grabbed more memory than I physically had, Windows would happily virtualize the extra space, which was unpleasant but makes life go on. But we're talking much, much lower numbers there, and I'm talking about a system with 8 gigs in it, with over 7 free, and the process tanking after eating up 1.

I'm going to do something about it, I just don't know what. Right now the current build detects large memory usage and scales features to compensate: reducing undo steps, disabling onion and alpha preview, etc. But Moai isn't about saying "Nope, can't do that" so I'm hesitant to do anything evil like put in a size limit on frames.
_________________
NoOP / Reyn Time -- The $ is screwing everyone these days. (0xDB)
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9459
Location: Not Finland
PostPosted: Tue Oct 01, 2013 8:11 am    Post subject: Reply with quote

Last night was a bug-fixing and feature improvement session, and I got a lot taken care of. One thing that didn't improve was a crash bug with a particular font file that ships with windows (marlett.ttf). Some Microsoft-supplied fonts come with non-standard encoding that somehow passes as a genuine TTF, but breaks some programs in the process. This file is obviously something special, as it doesn't even show up in my OS font list. Moai's file browser will pick it up because it's a non-hidden file that resides with your other fonts.

Alfont dies when it tries to work with this file. The nasty point is that it doesn't report any errors -- it just croaks when trying to render a character. I have no way of catching the problem because nothing says "Hey, this is abnormal." While I'm absolutely loathe to do so, I may blacklist that file, so Moai won't even attempt to open it.

I did patch in a newer version of Alfont that supposedly fixes some completely unrelated crash bugs that I haven't ever run into. Progress, I guess?
_________________
NoOP / Reyn Time -- The $ is screwing everyone these days. (0xDB)
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9459
Location: Not Finland
PostPosted: Thu Oct 03, 2013 5:10 am    Post subject: Reply with quote

Last night I rolled libCURL into the project and have something that crudely checks version info against a file on the server. As a finished feature, you'll be able to click on a button to check for updates, and if a newer version is available a button will pop up that will direct your browser to the download.

This is something I've been meaning to do for a looooong time. Laziness FTW.
_________________
NoOP / Reyn Time -- The $ is screwing everyone these days. (0xDB)
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9459
Location: Not Finland
PostPosted: Fri Oct 04, 2013 8:09 am    Post subject: Reply with quote

Last night I added two new ink types: neon, and mosaic. I'm still debugging neon since it has a weird edge case (almost literally) that is acting in a peculiar fashion. Mosaic is just what you think it is, with variable translucency and grid size.

Having more ink is good, up to a point. So long as there isn't any fatigue from having too many choices, I may try to add one each update.

Other than that, there are some things that I can't fix. There's the aforementioned problem with a few fonts, that I can't fix. There's also a bug in Allegro that chops off the bottom of filled polygons, and it'd be easier to write my own polyfill than modify the existing one.

Getting user files into "safe" folders is a long-term goal, so Windows users can actually install the program without it going apeshit. Unicode support is probably too much to ask, given that I didn't plan for it day-one, and use pixel fonts, but I would like to support the entire extended ASCII set, which I think would help out a lot of people in countries using latin character sets.
_________________
NoOP / Reyn Time -- The $ is screwing everyone these days. (0xDB)
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9459
Location: Not Finland
PostPosted: Sat Oct 05, 2013 10:36 am    Post subject: Reply with quote

. .

Updates are in. If something newer is found, you can click on the button to open the download page in your browser. This has to be manually initiated by the user -- so there's nothing automatic about the process. You decide when you want to check, and you install the update however you like. It's safest that way.


. .

Here's a shot of glow ink versus neon. I may rename that before release, because it didn't turn out the way I intended. Still, I like the effect. Neon ink differs from glow in that it pushes colors toward saturation rather than white (although it does lighten things up a bit), and it is self-intersecting rather than additive. That is, there's no overdraw -- the operation maintains a buffer than only allows a draw operation on a pixel if it's the strongest available. You can see this if you zoom in on the pic on the right.

. .

Mosaic ink was an easy one, and it allows for variable grid size as well as opacity. You can rack up some interesting effects with this one if you're creative.
_________________
NoOP / Reyn Time -- The $ is screwing everyone these days. (0xDB)
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9459
Location: Not Finland
PostPosted: Tue Oct 15, 2013 5:43 pm    Post subject: Reply with quote

I'm working on a very nice feature for Moai which will allow you to paste an image from one color background to another without trimming any anti-aliasing that's already been rasterized. I have a proof of concept working for cels on white or black backgrounds, with very promising results. I should be able to tweak the math a little and get what I want out of it. After that, I'll test it with colored backgrounds -- I'm certain it'll work just fine. I'm temporarily switching to a perceptual color space while the calculations are going on... neither RGB nor HSL/HSV are suited to this type of work. I had an early prototype going with HSL that did a lovely job picking out which pixels to operate on, but it didn't have enough data to accurately change their colors. The breakthrough came last night when I realized there were other color spaces I could use.

I'm really hoping this works as well as I want, because it's a damn nice feature to have.
_________________
NoOP / Reyn Time -- The $ is screwing everyone these days. (0xDB)
View user's profile Send private message Visit poster's website
Gil
Developer

Joined: 14 Nov 2005
Posts: 2341
Location: Belgium
PostPosted: Wed Oct 16, 2013 9:31 am    Post subject: Reply with quote

Just wanted to mention I read this blog religiously :)

I know there's not a lot of replies, so maybe that's something :)

Keep up the good work!
_________________
PoV: I had to wear pants today. Fo shame!
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9459
Location: Not Finland
PostPosted: Wed Oct 16, 2013 8:07 pm    Post subject: Reply with quote

Gil wrote:
Just wanted to mention I read this blog religiously :)


Religiously, you say? I'll be your pontiff any time. Lemme just get my pointy hat...

But yes, thank you! There are a lot of threads I want to pop in and yell "Yay that's cool!" but if I do it all the time the signal:noise ratio takes a nosedive ;) So I totally grok the sentiment.


So... progress. Good progress. Let's spell it out with a few pics.



Here's a doodle on a dark blue background. It's very soft at the edges, and has a modest amount of contrast. This will be a nice test subject.


I have taken the image and moved it to a colorful background, masking the dark blue color in the process. This... as we all expected, looks like shit. The edges, having already been blended into dark blue, don't mesh with the other colors.


Here's what it looks like when I pass it through the adaptive masking routine. Clearly a great improvement, even though if you look closely there's some work to be done with how the routine handles the final pixel's luminance values. I can see that's not being treated as well as it could. Still, for a second attempt this is way better than I was hoping for. With a little more experimentation I know I can make this into a useful tool. But for now... I need some sleep ;)
_________________
NoOP / Reyn Time -- The $ is screwing everyone these days. (0xDB)
View user's profile Send private message Visit poster's website
Gil
Developer

Joined: 14 Nov 2005
Posts: 2341
Location: Belgium
PostPosted: Thu Oct 17, 2013 8:45 am    Post subject: Reply with quote

Sirocco wrote:
There are a lot of threads I want to pop in and yell "Yay that's cool!" but if I do it all the time the signal:noise ratio takes a nosedive ;)
Exactly! Your thread gets bonus points for being the only one that makes sense on drugs/alcohol. All the pretty colors! :D

Seriously though, cool stuff, carry on :)
_________________
PoV: I had to wear pants today. Fo shame!
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9459
Location: Not Finland
PostPosted: Sun Oct 20, 2013 2:25 pm    Post subject: Reply with quote

I haven't been working on the masking thing recently, because of Real Life™.

It was both easy, and hard, and the hard part isn't over yet. There's two steps: detecting pixels to change, and actually changing them. The detection part was surprisingly easy. The changing part is being a pain, mostly because I want to do this with minimal input from the user, so I'm trying to teach the routine to figure out what the user probably wants.

And I'm not really getting anywhere with that.

I'm thinking of having two modes: simple, and advanced. Simple produces output similar to the above pic, and will work well when the difference in luminance between the old and new colors approaches either extreme. Advanced mode will allow you to specify an extra color. This should let me create a blend curve, or it may turn out linear. I haven't done enough experimentation yet. I get the feeling the optimal solution will be very simple.
_________________
NoOP / Reyn Time -- The $ is screwing everyone these days. (0xDB)
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9459
Location: Not Finland
PostPosted: Thu Nov 28, 2013 10:22 pm    Post subject: Reply with quote

I get the feeling 1.8 isn't going out this year. I've been working on something non-code-related that's very important to me, and the current version is a really solid editor so I'm not worried. I'd really like to get the adaptive masking working better before I commit to it, and that's going to take some effort -- or a random breakthrough (those things happen on occasion).

Just wanted to mention that, in case anyone was wondering what I've been up to lately.
_________________
NoOP / Reyn Time -- The $ is screwing everyone these days. (0xDB)
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9459
Location: Not Finland
PostPosted: Thu Mar 27, 2014 2:08 pm    Post subject: Reply with quote

I'm on a minor development kick and have picked this project back up for a little bit. I've been working on the bug list and have fixed a bunch of stuff this week. I'm thinking of releasing 1.8 in the near future, and leaving the adaptive masking for the next version (1.9). There were a lot of bugs in the animation routines, mostly dealing with how frames were cached. There are also a bunch of new tooltips and status bar tips that help guide you through things that may be non-obvious. I'd like to redo the tutorial from scratch.
_________________
NoOP / Reyn Time -- The $ is screwing everyone these days. (0xDB)
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9459
Location: Not Finland
PostPosted: Fri Mar 28, 2014 7:20 pm    Post subject: Reply with quote

Last night I went about fixing something that has been bothering me for a while.

The PNG spec allows for an alpha channel. That's all well and good. The spec warns that programs may have specific implementations for full-0 and full-255 value alpha channels, and that appears correct. I think there's an option to save without the alpha channel, but I haven't gotten that far yet -- and even if it did the lib I'm using doesn't let me specify.

So... without rambling too much, what's happening is that sometimes I save a PNG with a full-0 alpha channel, and programs behave quite... randomly... when it comes to loading them. The files themselves conform to the PNG spec, but when a program loads a PNG and sees a totally empty alpha channel it does one of two things:

1. It tries to be smart and disables alpha entirely.
2. It follows the spec and blanks the entire image.

In version 1.6 or thereabouts I began sanitizing input from the clipboard, because it behaves weirdly and I have no idea what I'm getting. So if I see a totally blank alpha channel I go full-255 on its ass just to be safe. Getting data into Moai is good, but getting it out is the problem. So now in 1.8 there is an option to warn the user if they are saving a PNG with an empty alpha channel. You can save the file as-is, cancel and fix it yourself, or have Moai fix it for you.

I'm still testing this out because the whole thing is rather annoying and odd.
_________________
NoOP / Reyn Time -- The $ is screwing everyone these days. (0xDB)
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9459
Location: Not Finland
PostPosted: Tue Apr 01, 2014 4:44 pm    Post subject: Reply with quote

I'm seriously considering freezing 1.8 with what I've got now and start release testing. I'll bump the adaptive masking to 1.9, and then I can shoot for a linux port at 2.0. Yeah, I actually said the L word. Imagine that.

I changed a fair bit of stuff under the hood for this release, so I need to be thorough in my testing.


Current changelist:

Code:

---------------------------------------------------------------------------------
Changes for 1.8
---------------------------------------------------------------------------------

[ NEW FEATURES ]

New Ink: Mosaic
New Ink: Retro
"Check for Updates" button added to About dialog box
Added Dec reading to color inspector
Workspaces are more difficult to break due to missing or damaged files
Empty Alpha Warning triggers when saving a PNG with an empty alpha channel


[ TWEAKS ]

Fixed color inspector behavior when hitting edge of screen
Added tooltips to animation playback buttons
Missing workspace frames are stubbed instead of being culled
Distance tool crosshairs now extend infinitely
Tooltips added to options menu
Zoom preview is hidden when jumping frames
Status bar displays instructions when using frame jump
Frame jump now clearly marks the frame you're jumping out of
The file browser filename window now has input focus by default
Width field in grid menu now has input focus by default
Help menu entries updated
Empty Alpha Warning added to options and help menu


[ BUG FIXES ]

Using distance tool after Cel xform tool displays garbage     (Problem since 1.6)
Picking up a rotated cel now shows distance moved             (Problem since 1.5)
Inserting frames no longer screws up animation selections     (Problem since 1.4)
Deleting frames no longer screws up animation selections      (Problem since 1.4)
Playback menu's minimized border wasn't transparent           (Problem since 1.4)
Scrolling now works in playback menu when called from hotkey  (Problem since 1.4)
Opening grid with hotkey can place garbage in input fields    (Problem since 1.4)
Changes to Current frame show up during animation playback    (Problem since 1.4)
Resizing current frame no longer b0rks animation playback     (Problem since 1.4)
Frame count matches displayed frame in animation playback     (Problem since 1.4)
Inserting a blank frame sets the camera to 0,0                (Problem since 1.3)
Mouse wheel no longer zooms in/out when jumping frames        (Problem since 1.0)
Using text tool with zero length string outputs garbage       (Problem since 1.0)
Percent display when stretching a cel zooms properly          (Problem since 1.0)
Filled/Hollow hotkey now works for R.POLY tool                (Problem since 1.0)

_________________
NoOP / Reyn Time -- The $ is screwing everyone these days. (0xDB)
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9459
Location: Not Finland
PostPosted: Thu Apr 03, 2014 6:39 pm    Post subject: Reply with quote

I've been running into a random crash bug that I think is an old issue that I never fixed. The debugger isn't giving me a particularly useful set of output to work with, but I'm reasonably certain it involves a state change in the middle of loading a new file or frame. It's not something I can reproduce on-demand -- it's a very rare crash.

There are three states within the framework: a pause state that stops major game/project logic, a halt state that stops all logic outside the framework, and a total_stop state that stops everything in the background.

What I'm doing now is making sure my resource changes are being made in a total_stop state. There is some rejiggering of bitmaps and pointers during frame changes (including loading a file) and if a background process tries to access that stuff at just the wrong time... at least that's my current line of thought on the matter.
_________________
NoOP / Reyn Time -- The $ is screwing everyone these days. (0xDB)
View user's profile Send private message Visit poster's website
Niunio Martinez
Contributor

Joined: 26 Nov 2013
Posts: 106

PostPosted: Fri Apr 11, 2014 1:24 am    Post subject: Reply with quote

I should download it and learn it. Does it work on Linux+Wine? I know that Allegro and Allegro.pas Demo games does so...
_________________
Under redaction...
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9459
Location: Not Finland
PostPosted: Fri Apr 11, 2014 9:21 pm    Post subject: Reply with quote

ñuño martínez wrote:
I should download it and learn it. Does it work on Linux+Wine? I know that Allegro and Allegro.pas Demo games does so...


Yes, I've gotten it to work in Ubuntu with wine. Performance was pretty good, too!
_________________
NoOP / Reyn Time -- The $ is screwing everyone these days. (0xDB)
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9459
Location: Not Finland
PostPosted: Sun May 18, 2014 5:24 pm    Post subject: Reply with quote

In my spare time I'm investigating what it takes to create a plugin system. Oddly enough, it appears that Animator used the POCO plugin system -- which really surprises the hell out of me. That program was truly far, far ahead of its time.

Perhaps in the future Moai will gain the ability to graft new ink or brush tools with a plugin system. At the very least, I'd like to take a stab at it.
_________________
NoOP / Reyn Time -- The $ is screwing everyone these days. (0xDB)
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 Previous  1, 2, 3 ... 25, 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.