Sunday, March 22, 2020

Plague and the stories we tell

These days are strange territory. I keep looking for ways to understand it all. (Yes, to distract myself. I can't look straight at the news, but I can't look away either.)
I realized why it feels so strange. In this plague, if you catch it, other people die.
I'm middle-aged but healthy. COVID-19 probably won't kill me. It likely won't kill any of my friends. (My father lives in a different state. Let's not talk about your mother.) If we were all unaware, I'd be one of the people shopping as usual, gaming with my group, coughing a bit, and spreading the bug everywhere.
And we'd mostly be fine. Down with a nasty bug for a couple of weeks, but then fine. Except, also, millions of people would die. If everyone like me gets it, then everybody gets it, and 1% of everybody is a lot of people.
We don't have this story. We don't have a way to understand it. Or, we do, but it's called "mathematics" and people suck at it.
I grew up in the 80s. The science fiction of my time spoke of plague; the plague was AIDS. The moral of AIDS was simple. Do the wrong thing, and you die. Sin equals contamination equals death.
(Let me be clear: I'm not talking about AIDS or HIV in the real world. I'm talking about the stories we told each other about it. Even the queer authors, even the sympathetic stories. You might not have sinned, but you were still a person who Did It Wrong and there was no coming back.)
Of course the stories pulled in many directions. Greyscale; the Descolada; MutAIDS. In the computer age, the plague became an information virus: Vinge's Blight, Barnes's One True. Put a seductive smile on the infection and you get vampires and werewolves. But it is still a story about the unforgiveable act.
There were plague stories before AIDS. We remember the Plague, the Black Death, although we like to remember it safely in the past. (Its moral was even simpler: God is angry and everybody dies.) We have stories of measles, whooping cough, polio. You got them or you didn't, and then you got better or you died -- or you grew up sickly or paralyzed. Meningitis, rather than scarlet fever, probably struck Mary Ingalls blind, but it wasn't a punishment. Life was just like that.
Salk and Fleming changed life. Then AIDS changed it again, practically overnight. We grew up with the new plague and its inescapable moral. The treatments slowly caught up, but I think the language -- your choice, your consequence -- has remained pervasive.
But now the coronavirus. You get better (probably) and other people die.
(Even as I write this, the news shifts. The CDC says the young are at higher risk of hospitalization than we initially thought. Widespread testing in Iceland shows that half the infected never show symptoms at all. Even if you do the math, you're working off of fragmentary evidence.)
The sin is collective. The punishment is statistical. Your restaurant table (bar, game night, ...) is probably clean -- but the germ is on someone's table (doorknob, gas pump handle, ...). If everyone stays in, the risk is contained. If everybody goes out, the risk is 100%. The Prisoner's Dilemma and Kant's Categorical Imperative have ridden out of game theory papers and bestride the land on their pale horses.
We're trying to grapple with a world where the moral consequences are entirely collective. The language of AIDS -- that most personal of viruses -- is inadequate. "My ass, my decision, my risk" doesn't work any more. It's everyone's ass together. We're gonna need a bigger story.

If there is a bright spot -- a less-dark spot -- it is that we'll be able to compare stories. The virus is spreading across the world, but the distribution is so wildly uneven. The US has hot spots... some of which we know about. Others will become visible once serious testing gets underway. But it will be very clear which cities have their hospitals swamped and which don't (yet). We may even be able to tell stories about where an outbreak started. (Here in Boston, we say "Biogen conference" like Calvinists say "original sin". But it could have been PAX East, a day later and 100 times as many people...)
I have no pat ending to that thought. Watch the news, as best you can. Deny the liars and the self-deluders. Talk to people about what we're doing. Take walks -- being outdoors isn't inherently dangerous. Hug the people you live with.
Best wishes.

Saturday, February 29, 2020

Advent Door: a very small IF puzzle

A few months ago, some of us started tossing around the idea of a new collaborative IF project. Something like Cragne Manor, although more sensibly scaled. (That is: much smaller.)
The goal was an IF Advent Calendar -- pun intended! -- with one game for each day of Advent season. Since an Advent calendar has you opening a door each day, we'd create games in the old Planescape setting: Sigil, the "City of Doors".
The project wound up not coming together. So I'm posting my game on its own today. (A misplaced calendar day would turn up on February 29th, right?)
Advent Door is a snack-sized IF puzzle written in Inform 7. There's not much to it beyond the single puzzle. Imagine a series of games like this, each one ending at a planar portal that leads to the next game in the series.
The only other Advent Calendar game to be released -- as far as I know -- is Gateway of the Ferrets by Feneric.

Wednesday, February 19, 2020

Randomness with temperature

If you've messed around with neural net packages, or even read about them, you've probably encountered the idea of a "temperature parameter". This is usually described as some kind of chaos level. If the temperature is low, the algorithm is boring and sticks close to the source material. If the temperature is high, the algorithm can jump wildly in unexpected directions.
I think this is pretty cool -- no pun intended. It seems like it would be useful in all sorts of systems! For example, in a storylet-based narrative structure, you might want a temperature parameter in the selection engine. Lower temperatures mean the player gets storylets that are highly relevant to recent events. Higher temperatures mean the player gets a more random selection, more prone to non sequiturs and topic shifts.
In AI research this is called the softmax function (or "softargmax" if you want to be even nerdier). You can find lots of example code, but it's usually meant to run in the context of an AI algorithm. I couldn't find a version that worked on a weighted list of options.
So I wrote one. Here it is in Python 3. (Attached at the end of this post, or see this gist snippet.)

Monday, February 10, 2020

Numinous/Cyan announces Area Man Lives

It's been a busy weekend for me. (Did I mention that NarraScope 2020 is now open for early registration?) However, I have to catch up on new Cyan announcements too.
Numinous Games and Cyan Ventures have announced that they're publishing Area Man Lives. It's a VR-only mystery set in a small-town radio-drama world.
AML is a new take on an unfinished Numinous project called Untethered from a couple of years ago. Untethered was announced as an episodic VR experiment in late 2016. (It was an exclusive for the Google Daydream, a VR headset which made no impression on my memory or, I expect, on anybody else's.) Funding dried up a couple of years later and Untethered was shelved after delivering just two episodes.
Now they've hooked up with Cyan's publishing arm to rebuild the project for Quest, Rift, Vive, Index, and probably other VR sets. It's scheduled for this year -- presumably as a complete game, not episodic.
The game site is up, along with an in-character KQVR Radio site. (Which mentions a contest, and Cyan is never averse to a few ARG-ish shenanigans, so you might want to start poking around.) The press release is also good for a grin.

Thursday, February 6, 2020

Kentucky Route Zero: quick thoughts

It seems pointless to write a full review or deep analysis. Practically everybody reading this has (long since) played at least some of KR0, or else decided (long since) that they're not interested.
I picked up KR0 a week ago, the day the final act launched. I've been avoiding the game and all spoilers since 2013. "I'll play it when it's done," I said; that's what I did. Now I'm seven years behind on the discussion and I don't expect to catch up. I'm sure someone has a theory about what the brick sandwich represents -- if the authors haven't explained it all in a developer interview. You don't need mine. Which is good, because I don't have one.
But I suppose I have to say something. If nothing else, to repay the honor the designers have done me with that riff in Act 3. (Which was a complete and delightful surprise, by the way. Did anyone tell me that was going to happen? Maybe, but it would have been 2014 and I would have done my best not to remember the spoiler.)
I will, then, talk about the pacing.
(This will not be spoilery, except in describing some of the ways the game will surprise you. Okay, I guess that's somewhat spoilery. I won't get into any details though.)

Wednesday, January 22, 2020

Meanwhile 1.1.0 on Steam, Itch, and Mac App Store

I've posted an updated version of Meanwhile for Mac, Windows, and Linux. All versions have been updated on Steam and Itch.IO. (The iPhone/iPad version was updated last month.) And now, for the first time, the Mac version is available on the Mac App Store!
This is a very minor update. The only differences are that I've updated the Unity framework to Unity 2018.4, and the Mac version is now properly signed and notarized. You shouldn't see any differences in play.
(If you do, or if you have any trouble running the new version, please let me know!)
Meanwhile is Jason Shiga's classic choose-your-own-path comic book about mad science, global catastrophe, and happiness. 2020 is the tenth anniversary of the hardback publication of Meanwhile, and the ninth anniversary of the interactive app version! I'm really happy to still be supporting this excellently brain-bending comic after all these years.

Tuesday, January 14, 2020

2020 IGF nominees: adventure plus

We come to the last post. Maybe it should have been the first post. These are the games that are closest in shape to the classic adventure game... at first glance. But each one of these games climbs out of that shape and strikes out for the horizon. We'll see explorations of dialogue structure, explorations of narrative variation, fourth-wall games, interactivity tricks, topics far beyond the golden-age puzzle-hunt.
I'll confess that most of my favorite games of the IGF fall into this group. Then again, I've already said that the groups are a bit arbitrary.
  • Observation
  • Sunless Skies
  • Jenny LeClue - DetectivĂș
  • Afterparty
  • Mutazione
  • Over the Alps
  • Heaven's Vault
By the way, as I wrap up this review series, remember that I didn't play everything. I've commented on 29 games this week (!) but there are still scads of narrative nominees that I'm interested in trying. Night Call, Tales from Off-Peak City, Falcon Age, Guildlings, ... I could keep flipping through the list. And I will. Except more games keep coming out...
(Note once again: I was on the narrative jury and played free review copies of most of these games. I bought Sunless Skies, Heaven's Vault, and Observation. I played Over the Alps in my free trial month of Apple Arcade.)

Monday, January 13, 2020

2020 IGF nominees: interactive storybooks

Ever since Device 6, we've had this notion of a game category, but there hasn't been a label for it. I've started saying "interactive storybook"; I doubt that will catch on, but it's what I've got. It's characterized by text with whimsical interactions. No full simulated environment. Often puzzles.
Then there was Gorogoa, which is the same thing except wordless. So I say "interactive picturebook". That's broader, of course -- you could count Plug & Play, maybe even Hidden Folks. I'm willing to be fuzzy about it.
Quite a few of these this year! Here are my favorites:
  • Arrog
  • Song of Bloom
  • Alt-Frequencies
(Note: I was on the narrative jury and played free review copies of these games. Except Alt-Frequencies, which I bought and reviewed earlier in the year.)

Sunday, January 12, 2020

2020 IGF nominees: topical games

For your consideration: games that are engaged with the times. An arbitrary boundary, yes? Every narrative game is about something or it wouldn't have an audience.
These four games raise their social issues more explicitly. So I declare them a group. But, understand, the groups are somewhat arbitrary and I did a lot of juggling. Lionkiller and Divination almost wound up in this post -- they're certainly both political and politically aware. Go back and read about those games in the context of these four.
  • Eliza
  • Adventures With Anxiety!
  • Forgotten
  • American Election
(Note: I was on the narrative jury and played free review copies of these games. Except Eliza, which I bought earlier in the year.)

Saturday, January 11, 2020

2020 IGF nominees: puzzles

Now a quick break from narrative games. I enjoy puzzlers as well as story-based games. Of course plenty (most?) story games have some kind of puzzle element, but there's also the Portal-ish genre -- puzzle games with some kind of story element.
Both evolved from an era where we didn't distinguish the two genres so much. Didn't treat them as ends of an "adventure game" spectrum, anyway. Yes, I oversimplify; there have been pure-puzzle and pure-narrative/hypertext games since videogames began. But now we can talk about a cohesive Portal-like category: long sequences of puzzles iterating on a rich mechanic, depicting an immersive first-person environment but not much relying on the physicality or history of that world as a place. Think Talos Principle, Xing, that sort of game.
(I won't get into The Witness, which plays coy about the physicality and history of its island world! It rather deliberately walks both sides of this category boundary.)
Anyway, we got a fine selection of puzzle-focused games. Here are some notable examples.
  • Manifold Garden
  • Alucinod
  • The Sojourn
  • Kine
(Note: I was on the narrative jury and played a free review copy of Kine. The others I bought and played on my own.)

Thursday, January 9, 2020

2020 IGF nominees: Shakespeare

A short list today: it's games about Shakespeare and his world.
  • Elsinore
  • Astrologaster
(Note: I was on the narrative jury, but I bought these two games before IGF judging began.)

Wednesday, January 8, 2020

2020 IGF nominees: hit and miss

My next group of games are the ones that interested me, but didn't really work for me. I have to emphasize "for me"; each of these games had enthusiastic defenders in the judging discussion. So I want to point them out. But I will necessarily have more to say about what I disliked than about what I admire! So you might want to read more people's comments than just mine.
  • Ord.
  • DARQ
  • Divination
  • Anodyne 2: Return to Dust
(Note: I was on the narrative jury and played free review copies of these games. Except DARQ, which I bought earlier in the year.)

Tuesday, January 7, 2020

2020 IGF nominees: a good mood

The IGF finalists have been announced. 2019 was a heck of a game year, folks. There were so many brilliant narrative games rolling around jostling for attention like fuzzy puppies in a sandbox. Okay, some of them were grim and bitter fuzzy puppies, but we take all sorts.
My habit is to post reviews of the narrative finalists. This year that's spilling over into finalists for other categories. And entrants that weren't finalists but I still want to talk about them. And... It's going to take a while! I have reviews cued up; I'll do a post a day for the coming week. Or maybe a post every couple of days; we'll see how life runs.
It's no use trying to structure these reviews into a numbered countdown. Spoiler: my top-favorite games of 2019 were Baba Is You, Outer Wilds, and Heaven's Vault. Baba and OW won IGF awards during development (2018 and 2015 respectively) and weren't eligible this year. So my "top nominees" post would be "why Heaven's Vault is amazing", and I already wrote that review, right?
(A couple people have asked about Disco Elysium and Pathologic 2. Those games weren't on the entrant list either. I don't have any information on why not; I'd guess they just weren't submitted.)
Anyhow, this year, I'm breaking my list up into rough categories of form, subject, or style. First up: fuzzy puppies!
No, seriously. I played several games which were just good-natured, honestly and sincerely. They left me feeling good about myself and my life. This is a feeling which 2019 was desperately short on -- and 2020 looks to be headed downhill fast. So it's worth calling out the games that stood against the tide.
  • Eastshade
  • A Short Hike
  • We Met In May
  • Wide Ocean, Big Jacket
(Note: I was on the narrative jury and played free review copies of WOBJ and We Met In May. I bought Eastshade and A Short Hike earlier in the year.)

Wednesday, January 1, 2020

IosGlk, IosGlulxe, and IosFizmo are out of support

I regret to say that IosGlk, my iOS IF interpreter framework, has reached the end of its life cycle. This means that IosGlulxe and IosFizmo have too.
As a result, I will no longer update my Hadean Lands app for iOS. Same goes for the Heliopause, Shade, and Dreamhold apps.
To be clear: all of these apps still work; they're all still for sale. I last updated each of them in late 2018. They work fine on iOS 13. They should continue to work on iOS 14 and into the future.
Because Apple is Apple, there will someday be another App Store purge and these apps will disappear. I don't know when it will be. I'd put my nickel on 2024-ish. Who knows. Until then, by all means keep playing.
You may of course also play Heliopause, Shade, and Dreamhold in iOS Frotz, a terrific free interpreter which remains fully supported. Hadean Lands will also remain available on Steam and Itch.IO for as long as I can keep Lectrote working.
That's the status report for IF fans. Technical details follow. Jump now if you don't want to hear about tedious Objective C stuff.