brhfl.com

Another World

Is there a word for nostalgia, but bad? Kind of like how you can have a nightmare that is on one hand an objectively terrible experience, but on the other… fascinating, compelling even. When I was quite young, the household computer situation was a bit of a decentralized mess. I guess the Commodore 64 was the family computer, but it was essentially mine to learn 6510 ML and play Jumpman on. My sister had a Macintosh Quadra which I guess was largely for schoolwork, but it had a number of games on it that were positively unbelievable to my 8-bit trained eyes. Among these was the bane of my wee existence, Another World1.

I guess I’m about to give away a few spoilers, but they’re all from the first minute or so of punishment play. Another World begins with a cutscene where we learn that our protagonist is a physics professor named Lester who drives a Ferrari2. At this point, we realize we are dealing with a science fiction title. Lester starts doing some very professorly things on his computer, and then some lightning strikes his ARPANET wires or whatever and suddenly our protagonist is deep underwater! Some kind of sea monster grabs him, and… game over?! The cutscenes are rendered with the same beautifully polygonal rotoscoping as the rest of the game, so it’s entirely possible that you die several times watching this scene before grasping that you’re actually supposed to press buttons now.

This stressful memory came back hard upon recently purchasing a Switch and inexplicably making this year’s port of Another World my first purchase. Well, I guess it is explicable: ‘nostalgia, but bad.’ The frustrations of a game that will let you die if you simply do nothing within the first five seconds had not changed much from my childhood. This is a fundamental part of the experience; Another World is a game that wants you to die. It demands that you die. A lot. It’s a lovely game, and one that I’m sure a lot of folks remember (fondly or otherwise) from their Amigas and Macs, but I couldn’t help but think that this sort of trial-and-error experience really wouldn’t fly today if not for nostalgia3. Though I have to ask myself, how does this differ from, say, Limbo, another game that tricks you into death at every turn?

The next death in Another World is when little polygonal slug-looking things slip a claw into Lester’s leg, collapsing him. You have to kind of squish them just right, and it’s the first of many deadly puzzles that rely more on a very finicky sort of perfection rather than just a clever solution. Slightly further into the game, Lester faces a challenge that neatly sums up the whole problem: perfect positioning and perfect timing are required to dodge two screens worth of oddly-timed falling boulders. These moments are very reminiscent of the frustratingly exacting challenges in Dragon’s Lair, a point of inspiration for designer Éric Chahi4. I think this is where a modern take like Limbo feels less annoying in its murderous tendencies – you rarely die because you didn’t time something out to the nanosecond or position yourself on just the right pixel; you die because something crafty in the evil, evil environment outsmarted you.

This sort of thing seems to be a point of maturity for gaming in general. The aforementioned Jumpman was one of my favorite games back in the day, but it was painstakingly picky down to the pixel. Collision detection has eased up in modern times, and additional system resources give designers a lot more room to make challenges diverse and clever instead of simply difficult-by-any-means-necessary. Another World’s spiritual successor, Flashback5 definitely still had these moments, but by the time its 3D sequel, Fade to Black came out, things were much less picky.

I’m certain I beat both Flashback and Fade to Black, but I don’t think I ever had it in me to get through Another World. I guess this was part of why I jumped right on the Switch port. The game has won many battles, but I do intend to win the war. And the fact of the matter is, that for all my griping, it is still an incredibly enjoyable game. ‘Nostalgia, but bad’ certainly doesn’t mean that the game is bad, it means that the game forced all of my respective memories to be bad. The graphics have a unique quality about them6, and the sparse atmosphere feels very modern. The challenges are often interesting, even when they’re more technical than cerebral. It’s a game that I think is best experienced in short spurts, so as not to be consumed by the seemingly infinite tedium of frustrating deaths. It’s a product of its time, and must be treated as such. And while its demands certainly reveal its age, little else about it feels out of place on a portable console in 2018.


  1. Actually, it was Out of This World, the U.S. release title, but that really has little bearing on this story. ↩︎
  2. For some reason, Lester’s computer knows that he drives a Ferrari. And, like, really wants to make sure that you, the player, also know. It might be the most bizarre part of the game. ↩︎
  3. (But bad). ↩︎
  4. This whole session is worth watching. You can tell how much passion Chahi put into Another World, and the ways in which he made the visuals come together are very impressive (particularly if you have any retro hardware programming experience). ↩︎
  5. Flashback, too, has been ported to Switch. I’m sure I’m fated to own it as well. ↩︎
  6. Humorously, I had been thinking about Another World and Flashback within the past year as I played Ghost Trick: Phantom Detective on the DS. The art style is unique enough to me that my brain crawled back twenty-some years to that old Quadra. ↩︎

