Friday Facts #170 - Blueprint library GUI design and redesign

Hello. With Christmas nearly upon us, life in the office has slowed down nearly
to the point of complete hibernation. But we still bring you your scheduled
programme to give you something to look forward to in the next year.

For the past few weeks, I've been working on our shiny new blueprint library. We
already introduced the library in FFF 161, but to briefly recapitulate: The blueprint library is a place for you to keep your blueprints, and it does two
things for you:

Blueprints that you save in your library are saved on your computer, and when you load a new save, those blueprints are still available in your library.

In multiplayer games players can see each others blueprints and can exchange them easily.

What does the user experience?

My task with the library is to work on the GUI to make it nice and easy to use. Even though slpwnd said in FFF 161 that the UI is “(hopefully) intuitive to work with” – my initial reaction to the GUI was that it was a cruel and unusual punishment for our users.

One of my biggest gripes was that you had to open the blueprint and then click a button in order to copy it to the library. Getting a blueprint out was a similar process – open it, press a button and you get a blueprint item. On a certain level this made sense – items in the library are not items but rather special records – special in a way that they can be saved on the disk or sent over the network in multiplayer. From a UI point of view, however, it didn't make much sense.

With a bit of work, we've managed to make it so that you can simply move a blueprint from the library window into your hotbar like you would any other item. Converting the blueprint record into a blueprint item is handled mostly transparently.

This wasn't a completely trivial task (as if anything ever is): When copying a
blueprint out of the library into your inventory, it might be necessary to
actually download the blueprint from the player who owns the blueprint – and
that download can take some time. Our hope is that for most blueprints, the
download time won't be much, so the download will be able to complete by the
time the user moves the icon over its destination. For big blueprints, however,
this might be a problem. This problem is currently left unsolved – the library
is very much a work in progress at the current time – but it's likely that we'll
either display a progress bar in some corner of the screen, or we'll allow the
user to drop the item, but grey it out and display a progress bar over it.

Making things make sense

The library window itself has received a bit of a redesign since the last time we showed it in an FFF. Here is the current look of the library:

One of the changes is that it displays the blueprint name under its icon. Did
you know you could rename blueprints? You can, even in 0.14. Naming blueprints
will be very useful with the library, as you can stuff only so much information
into the preview icon to help you remember which blueprint is which.

Another big change is that we changed the library to a two-panel window. On the
right, you can see all of your blueprints – these are the ones that are saved on
your disk and follow you from save to save. They are also automatically shared
with others in an MP game. The left panel houses other players' blueprints, and
it's there you'll be able to get someone else's blueprint from.

A topic of great debate was what to do with the “Game Blueprints” section in
order to make it easy to understand what it's for and how it works. Game
Blueprints are blueprints associated with the save itself – they are useful for
save-specific blueprints that you don't want to drag along with you to every
save you play. They are also useful for server-specific setups: When a new
player joins an MP game, they can be directed to grab blueprints from this
section, rather than being told to hunt them from various other players (who may
not even be on at the time!).

I'm still not completely convinced that this is the correct place for Game
Blueprints to be. Game Blueprints are somewhat special in that they are tied to
a specific save, and in this sense, they don't belong to the left
panel. However, introducing a third panel would make the window too wide in my
opinion. The interface is still very much work in progress, though, and perhaps
we'll figure out an even better way to do it soon.

An actual expert

Seeing how much of a struggle a handful of GUI windows can mean for us, we've
been looking for a UI and UX designer. And as a bit of an early Christmas gift,
we actually found one! Say hello to Norbert, our official GUI guy.

Norbert is starting for real in January, but he has already spent a week with
us. During his week with us he was mostly getting to grips with the rest of the
team, but even so he managed to come up with an improved design for one of our
GUIs – the blueprint preview GUI.

This is the window you see when you first create a blueprint, or when you open a
blueprint item by right-clicking it. it really is the same as it always was, but
rearranged.

Remember how I told you earlier in this article you could rename blueprints? In
0.14, there is an icon next to the “Blueprint” title that looks like a refresh
button. That's how you rename it. Maybe it should not have taken a UI designer
to tell us that that was the wrong icon for the task, but at least someone
finally told us.

Another point Norbert made was that the old GUI didn't make it entirely clear
that you could select which icons would show up on the blueprint item in your
inventory. And while we're at it, why not make the preview icon larger so you
can see the icons better?

Like everything else, even this GUI is still a work in progress – the annoyingly
green tick mark icon is my own creation – Albert will make it look good once he
gets around to it, don't you worry. Still, I hope you will appreciate the
improvements being done, and maybe Factorio's GUI will be less quirky one day.

So let us know if you have any thoughts and opinions you'd like to share over on our forum.