Here's a thread about the sort of "invisible" desi...
# linking-together
i
Here's a thread about the sort of "invisible" design work that goes into making a video game feel wonderful to play. I can confidently say that visual programming languages would benefit tremendously from this sort of UI tuning, and that this effort is almost never spent. You see hints of it in Autodesk visual data manipulation tools (for shading and such), Houdini, Max/MSP (and not Pure Data, for reasons that will become immediately apparent when you hear my interview with Miller Puckette), and almost nowhere else. This sort of polish is the GUI equivalent of Elm's effort to have enviably good error messages. https://twitter.com/MattThorson/status/1238338574220546049
❤️ 6
👍 1
💯 1
👏🏽 5
c
I saw this thread and found it fascinating. His talk in level design is also excellent:

https://youtu.be/4RlpMhBKNr0

I’ve recently been learning to use Bitwig, and it’s the best designed, cleanest UI I’ve ever seen. The grid editor (a node graph thing) in particular is awesome. Some ideas from various graphical node languages, distilled into an incredibly functional UI for end users
👀 1
a
Yeah, there is a similar video of the game Dead cells too

https://youtu.be/LtBNffzWhf4

w
Actually, this kind of thing is quite common. Touchscreen interfaces (vending machines for instance) often have clickable areas that are larger than they look visually. Keyboard interfaces on smartphones are another example.
Designing GUI’s is not just about designing graphics, but also about designing interactions. This is much misunderstood, because interactions are “invisible”.
👍 1
i
Keyboard interfaces for smartphones and large clickable areas — those are great examples of the sorts of "invisible" design work I had in mind. They're common in interfaces intended for a broad range of users. Things like rich AppleScript or VoiceOver support on the Mac probably also count, but they're a little rarer (as @Edward de Jong / Beads Project noted in https://futureofcoding.slack.com/archives/C5T9GPWFL/p1584384429355300). What's specifically uncommon is this sort of UI polish in visual programming tools — Pure Data, Max/MSP, Origami, Quartz Composer, etc. A lot of folks beat up on those tools for being frustrating to use. I totally understand that feeling — it's the same feeling I get when I play a tight action platformer that doesn't have the subtle affordances a la Celeste.
I would love to see someone build a visual programming language with this sort of polish applied to the UI. / walks back down to the basement // hammering and whirring noises // ... /
💪 5
e
Brilliant design work on Celeste. I like how he created alternate paths that teach you some important thing so you don't get stuck. Getting stuck is a very frustrating thing, very common in games, and he really went the extra mile to make it a more broadly acceptable game. I don't know how the sales went, but i would guess very well.
i
Houdini's node editor is the only one i've used that comes close to that level of polish. Friends claim same things with custom demoscene tools
@Ivan Reese these types of "invisible tricks" are commonly known in game dev; do you know of a repository of similar ones for UI/UX?
for example, this article details all the nuance that goes into making a good PIE/marking menu: https://medium.com/@donhopkins/pie-menu-fud-and-misconceptions-be8afc49d870
and how people who implement them miss tiny details that completely ruin them (guilty of this)
i
(OT: I have several of that  🐍 logo sticker on my 100% Apple-based workspace. It's a good way to ward off the absence of chaos.)
I don't know of a good repository of those techniques because, as with game design, they tend to be "rediscovered" every time someone works on a new UI, whether for a game or program or whatever, doing their best to polish the hell out of it. There are common ideas that apply very generally (eg: Fitts's law), but what I see as missing is the very tightly-targeted micro-optimization of UX in ways very particular to a specific visual language. For instance, there should be polish applied to Max/MSP that is different from the polish applied to Pure Data since, although they are very similar when viewed from a distance, they are extremely dissimilar when you try to use both of them with virtuosity. This is why games are a good example. There's a rich spectrum of these techniques. At the most general level, for instance, it's widely known and very obvious that you should make sure the player's inputs aren't ever dropped. When designing a platformer, and studying other platformers, you'll quickly notice that the more successful ones carefully design the scale of the world around the movement of the player character — ledge heights are set based on jump height, for instance. If your platformer needs tight timing, adding some slack to the inputs (like the "coyote time" example for Celeste) is a technique passed around between game developers, and maybe written down in a few places, but not obvious just from playing other games. But then there are the techniques that only apply to the exact game you're making. There aren't any guides here. But if you spend enough time on it, you'll find them, and they'll make the difference between your game feeling good and feeling amazing. The first Halo, for instance, had an insane level of attention paid to the acceleration curves of the joysticks, and to the physics of the vehicles. They were tuned within an inch of their life. Playing other FPS games or other games with vehicles after playing Halo, you could definitely feel that something was off. Even today, good luck finding a game with vehicle physics that feel as good as Halo 1 from 20 years ago. A counter example — Death Stranding. That game seemingly has zero of this sort of polish applied. It feels terrible to play. But none of the tricks that made Halo feel that good would transfer to Death Stranding. It's up to each team to figure out exactly what polish to apply to the exact thing they're making. This is where it turns into more of an art than a science.
👍 2
i
yup yup; totally. it's a shame that there isn't like a cheat sheet/for dummies style guide or even post-mortems wr.t. specific language/interaction design scheme.
for example, the "invisible game design" is at least searchable and you can find lots of people talking about what they did to make the game feel goood
I tried that after that radial marker/PIE menu article and was impossible too find anything if it existed (problem exacerbated by desig ui/ux is more mainstream approachable to there was a lot of snake oil articles/products in the google query result)