Part Time UFO

Somehow, I missed that HAL Laboratory (creators of the Kirby franchise) had broken into the mobile market earlier this year with the game Part Time UFO1. I tend to be oblivious to even these big mobile releases because I’m just generally not that into the mobile game scene2. Touch controls are limiting at best, and the market is saturated with free-to-play snares. If anybody is going to release a mobile gem, though, HAL is bound to, so I snatched this thing up as soon as I heard about it.

In Part Time UFO, you control a flying saucer (oddly reminiscent of UFO Kirby) with a claw-game-esque grabber attached to it. Every level has a bunch of objects, and a place to put them. Some of the objects are mandatory, others might net you extra points or help you meet a bonus goal. The primary goal is usually straightforward – put all of the important objects on the target, get five objects on the target, get the objects to fit a particular shape on the target, etc. Each stage additionally has three bonus goals. One is usually a timer, and the other two either involve stacking things perfectly, not dropping things, stacking more things than required, etc. The real trick comes from the fact that the target area is small, so you pretty much have to stack things. The physics of swinging something four times your size from a flaccid claw make this stacking less than simple.

The levels are adorably-themed, and the themes tend to influence the overall challenge. For instance, my least favorite are the ‘Lab’ levels, which require you to fit Tetris-like blocks into a precise shape – which feels like a bit much going on all at once. But this adds a nice bit of variety, I think there will be some themes that a given person really looks forward to unlocking more of, and some that are less captivating (though still enjoyable).

Points equate to money, and money can be used to buy new outfits for the UFO. Aside from being cute (and occasionally referential to other HAL properties – Kirby’s parasol comes to mind), these affect the control of the UFO in various ways. Certain challenges benefit more from some outfits than others, but generally it seems like you can pop one on that gives you a boost in control that makes you more comfortable, and just leave it. I made the mistake of buying a speedy outfit first, and became very quickly frustrated with the game.

Make no mistake, the game can be frustrating. But never to the point where it feels insurmountable or stops being fun. Part of it is probably just how charming and sweet the whole thing is. The challenges are goofy (stacking cheerleaders, balancing hamsters on a circus elephant, and of course placing cows onto a truck), and even when successfully completed, the end result is often uproarious. This is one thing I wish they had included – some kind of gallery feature of all your wacky stacks.

I haven’t completed the game yet, so I’m not sure how many levels there are. I definitely think it’s worth $43 – it’s just so joyful, well-polished, and fun – everything I expect from HAL. I do think the default controls – a fake analog stick and button type deal – are awful. That control scheme is bad enough for games in landscape orientation, but even with my tiny hands and Plus-sized phone, I could not figure out how to hold my phone so it would work. Fortunately there’s a one-handed control that’s a little bit awkward, but still streets ahead of the faux stick.


  1. Fighting the urge to write [sic] after every instance of the title. ↩︎
  2. I’m sure I’ve mentioned as much before, but I largely stick to ports of board games, point-and-click adventures, rogue-ish things (I hesitate to actually say roguelikes), and of course I’m still playing dress-up in Animal Crossing. ↩︎
  3. I’m glad they released a full, fixed-price game instead of doing some free-to-play nonsense. I’m also glad they priced it where they did. I personally think that Nintendo was justified in charging $10 for Super Mario Run, but that’s just not where the mobile market is, unfortunately. Hopefully HAL has hit the right balance here. ↩︎

Kakoune

I’m not writing this post in vim, which is really a rather odd concept for me. I’ve written quite a bit about vim in the past; it has been my most faithful writing companion for many years now. Part of the reason is its portability and POSIX inclusion – it (or its predecessor, vi) is likely already on a given system I’m using, and if it isn’t, I can get it there easily enough. But just as important is the fact that it’s a modal editor, where text manipulation is handled via its own grammar and not a collection of finger-twisting chords. There aren’t really many other modal editors out there, likely because of that first point – if you’re going to put the effort into learning such a thing, you may as well learn the one that’s on every system (and the one with thousands of user-created scripts, and the one where essentially any question imaginable is just a Google away…). So, I was a bit surprised when I learned about Kakoune, a modal editor that simply isn’t vim1.

