Boxer

Developer diary: plans and progress reports.

Another peek behind the interface curtain Tuesday 20th April 2010

Having stabilized the code long enough to squeeze another build out, I’ve been trying my hand at making things for a bit instead of breaking things.

The last core feature yet to be reimplemented in Boxer 1.0 is game installation: AKA game importing, AKA making a new gamebox out of whatever you’ve got. I’d been flitting cautiously around this feature for a long time, like a thirsty yet apprehensive gazelle, while I figured out how to present it.

The story so far

In Boxer 0.8x, installing a game was as uncomplicated as could be. You dragged the game onto the "Drop games here" icon, and Boxer worked out what to do with it from there:

The problem

In a nutshell, was this: Boxer would decide entirely for itself what to do, and it would often get it wrong. It didn’t tell you what it was doing, or let you direct it otherwise, and when it screwed up you’d be left with a 300MB paperweight.

The solution

Simply, is a proper UI. The game installation process needs to tell you first how it thinks it should proceed, and let you adjust that decision based on what you know about the game. Ideally, offering you this control over the process should make the process seem less confusing and unreliable, not more so; and ideally, the default choice should still be right almost all of the time‚ so that you can trust Boxer to take care of things for you.

Well then

We start off with a dropzone, explaining what Boxer can eat. I’m of two minds about dropzones in UIs: they often make it harder to choose files than a simple Open panel, promising an awkward shuffle of Finder windows and swearing at one’s trackpad.

However, an Open panel always feels to me like directing a task, whereas dropping things onto a dropzone feels more like participating in a task, and I think that sense of involvement with the application is important.

In Boxer’s case, the game folder or volume is usually ready on the Desktop or close at hand in the Downloads folder, making drag-dropping fairly painless. And clicking directly on the dropzone will display a standard Open panel, for the cold of heart.

After dropping in the game folder to import, the dropzone slides to one side to become this import confirmation panel: showing you what’s getting imported, and where it will go.

The Change… button beneath the From icon displays an Open panel for choosing a different source folder. The Change… button beneath the To icon displays a Save panel for choosing the name and destination folder for the new gamebox. The destination folder defaults to your last saved location (usually DOS Games), and the initial name for the new gamebox is auto-generated from the source folder’s name.

In future, Boxer might automatically retrieve cover art for the game at this point; for now, you can at least drop your own cover art onto the nascent gamebox to replace the default gamebox icon.

Pushing the More Options button slides out these more specific import options: indicating just how Boxer thinks it should import the game, and letting you tweak its decision before proceeding.

The import panel remembers if you had toggled More Options, and keeps it open for you next time.

So there we have it

This is by no means the final interface, and it exists only in mockups at this stage. But I think it makes a good start on its goals: providing enough information and control over a tricky process, while retaining the simplicity that made this a killer feature in earlier Boxers.

What do you think? Post your insights, suggestions and criticisms in the comments!

