Boxer

Developer diary: plans and progress reports.

Posts tagged with “UI Design”

On Apps and App Stores Sunday 3rd April 2011

Judging from the discussion upon Boxer’s future post-1.0, passions run pretty high about the Mac App Store. This was originally a comment there, but I’m expanding it into a post of its own, as I want everyone’s thoughts upon it.

A necessary evil?

App Store skeptics: rest assured that I’m none too taken with the MAS either, and it doesn’t make my life as a developer any easier. The only reason I would stop distributing Boxer separately is if/when it gets simply too hard for me to maintain two separate distributions, and I plan to stick that out as long as possible.

However: the App Store’s not going anywhere, and it will eventually become the only port-of-call for most Mac users looking to find quality software. If Boxer is to be rescued from obscurity, then it needs to be available there sooner or later, however else it continues to be available.

Moreover, most of the restrictions Apple have placed on the behaviour of apps in the App Store make sense and are beneficial to the health of the OS. Private API usage is simply A Bad Idea; centralised application updates are A Good Idea (awkward though this currently is through the MAS); and fostering an overt concern over the physical arrangement of files on one's hard disk is an anachronism that belongs back in the 90s.

Whither DOS game storage?

To recap, Apple’s app store guidelines mandate that applications keep their supporting folders in ~/Library/Application Support/, and never create folders within the system’s folder space (Home, Documents, Applications etc.) without asking first. Currently Boxer’s default DOS Games folder location is ~/DOS Games/, which would have to change.

I fully recognise the usefulness of choosing the location of this folder—e.g. to be on an external disk or a Dropbox folder—and Boxer will continue to support this. But, it would be saner and safer for Boxer to default to a suitable Apple-friendly location automatically, and let you migrate it afterwards, rather than demanding up-front where and how you want to organise your collection. It’s worth noting that the only real reason Boxer does so now is to draw attention to the sample games it has given you.

One instance came to light post-1.0 of a user choosing their Documents folder itself as the game storage location, and Boxer overriding its icon and appearance as a result. Choosing a system folder is now prevented in Boxer 1.0.1, but this demonstrates how risky and error-prone it can be, to give users the choice of where to put required folders whose contents are controlled by an application.

Boxer's long-term plan is to offer an in-app game browser to work alongside the Finder model. The browser would unify the welcome, import and games-folder UIs; allow you quicker access to recent games; and allow you to display your DOS games by metadata: genre, publisher, year etc.

This is quite clearly Apple’s preferred approach for apps that deal with document-like objects, and would render their physical location irrelevant: which would be a necessity if their actual location is buried deep within a library folder and beyond the reach of Finder. As a further complication, OS X 10.7 Lion hides the Library folders altogether from Finder, and can optionally sandbox an app’s files so they don’t even live there anymore. This, I have grave reservations about.

Discuss.

The rise of the App Store distribution model, and the push towards an iOS-style sandboxed approach to the filesystem, are going to see a lot of pushback from Mac developers and Mac users alike in the coming year. As someone who grew up with the old paradigms, I’m reluctant to change and can’t tell to what extent the new paradigms will actually improve and simplify the Mac desktop experience.

My concern is to make sure Boxer continues to work the way the Mac works; but without alienating users who prefer the way the Mac used to work. Above all, I don’t want to discard the old when embracing the new—except where the old really did suck.

So, what do you think?

Inspector Gadget’s facelift Friday 30th July 2010

In this week’s episode, the Inspector panel gets some more sweet hot lovin’. Download the new build here, and read more below.

Meet the Mouse panel

Now that Boxer stores per-user-per-gamebox settings, we can have some much-needed tweaks for mouse behaviour:

This latter setting is vital for games where moving the mouse also moves the game view: Boxer’s regular behaviour can be frustrating as hell, if the game goes spinning or scrolling off into oblivion while you reach for a menu.

I’ve been humming and hawing for some time over how to present the option. It’s clear that it’s necessary, but it may be worth going further and making it the default; or making it Boxer-wide instead of per-gamebox, like rendering settings; or making it per-gamebox instead of per-user, like CPU settings. Time will tell where it should best live.

For the moment though, I feel that Boxer’s regular mouse behaviour does a good job for most games; and I find I only want to change it for one or two that misbehave. So for me, it strikes the best balance to have it as a per-user-per-gamebox option that’s disabled by default.

Now meet the (all grown-up) Drives panel

I’ve been primping and preening it to within an inch of its life. Besides aesthetic improvements, I’ve put in buttons to add, eject and manipulate drives, making the panel’s functionality more obvious and accessible.

The biggest addition though is the ability to import drives into the gamebox straight from the Drives panel. This copies an entire volume or disc image into the gamebox, so it comes along for the ride and gets mounted whenever you play the game.

Of course, this is just like Boxer 0.8x used to do when installing games, and will be a key feature of Boxer 1.0’s upcoming game installer too. It’s not often that you’ll need to use it outside of game installation; but I want to ensure that anything you can do during installation, you can do afterwards too.


What next?

This will hopefully be the last alpha build before Boxer 1.0 goes beta. That will be a Boxer feature-complete and mere weeks away from a final release. After one-and-a-half years, the time is nigh.

There’s two core features left to (re)implement before then: game installation, and the DOS Games folder. I’ll be working furiously through August to get these ready, and I’m very excited for what we’ll have to play with at the end of it.

The best-laid plans of mice and men Sunday 25th April 2010

An important usability problem has come up in this Boxer issue, and I’m belatedly considering how Boxer’s mouse handling should really work. My comment in the issue goes into more detail, but the short version is this:

Boxer’s windowed mouse handling sucks.

So what to do?

To me, the best solution is to go back to what DOSBox does: ignore the mouse altogether until its locked. Clicking the mouse inside the DOS view would lock it and Cmdclick (or CmdL) would unlock it. The statusbar would tell you what how to lock and unlock the mouse, so there’d be no how-the-hell-do-I-get-my-mouse-back confusion.

What do you think? Are there other better solutions? Ways to reduce the friction of the proposed solution? Please share your thoughts, here or in the issue itself!

Whatever solution is chosen would become the default for new and existing users. The current behaviour is still appropriate and natural for many programs (such as adventure games and productivity apps) but it’s broken enough of the time that it shouldn’t be the default; I’m ambivalent about continuing to offer it as an option, since that would complicate support (two separate application behaviours instead of one) and doing so means adding interface clutter.

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!

Design by 40watt.