Now, I’ve actually written a couple of recent posts in Kakoune so that I could get a decent feel for it, but I have no intention of leaving vim. I don’t know that I would recommend people learn it over vim, for the reasons mentioned in the previous paragraph. Though if those things were inconsequential to a potential user, Kakoune has some very interesting design ideas that I think would be more approachable to a new user. Heck, it even has a Clippy:

~                                                          ╭──╮   ╭───┤nop├────╮
~                                                          │  │   │ do nothing │
~                                                          @  @  ╭╰────────────╯
~                                                          ││ ││ │
~                                                          ││ ││ ╯
~                                                          │╰─╯│
~                                                          ╰───╯
nop          unset-option                                                      █
:nop            content/post/2018-06/kakoune.md 17:1 [+] prompt - client0@[2968]

Here are a few of my takeaways:

I guess there are far more negative points in that list than positives, but the truth is that the positives are really positive. Kakoune has done an incredible job of changing vim paradigms in ways that actually make a lot of sense. It’s a more modern, accessible, streamlined approach to modal editing. Streamlining even justifies several of my complaints – certainly the lack of a file browser, and probably the lack of splitting fall squarely under the Unix philosophy of Do One Thing and Do It Well. I’m going to continue to try to grok Kakoune a bit better, because even in my vim-centric world, I can envision situations where the more direct (yet still modal) interaction model of Kakoune would be incredibly beneficial to my efficiency.


  1. I know things like neovim exist. But they’re still ultimately based on vim (and/or vi, depending on how you want to look at it). Kakoune takes some cues from vim, but is absolutely its own thing. ↩︎

Solo play: Coffee Roaster

When I first wrote the ‘Solo play’ series, they were basically the top five solo board/card games that I was playing at the time, in order of preference. Adding to this series at this point is just adding more solo games that I love, the order isn’t particularly meaningful anymore.

Solo board games don’t seem to get a lot of distribution. Deep Space D-6 is still rather tricky to come by, SOS Titanic sells in the triple-digits on eBay, and it’s only recently that I managed to acquire a copy of Saashi and Saashi’s highly-regarded single-player bag-builder, Coffee Roaster. The game is accurately described by its title: you are roasting a batch of coffee beans over the course of however many turns you think you need, and then tasting the result to see how closely your roast matched the target.

Coffee Roaster is essentially played by pulling a handful of tokens out of a bag, potentially using some of them for some immediate and/or future benefits, increasing the roast level of any of the bean tokens that were pulled out, and then returning them to the bag. This is wonderfully thematic – the longer you take, the darker the overall roast becomes. Adding to this thematic element, useless moisture tokens evaporate (are pulled from the game) over time, before first and second crack phases occur yielding a more significant increase in roast level as well as adding harmful smoke tokens to the bag. The game is definitely on a timer, and while the effect-yielding flavor tokens allow you to play with time a bit by adjusting the roast, ultimately you need to be mindful of how dark your beans have gotten before you stop the roast and move on to the tasting (scoring) phase.

Scoring involves pulling tokens from the bag and placing them in a cup (which holds ten tokens) or on a tray (which holds either three or five, depending on whether or not you picked up the extra tray). You can stop at any time, but a major penalty is incurred for failing to fill the cup up to ten tokens. Whatever roast you’ve chosen has a target roast level, as well as flavor profile requirements. Again, all thematic to the point where my coffee-loving self was giddy over the little details.

The game has quite a few rules to get through; you absolutely want to read the rules start-to-finish before diving in. It can be a little bit easy to forget to do this or that, but for the most part the theme and artwork help guide you once you’re comfortable with the rules. There is one serious omission to this, however, and that relates to the aforementioned flavor profile tokens. Aside from leaving them in the bag to be used for scoring, these can be pulled out and played in order to achieve certain effects. As an example, I mentioned the extra tray, which you gain by sacrificing two flavor effect tokens while roasting. However, any time you give up a token in this way, there is an additional effect that controls the roast and must immediately be performed. One of the tokens turns (say) a single level two bean into two level one beans, one of them preserves the level of two beans, and the third turns (say) two level two beans into a single level four bean. The problem is that there’s no indication of this on the board, or the player aid. No indication that the effect must be performed, nor which effect goes with which token. It is really easy to forget to do this, and even if you remember, you probably need that page of the rulebook open to remind you which does what. This is my biggest complaint about the game, and I’ll be making myself an improved player aid to remedy it.

