SketchMapMerge

Okay, I need your input people. You see, last weekend I implemented the warnings in the engine (I didn't post anything about it because there was nothing to show, which is what I'm getting at now). It's able to report whenever at least two sprites use the same name, and there is at least a sprite which is a child of of these (whichever source files these three sprites are located in), because then it's unclear which sprite is actually the parent of the child sprite, warning which I call "name collision"; it's also able to report if the same Extra2 value is used in more than one input file, as that could have undesired side effects (obviously, it won't warn you if this Extra2 value is only used by multiple sprites belonging to only one of the input files as that's pretty much the intended use of these Extra2 values), warning which I call "Extra2 collision". Along with the colliding value (parent name or Extra2 value), it reports the first sprites that prove the collision (either two parent and one child for the name collision, or two sprites from different source files for the Extra2 collision) with info about them such as name and location in the source file, and which source file they belong to of course, as well as the total number of sprites that are colliding (just the amount, it doesn't list all of the colliding sprites as you probably don't want a list of a gazillion sprites having the name "Sprite" because one of the input file includes a "Sprite.StupidName").

Now, when I set up to continue work on this today, I wondered what would be the best UI to report these warnings, and realised I didn't really know (it's not really a common UI case, and certainly not in the Apple HIGs ) Everything is important, from the way it's presented (probably in a window, but then how should I put the text) to the phrasing of the message. So, do you guys have any preference?

Huge red letters, flashing lights, and sirens 😛

Can you set it up so that all the warnings appears in a scrollable, copyable, text box? That would be easier then clicking through a bunch of pop-ups. It would also make it easy to copy it into TextEdit and turn it into a to-do list for fixing errors.

Yes, it's possible, and was thinking of something of the sort (it's something I did with ViewRLE in fact); this time I hope I can make the text only selectable. Now remains the problem of how to phrase it.

Ah, by the way, I've implemented regular layout of sprites (it's very easy to do), as well as access to the last two features for the CLI client. This means I'm somewhat done with stage 2 (right now, the warnings are reported - as cryptic numbers and names as text in Console.app), implementing actual reporting for warnings in going to be done as part of polishing the GUI in stage 3.

Well, I ended up implementing proper reporting first; the reason is simple: when I set to work on documenting the cryptic collision warning reporting for Edwards to be able to use my interim build (for Extra2 collision checking of Project Multi Sketch), it hit me full force that I needed to do something about it when I had trouble interpreting this cryptic stuff myself and had to check my source code to tell what was what. So I did it, for both clients (command-line and GUI), with different phrasing since they don't have the same limitations or display.

Posted Image
(a similar window exists for Extra2 collisions)

Oh, and by the way, you could think it's easy to display such an alert similar to the usual OSX alert windows. Yeah, sure.

Juste a quick note to let you know that my hard drive has apparently failed me (don't worry, all super-duper important things, including the SketchMap Merger/SketchMapMerge source were archived in my iPod Shuffle), so my internet access will be very limited in the next few days.

@zacha-pedro, on Aug 20 2007, 07:43 AM, said in SketchMapMerge:

Oh, and by the way, you could think it's easy to display such an alert similar to the usual OSX alert windows. Yeah, sure.

Heh, yeah I've noticed that. How do you get the bold text? The text options in Interface Builder are very limited.

For the bold, either you're doing a Carbon nib, in this case you can apply an Appearance constant to the static text in the nib (I think there is even the specific constant for the Alert window main text, this is from memory of course), but it is ignored on 10.3 and below, so if you want you thing to dsiplay correctly including on 10.3 and below, you'll have to apply that constant lanually in the program. Or you're doing a Cocoa nib, in which case the text (including in static text fields) is styled, you can just go to the Police menu and apply any formatting you like (including bold) to any sequence of characters inside the text field.

@zacha-pedro, on Aug 22 2007, 09:15 PM, said in SketchMapMerge:

Or you're doing a Cocoa nib, in which case the text (including in static text fields) is styled, you can just go to the Police menu and apply any formatting you like (including bold) to any sequence of characters inside the text field.

slaps forehead Gee, never thought that maybe I could format the text from the Format menu :rolleyes:. Oh well, thanks for telling me. Er, what's this about Police?

Gah, it's "Font" (in French it's "Police", I told ya it was from memory!)

Ah, I thought it might have been something like that but Tiger's translation widget told me Police just meant Organise.

I have a feature request that should be relatively simple to add but would -- I think -- improve the functionality of this tool a lot. In addition to "Renames", you should have "Re-extra2s", i.e. the ability to map an Extra2 value in one of the source files to a different Extra2 value in the output, thus allowing multiple independent instances of bosses/puzzles/whatever that rely on Extra2 messages.

I finally got my computer back