Commentary

  1. The current (or 'old', I guess) system has always worked well for me, but that's not to say this doesn't look good. For what it's worth, I prefer the look of the above, and agree with the importance of participating in the installation task rather than just dropping something onto the old dropbox and hoping for the best.

    Many thanks for the work you do on this; it's great.

  2. This looks great! The only thing that isn't here that would be great, even for the first implementation, is the ability to manually set the cover art in "More Options". I don't care if it does it automatically, but it suck having to start the box I just created in order to do that.

  3. This looks great already. But I never saw the old system, that might be because it is an extra App, I just copied over the Boxer.app into my Applications folder. So, it would be great if this comes inside the Boxer.app i.e. drop a Folder or whatever on the Boxer.app and automatically open the import game stuff (without the need for a 2nd app).

  4. B1100101: This feature is a part of Boxer itself, not a separate application. It will probably respond to the old droplet icon that Boxers 0.88 and below created, but the functionality will be normally accessible from within Boxer itself.

    Dan: the idea I have is that you could drop your own cover art onto the gamebox icon to do that. I have yet to figure out a way to make that discoverable without adding clutter, however.

  5. the From and To icons both have a Change button, but you did not elaborate on both.

    Cover art could be addressed with the To Change button???

  6. Good point Chip, I’ve updated the original post to clarify what those two buttons do.

    I still feel that the best way to handle cover art is by making the icon into an image dropzone, the same way it works in the Inspector panel. The best way to indicate that you can do so may be to initially present the icon as a "Your photo here" image or a blueprint, instead of the default gamebox icon.

    [Addendum: While it would be possible to add some form of cover-art chooser UI into the Options area of a Save panel, in my opinion it’s not an appropriate place to piggyback additional file selection: it would mean you’re managing two tasks at once instead of just one. That said, maybe I just haven't seen this done successfully before.]

  7. Nice! Even better, really nice! I could be wrong but it looks that the space between the matrix and the popup button is less than 8px. Apple recommends 8px with the default matrix/popup size.

    Also, what about having a normal textured button with "Less Options" instead of a dark clicked "More Options" button? (when more options are displayed)

    The blue print/yourphotohere has my vote too!

  8. Looks amazing...Boxer is easily the most Mac-like emulator on OS X today. I wish you'd take over development of MAME OS X and the Bannister emulators...they need some lovin'.

  9. Well spotted Jef! the UI elements weren't well-aligned, and the layout has some fairly fundamental whitespace issues that make me unhappy.

    Once I've hacked up a live UI, I’ll play around with it and decide whether a More Options/Less Options toggle feels better than a push-in button.

    And thanks very much Brady - unfortunately there’s only one of me though ;) If I ever discover cloning then I’ll be all set.

    IIRC Richard Bannister added GLSL shader implementations of HQx and other scalers to his emulators - I may pick his brains about that (and steal any sourcecode that’s not nailed down), as I really want to replace DOSBox’s creakingly slow software scalers with hardware shaders.

  10. As a frequent user of your app, i thing it's getting better and better. Just one thing to add: I've already installed a great number of games. It would be fine, if you add under the "options" a way to enter a path for the cds already copied to my hard disk.

    My current "layout" in my games folder is the following: One games folder, and one cd folder for the game.

    Would be great if there is a possibility to import both in one step without reinstall the game.

  11. This new UI looks really slick, and I can't wait to try it out - yet I can't help but feel like "Drop Zone Fever" has infected many Mac apps since the rise of "Delicious Generation" apps like Disco and AppZapper.

    What I'd really like to see is more explicit support for DOS-based games purchased off of GOG.com or Steam. With GOG.com games, they usually come as folders, but often with extraneous material like an included DOSBox installation, associated DOSBox files, and other files associated with the Windows-based installer/uninstaller. As a possible idea, what if dropping a folder for a DOS game purchased from GOG brought up options for trimming these files out?

  12. RAMPANCY: I understand your concern, and that’s a source of the ambivalence I mentioned in the post – we'll see how well the interface works out in practice, and tweak from there. There’s empirical evidence from usability studies that drag-drop operations are more difficult for users to execute and certainly it should not be the only way to perform an action.

    Boxer 0.8x takes some additional steps to recognise and handle GOG’s game folders specially, though that doesn’t extend to dumping their baggage. I'll definitely put some thought into cleaning such files up—and there's really no need to make it an option, it’s something that everyone’s going to want.

    Besides that, Boxer should also adopt any GOG game icon in the folder, and it should extract the AUTOEXEC commands from GOG's conf file to make them into a batchfile (since some games need additional commandline parameters that are given in there.)

    Edit: Steam games are too difficult to manage in a generalized way though, because they have so many different distribution layouts and in many cases they just fuck the whole thing up by embedding DOSBOX in the game EXE, making the game unusable anywhere else. The most Boxer could do for them really is maintain a list of files (dosbox.exe, zmbv, *.dll, *.conf etc.) to strip out of any imported folder, and leave it at that.

  13. ALEX: I appreciate what you’re suggesting, however such an option would take away in simplicity more than it adds in flexibility.

    Boxer’s game importing workflow is optimised for two straightforward use cases: installing games from original media, and importing ready-to-play downloaded games. Both of these are well-defined and testable scenarios. Importing from a user's personal games archive isn't a third well-defined use case: it’s another two dozen highly idiosyncratic use cases.

    While it may seem simple and generic enough to add an interface for picking arbitrary folders to import as extra drives, the UI would then need to list each chosen drive with add/remove options, expose controls for what drive letter to import a drive as (often necessary in the case of pre-installed games), what kind of drive to make it into, and so on; it’s a lot of interface baggage for something that would only really be useful for one particular game archive layout.

    tl;dr version: I think adding new drives to a finished gamebox through Finder covers this particular use case a lot more flexibly than a dedicated interface could, and would require much the same skill level to operate.

  14. Looks very nice, as usual. My only nitpick is about the two "Change…"-buttons. They mean different things, but have the same name. Different things should be different. Maybe it's just me, but it doesn't seem terribly obvious what it is you change with these buttons. "Change source folder…" might be more appropriate for "From", and maybe "Change destination folder…" would be appropriate for "To". Still, then we get into the whole clutter vs. clarity ordeal. Mustn't let those buttons take over the interface.

    Another thought: changing the name of the gamebox might be as easy as clicking the name and entering another one, like when I rename a file in the finder.

  15. Good point Martin. What about "Change source…" and "Change destination…"?

Design by 40watt.