I really do love Coffee Roaster; though I haven’t gotten particularly good at it yet. Fortunately, once I do, there are a ton of ways to control the difficulty. Several levels of difficulty in beans, a three-round vs. single-round variant, there’s an on-board mechanism for tracking the roast that can be eschewed. There’s a lot of room to grow into this game, and I fully intend to do that.


Revisiting my Linux box

My Mac Pro gave up the ghost last week, so while I wait for that thing to be repaired, I’ve been spending more time on my Lenovo X220 running Ubuntu. While I do use it for writing fairly often, that doesn’t even require me to start X. Using it a bit more full-time essentially means firing up a web browser alongside whatever else I’m doing, which has led to some additional mucking around. For starters, I went ahead and updated the system to 16.04, which (touch wood) went very smoothly as has every Linux upgrade I’ve performed in the past couple of years. This used to be a terrifying prospect.

Updating things meant that the package list in apt also got refreshed, and I was a wee bit shocked to find that Hugo, the platform I use to generate this very blog, was horribly out of date. Onward to their website, and they recommend installing via Snapcraft, which feels like a completely inexplicable reinventing of the package management wheel1. Snapcraft is supposedly installed with Ubuntu 16.04, but not on a minimal system apparently, so I went and did that myself. Of course it has its own bin/ to track down and add to the ol’ $PATH, but whatever – Hugo was up to date. I think I sudoed a bit recklessly at one point, since some stuff ended up owned by root that shouldn’t have been, but that was an easy enough fix.

I run uzbl as a minimalist web browser, and have Chromium installed for something a bit more full-featured. I decided to install Firefox, since it is far less miserable of a browser than ever, and its keyboard navigation is far better than Chromium’s. Firefox runs well, and definitely fits better into my keyboard-focused setup, but there is one snag: PulseAudio. At some point, the Firefox team decided not to support ALSA directly, and it now relies on PulseAudio exclusively for audio. I can see small projects using PulseAudio as a crutch, but for a major product like Firefox it just feels lazy. PulseAudio is too heavy and battery-hungry, and I will not install it, so for the time being I’m just not watching videos and the like in Firefox. I did stumble upon the apulse project, but so far haven’t had luck with it.

I use i3 as my window manager, and I love it so much – when I’m not using this laptop as a regular machine, I forget how wonderful tiling window managers are. When I move to my cluttered Windows workspace at the office, I miss i3. Of course, I tend to have far more tasks to manage at work, but there’s just something to be said for the minimalist, keyboard-centric approach.

I had some issues with uxterm reporting $TERM as xterm and not xterm-256color, which I sorted out. A nice reminder that fiddling with .Xresources is a colossal pain. I’m used to mounting and unmounting things on darwin, and it took me a while to remember that udisksctl was the utility I was looking for. Either I hadn’t hopped on wireless since upgrading my router2, or the Ubuntu upgrade wiped out some settings, but I had to reconnect. wicd-curses is really kind of an ideal manager for wireless, no regrets in having opted for that path. I never got around to getting bluetooth set up, and a cursory glance suggests that there isn’t a curses-based solution out there. What else… oh, SDL is still a miserable exercise.

All in all, this setup still suits a certain subset of my needs very well. Linux seems to be getting less fiddly over time, though I still can’t imagine that the ‘year of desktop Linux’ is any closer to the horizon. I wouldn’t mind living in this environment, though I would still need software that’s only available on Mac/Win (like CC), and the idea of my main computer being a dual-boot that largely keeps me stuck in Windows is a bit of a downer. Perhaps my next experiment will be virtualization under this minimal install.


  1. I get what Snapcraft is and why Canonical is doing it. It definitely feels like it’s trying to accomplish too much, and there is no world in which I want my package manager running a daemon. ↩︎
  2. A while back, I upgraded my aging TP-Link to a Peplink Balance One. It is a phenomenal router that I cannot recommend enough. It’s small-business grade, and Peplink takes security and firmware updates very seriously. With all the router exploits out in the wild over the past year or so, they’ve been very quick to release statements as they investigate potential threats to their devices. ↩︎