Just as I diagnosed, it was a hard drive issue, and in fact the guys were unable to successfully back it up. It took that long (nearly two months) as there was a shortage of available hard drives, in fact they hard to resort to using a 80GB hard drive (in place of the previous 60 GB one), not that I'm complaining of the larger capacity though... The next few days will be devoted to restoring whatever I had archived on my 1GB iPod Shuffle and listing what's saved and what's forever lost to digital paradise (or hell). Then I should be able to resume work based on the saved version, which dates from 1 month before the event (not much was done in that time, merely the better error reporting which should be easy to redo); interestingly my job is now over (since 30th of september) which means I should have time to work on this, but this means I'm out of job too so I have to look for one at the same time.

@zacha-pedro, on Oct 18 2007, 08:28 AM, said in SketchMapMerge:

I finally got my computer back

Yeesh. Remind me not to rely on non-U.S. Apple support, particularly when a long-awaited plug-in/editor is being developed on said computer. Between your two-month wait, and pipeline's wait during final development of ARPIA2, this is turning into something of a trend.

Er, anyway, I hope you didn't lose too much important stuff.

Edwards

Ouch, that sucks. Every time I read a story like this, I have to remind myself to back up more often.

I've suffered hard drive failure too, but fortunately, I caught it early and was able to get all my stuff off the drive. The telltales were rather obvious: the drive's bearing sounded awful and the computer slowed to a grinding halt, taking forever to load anything from disk.

SketchMapMerge is already a very useful tool. I wish you the best of luck in job hunting and finishing the GUI version!

Thanks for the support guys, I restored everything I had archived and reinstalled most of my software, and should be able to get back to work on SketchMap Merger now. One thing to note is that my Internet access is still pretty limited as I've moved in the meantime (btw, in France, and I suppose everywhere non-US, there is no Apple support per se, they delegate it -some would say outsource it- to AASPs).

To answer Neb, I'm indeed going to add renaming for Extra2s in the future.

Okay, I have advanced quite a bit on SketchMap Merger, to the point that it is feature-complete. I massively improved warning reporting (it reports info about all the sprites involved in a collision, with only an arbitrary safety limit at 100 sprites), as well as re-Extra2-ing (which I named Extra2 remapping). However, adding remapping has forced me to add yet another control, a list similar to the one for renames, for each source file. The UI was already cramped before, and now this requires me to use (and therefore learn how to use) tabs before I can release anything halfway-decent, even as a beta. So you'll have to wait for me to implement a tabbed interface (with everything it implies, in particular figuring out the best layout) before you can get your hands on a beta.

Hurrah! :laugh: Nice one ZP, can't wait for the next beta.

It's done!

After some time tinkering with Interface Builder (Apple's WYSIWYG tool for building UI), I succeeded in making the UI fit in a reasonably sized window, using things such as tabs (which are in fact real easy to use as a developer, tab switching is done automatically, the only problem being they need to be taken into account in the tabbing loop), and incidentally realizing that perhaps the numeric fields don't usually need to contain more than -9999 and thus I could shrink them; now the window is around half as tall as it was before. To see the UI, you'll have to download the app and try it out, it'll be a surprise! (okay, the real reason is that I'm posting this from a PC at work and I forgot to take a screenshot at home).

So, after doing that, and after fixing a mind-boggling number of small usability issues (like, making controls disabled when they should, makign sure valid data is entered, etc.) that I wanted to fix before releasing this to the public, even as a beta, I can finally release the first beta of SketchMap Merger, the GUI application version of SketchMapMerge. SkechMapMerge is still present, and has also been updated with the new features; both share the version number 1.0.0b2.

Before I let you download it, an important disclaimer: SketchMap Merger is 10.3 (Panther) and better only. It won't work at all on Jaguar (there is currently no check to prevent you from running it on 10.2, but there is no way it could possibly work correctly, so you'll probably get a cryptic error message), sorry about that for those of you still running it; SketchMap Merger relies too much on Cocoa improvements added in Panther for this restriction to change, ever. However, SketchMapMerge (the command-line version) runs very well on 10.2 (and even down to 10.0, though this has never been tested, and would make little sense anyway).

With that out of the way, you can go ahead and download it off my webspace now.

Remember, this is a beta, there are still things to improve and I'm expecting feedback from you folks. Please read the ReadMe for more info about testing.

Just tested it, it's awesome ZP! Congratulations, you've really outdone yourself with this superb tool. Finally I can string together all those tiny maps I never finished into one fractionally larger map. 😄

The only thing I can suggest is to have an automatic .SketchMap extension when you save files.

This is an impressive achievement, ZP! I'm very happy for you!

You're inspiring me to get my butt in gear and release the refreshed CAE. The SketchFighter community is withering slowly, but it's stuff like this that gives me hope for the future. 😛