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.)