Thursday, July 2, 2020

Followup on Apple Arcade

Back in September I wrote up my impressions on Apple Arcade's goals and where it might settle down.
Not long after that, I fired up my free trial month on the Arcade and started poking around. Which was fun! As always, I was most interested in short narrative games and clever puzzle toys. In that line, I was happy to discover Assemble With Care, What the Golf?, Card of Darkness, Over the Alps, Where Cards Fall, Tint, Discolored, and others.
(I'll also mention Manifold Garden, Neo Cab, and Mutazione. I played those three on PC, but they also fly the Arcade banner. Platforms should be tripping over each other to fund titles like those.)
At the end of my trial month, I let Arcade lapse. No regrets, no surprise. I'm not implacably opposed to subscription entertainment packages, but I'd rather pay for my fun (and spend my free time) a la carte. So far I've stuck to that plan. Yes, I watched Game of Thrones and Star Trek Discovery a year behind everyone else. Turns out I'm okay with that.
Now Apple Arcade hates me, right? I tried but didn't buy. I'm apparently not alone, either. This article just popped up:
Apple Inc. has shifted the strategy of its Apple Arcade gaming service, canceling contracts for some games in development while seeking other titles that it believes will better retain subscribers. [...] Apple is increasingly interested in titles that will keep users hooked, so subscribers stay beyond the free trial of the service [...].
For what it's worth, this fits with what I hear on the indie grapevine. So what does it mean for Arcade?
It's clear what it means for me: Apple Arcade doesn't want me back. It's jettisoning exactly the subgenres I care about. Myst/Room-style puzzlers (Discolored) are not meant to be replayed. Short narrative games or visual novels (Over the Alps, Neo Cab) may be worth two or three sessions to try different endings, but you're not going to sink hours into them every week. Puzzle collections like Tint can offer hundreds of levels, but honestly, I'm going to put them aside after twenty or fifty. (If it has only twenty or fifty more-focused levels, then I'll get completist about it.)
I'll occasionally get hooked on a roguelike or Brough-like (Card of Darkness), but that's rare.
No complaints! I declared that I wasn't in Arcade's target market; they turned elsewhere. Fair.
But it's a blow to the premium/unique/boutique brand that they launched with. Turns out, Arcade is chasing the same addiction-loop games as everybody else in the freemium market. Their fixed monthly fee precludes the worst "buy gems for your next move" abuses, but it's still the same genre. Games must be designed to hook you and maximize playtime.
In other words, no more Neo Cab, Mutazione, or Manifold Garden. Nothing like Monument Valley, either. Too bad for Apple.
This doesn't exactly match any of the imaginary futures in my post. Oh, my #2 was close: "Apple stops pumping money, continues curating a [narrow] list of games for Arcade." But I was thinking of curated premium games. Arcade has moved out of that space entirely. The games I care about are back where they were last year: poking hopefully at the smart indie publishers (mostly Annapurna), or trying to wangle deals with the other platform holders. (Sony, Microsoft, and Epic are still funding some interesting stuff. Nintendo is... still Nintendo. The Switch isn't completely played out yet for developers, which I admit surprises me.)
Those games are also appearing in the App Store, to be clear. Back in the fall, when Arcade was still launching five titles a week, the regular App Store got seriously quiet. But it's rebounded; my sort of stuff now pops up at the usual rate. (Song of Bloom, Samsara Room, The Almost Gone, If Found...)
Is Arcade a failure? It's certainly past its season of buzz. Nobody talks about Arcade any more. It will never again be the epicenter of exciting mobile games -- not unless Apple changes course yet again.
But look. Sometimes Apple puts up an unexciting product, lets it run long after everybody has written it off, adjusts it a few times, and then announces that it's making a zillion dollars a year. "Services" is now 22% of Apple's revenue. Maybe in a couple of years, Arcade will be an unstoppable powerhouse of... games I don't play much. Or maybe it will be quietly folded up and put away. I guess I'll post again when I know.

Wednesday, May 27, 2020

NarraScope starts tomorrow

I'm sure I don't have to remind you, but the streaming of NarraScope talks begins tomorrow at noon (Eastern time) on the NarraScope Twitch channel.
At 12:00 (Eastern) on Thursday we'll have Graham Nelson speaking on the future of Inform 7. Then at 5:00 pm, Chris Klimas and Stuart Moulthrop will talk about Twine's Chapbook format.
Sorry, we know it's confusing to have two talks -- with a gap between them! -- on the day before the formal conference kickoff. Thursday was supposed to be all workshops, and then stuff changed.
So, to be clear, tune in Thursday for the presentations on Inform 7 and Twine. Then come back Friday (noon Eastern) for our official opening micro-ceremony and Xalavier Nelson Jr.'s keynote address. Then it's wall-to-wall talks from noon to 6:30 pm (Eastern), every day from Friday the 29th through Thursday the 4th. That's eight straight days of NarraScope talks.
Q&A and session discussion will happen on our Discord. Conveniently, that's also the place to ask any questions which I forgot to answer in this post.

Sunday, May 24, 2020

Subcutanean and variations thereof

I have now finished reading two of Aaron Reed's Subcutanean. This is not a game; it is a novel generated from an algorithmic framework that allows every printed copy to be a different text. Thus it partakes of some aspects of game design (procedural generation, unique reader experience) but not others (no interactivity or player agency). This is interesting!
(I've read recensions 10881 and 10966, in case you're keeping track.)
Before I go winding off down corridors of theory, I should say that Subcutanean is an excellent short horror novel. Orion (or Ryan, or Ry) lives in an amorphous post-college group house, trying to figure out his crush-or-friendship with-or-on his housemate Niko. Then the two of them discover a hidden stairway leading down into the house's basement. The house shouldn't have a basement and "amorphous" shouldn't be this literal. Doors lead out into corridors, corridors lead to more doors, a sense of unreality begins to grow. And then the two start to catch glimpses of other explorers -- people who look like alternate versions of themselves.
The world of Downstairs starts creepy and gets creepier, and it reflects the uncertainty of Orion's headspace. The social world of queer-and-out is as hard to navigate as any psychogeographic underworld; Niko is the partner Orion doesn't know how to explore with. Then it all goes wrong -- wronger -- and I'll let you find out how it wraps up. Which may not, of course, be exactly how it wrapped up for me.
When I (or Aaron) says "a novel where no two copies are the same", you might imagine two structures. Either:
  • A branching story with two or four or sixteen different outcomes. Like a classic CYOA book except that the choices have been pre-selected for you at random. Or:
  • A traditional novel with a set storyline, but a lot of incidental details chosen at random. They turned left or right, they were startled by a screech or a burst of sparks, the carpet was beige or brown.
Subcutanean is neither of those. Or rather, it has bits of both: some details are randomized, and the story has a couple of significant variations of the climactic scene. (I saw two, anyhow.) But the overall shape of the story is under fairly firm control, and the details that vary aren't always the incidental ones.
The work is more interested in how the narrator can vary. Orion may be more laconic or more voluble; he may be an optimist or a pessimist; he may prefer slang or avoid it. He may be the sort of person who gets awkwardly drunk at parties or the sort who stays awkwardly sober. These choices are maintained throughout the text. Particular events may be inserted or omitted, or key details changed; but the system tracks these so that later scenes can reflect them back. Perhaps with an added sentence, perhaps with just a well-placed "again".
Aaron has documented this design and its hiccups in a development blog -- well worth a look either before or after you read the book. No spoilers.
The goal, obviously, is to create a text that reads as a coherent narrative, with all the large-and-small-scale push-and-flow that a traditional novel would provide. It doesn't always work perfectly; I ran into an obviously repeated anecdote in version 10966. But on the whole it's successful. (Aaron has done at least one round of bug fixes since then, so the problem I found may have been eradicated from future versions.)
I have to admit my bias here: I have a lifelong obsession with the Unbounded House of Many Doors. If you've played any amount of my work you realize this! Subcutanean is exactly what I want, except with an accelerating curve of wrongness and decay, which is not where I usually take it. Also, of course, the ramifying underground space calls back to a long history of much-loved games, from Wumpus and Adventure through to KR0 and the future.
As I said, the book shares some aspects of game design in a non-interactive context. Really, most narrative games have pieces that work like Subcutanean. A single NPC response is a non-interactive text -- a sentence or paragraph -- whose content varies depending on the prior history of your session. It's easy to focus on your immediate interactive choices: choose a dialogue option, get a response. But really, that response could be influenced by lots of factors, overt or invisible, random or contingent.
Subcutanean is that experience with the "invisible" and "random" knobs turned up and scaled to novel-length. You never make a choice; the text is printed and fixed. But then, in Heaven's Vault, not much of the narrative variation depends on choices you know you're making. And of course the book involves all the game-design problems of keeping a variable narrative experience within the intended bounds.
Subcutanean also produces that quintessentially game-ish response which I mentioned in my Heaven's Vault post. When you finish, you immediately want to start again and see how different it could have been. "I've seen the covers, now I can open the book." Happily (though also through necessity), the book is short enough to do this without feeling bogged down. Maybe I'll read a third copy pretty soon.
We are left with the question of whether Subcutanean is the only procgen novel that could be written. Sometimes an experimental narrative so perfectly marries form and content that it's hard to imagine what else could be done with the idea. The Monster at the End of This Book, for example. Or take Jason Shiga's Meanwhile. If you're going to iterate through variations of a narrative, learning more each time, you almost need time machines, memory loops, and the threat of total narrative collapse. (Outer Wilds is an interesting comparison here -- a very different story which is nonetheless drawn into many of the same tropes.)
So if you're going to write about variations of a narrator, do you need to set it in an infinite branching space with the growing threat of utter alienation? Surely not, but some of the choices do feel kind of inevitable.
Others were unexpected. Subcutanean plays with the idea of playing by its own rules. You want to believe that every version of the book is narrated by an Orion, one of the infinite number exploring the interconnected Downstairs. If I were writing such a story, that's absolutely what I'd do! But Aaron's book doesn't. Or maybe some subset of the texts do, but not the two I read: the rules of Downstairs aren't quite consistent between them. It's upsetting.
But then, it's horror. Your certainties are supposed to come unmoored.
It doesn't have to be horror. I hope more authors take on this sort of structure. Subcutanean doesn't have to be the only one. Narrative design is no longer an abstruse mysterious field; lots of writers have dabbled in both static and dynamic prose. I'd like to see the variation-novel become an established form. Get on it, folks.

Friday, May 22, 2020

Compiling for the Z-machine version 3

The Inform 6 compiler has been pretty stable for the past several years. It's still in active use as part of the Inform 7 toolset, but the I6 compiler hasn't changed much.
However, I've put in a few I6 updates over the past week. Exciting news? Maybe not for most of us, but these changes are important to people who are trying to write really old-fashioned Inform games.
Let me go back to the old days. (Jangly harp transition...) In 1979, when Infocom ported Zork to personal computers, they designed the famous Z-machine platform. It went through a couple of iterations, but by 1982 the "version 3" Z-machine was firmly established as Infocom's workhorse.
The V3 machine was tightly constrained in some ways. For example, it could only support 255 objects (counting rooms, items, scenery, NPCs, and the player!) But this was deliberate; it was intended to run on some really tiny computers like the TRS-80 and Commodore 64.
Infocom games got larger and more sophisticated, but they kept on stuffing them into V3. The Zork trilogy, Enchanter trilogy, Hitchhiker's, Planetfall... it wasn't until AMFV in 1985 that they had to design a V4 Z-machine. And even then they kept using V3 for any game that fit.
Mind you, the Infocom people didn't say "V3" and "V4" back in the day. They referred to V3 as "ZIP". V4 was "EZIP", for "Extended ZIP". Then "XZIP" (V5) came along in 1987, and "YZIP" (V6) in 1989. These updates allowed more objects and more content. They also added a parade of new features: bold/italic text, expanded status window, sound, timed input, and finally graphics.
But this only underlines that V3 was Infocom's standard technology. You used V3 unless you had some specific need for one of the larger, fancier platforms.

Jump forward (jangle jingle) to the "modern" era of 1993. The Z-machine has been reverse-engineered; we have open-source interpreters that support all versions. Graham Nelson releases Inform, a compiler which can generate Z-machine game files.
Inform let you write games for any version, but in practice, your choice was between V3 and V5. (V1/2 were too antiquated to bother with. V6 was a headache for reasons I won't get into here. And V4 was like V5 minus a few features; if your game outgrew V3, you might as well go straight to V5.)
But among Inform users, unlike Infocom, it was V5 that emerged as the "standard platform". If you look at the games/zcode directory on the IF Archive, there are over 300 .z5 games and just five .z3 games!
The reasons are obvious. Everybody had modern Mac/PC machines which could run the largest Z-code games with ease. Authors felt free to put more scenery, more detail, more responses into their games. In that atmosphere, the V3 limit of 255 objects really pinched. And the other V5 features were nice to have around. Most games didn't need sound or timed input, but bold and italic text always look good. Why not build your game on V5 and have all the amenities available, just in case?
(Then, in 1995, Graham Nelson's Jigsaw overflowed V5 and he had to invent V7 and V8 in a hurry. But never mind that.)
So Inform's V3 compiler code was barely ever tested after the mid-90s. And we know what happens to untested code: it breaks. A couple of bugs crept in and nobody noticed.
That is, not until 2020 (jingle bloop). A couple of projects are now working on Z-machine tools for retro machines. MetroCenter '84 and PunyInform are Inform libraries optimized for size; Ozmoo and Pitch Dark are Z-machine interpreters which run on the C-64 and Apple 2.
Running on that classic metal means embracing all the memory limitations which we forgot about in the 90s. Every object and every byte counts. V3 is once again the order of the day. And presto -- the bug reports started rolling in.
Okay, only two bug reports. The fixes were a couple of lines each. Now Inform 6 can compile V3 games again!
While I was in there, I added a feature which could be of additional help. I6 games can now contain "static arrays", whose data goes into ROM rather than RAM. (Yeah, the Z-machine has ROM and RAM. I'm simplifying a bit but that's the idea.)
Static arrays may not be a lot of help. I first considered this idea when I was working on Hadean Lands -- a game which was originally planned for the "limited hardware" of the iPhone. (This was back when mobile phones didn't have gigabytes of memory.) I knew HL's alchemy system would require a lot of data and I thought that putting it into ROM might be worthwhile. But, long story short, it turned out not to be. So I didn't do it. Until now.
(Before you ask: yes, Hadean Lands is written in Inform 7, and it uses the Glulx VM rather than the Z-machine. The I6 compiler is still part of the toolchain and the concept of static arrays applies equally well to Glulx ROM and RAM.)
So there's your history lesson of the week. I could have tweeted "Inform 6 bugs fixed", but this is more fun to read, I hope.

Tuesday, April 28, 2020

Historical rediscovery: Zarf's Old Time Religion search

Aaron Reed posted a request this morning, asking for examples of web-native text-based IF from the earlier days of the Internet. ("Before Twine", basically.)
He got a bunch of good answers. I'll pick out Kingdom of Loathing, Planetarium, the Eastgate catalog, and a half-serious mention of the Internet Oracle -- just to have something to link to. Read the Twitter thread for more. Feel free to throw in more.
One of the games suggested -- not by me! -- was my Praser 5 puzzle game. And this leads me down a bit of a rabbit-hole.
It's true that Praser 5 isn't exactly web-native. It was originally a bunch of files and directories living in a shared Unix filesystem at CMU. You'd look around by typing ls; the room description was just a blank file with a long name! The room showed you puzzles, and you could enter answers by running a program which lived in that directory. If you answered correctly, the program would notify me and I'd add you to the access list for the next directory. Yes, manually. It was just my friends at CMU.
This was a great solution for an "online" puzzle game in 1989. But a few years later, of course, we had the Web. So in early 1994, I reimplemented the whole thing as a web app. It was 2000 lines of C code (K&R, not ANSI!) and I ran it off my office machine at CMU. (I'd graduated and gotten a staff job at a CMU software project by then.) In 2005 I ported Praser 5 to Inform and made it available on my web site as a Java applet; in 2010 I updated that to use Parchment. So that's a potted history of P5 and its many lives on and off the Web.
But what does this have to do with religion? I hear you ask. Well, in that 1994-1995 period, I had other ideas for web apps. For example, some friends and I put together the first Internet Easter Egg Hunt. I only had one office machine, so the easiest way for me to add a new app was to recompile the P5 web server with some added functionality.
So, when P5 came up in discussion today, I peeked into my old source archive and saw a bunch of files. Hey, it's egg.c! That was where I implemented the Easter Egg Hunt! Wait, what's this file lyrics.Z?
I popped it up, just like you just did when you saw the hyperlink. And what is it? Six hundred verses of a filk song called "Gimme That Old Time Religion". Wikipedia says that it was popularized outside the SF/Usenet/Pagan world by Pete Seeger and Arlo Guthrie. I had forgotten that, but I must have heard their version on the radio growing up. (Mary Cliff's folk music program on WETA, every Saturday.)
Usenet and the early-Internet FTP sites carried lots of versions of the song. I downloaded all the ones I could find. My original site includes this credit:
Particular thanks to Ioseph of Locksley [...] for his immense collection of verses.
(Ioseph of Locksley was the SCA name of Joe Bethancourt. Bethancourt's web site claimed to have over 1000 OTR verses when last it was active. Obviously he kept on collecting 'em long after my project.)
But my web app wasn't just a page containing the lyrics. (75 kilobytes of text on a single web page? Probably would have crashed Netscape.) It was a search app. Honest-to-, er, honest real live case-insensitive keyword search. Not efficiently implemented by any means -- I'm cringing as I re-read this code. But it let you type the name of a deity or religion and get back a list of every verse which mentioned it. As you see, I even supported synonyms (search terms in {braces}) and "see also" links.
I implemented limits to prevent people from searching "a" and getting back the entire database. It would have crushed my server.
Today, of course, 75 kilobytes isn't even a sneeze. So browse all you like. The text-search facility in your browser is far better than anything I made available.
The original site also included this line:
Disclaimer: If you are offended by this page, don't read it.
"Political correctness" hadn't been trademarked by neo-Nazis back then, but it is true that the collection mentions a very great number of religions and deities with very little respect. Not to mention a lot of shallow offhand stereotypes and slurs. Back then, my attitude was "It's the Internet -- grow up." Well, I was young.
Now, of course, my attitude is "This is a historical artifact which was last updated in 1995, including chunks that go back to the 1970s. So, um, it is what it is."
I must say that the cross-section of cultural references is fascinating. Obviously a lot of the verses came straight from practictioners of off-beat religions. You can practically hear them singing "We're here, we're Pagan, get used to it." Quite a bit of deep-cut Pagan-community politics, too. And a lot of mockery of the televangelists of the era. Then you get into the sci-fi and fantasy in-jokes, and, well, it goes on for a while. In alphabetical order. (I can't remember if that part was my doing.)
Like I said, quite a historical rabbit-hole. Again, see Joe Bethancourt's Real OTR page for more on the history of this thing.
There is no verse about Zarf. Sorry.

Wednesday, April 15, 2020

Myst TV tidbit: A writer signs on

Here's the first sign of real progress since last June, when Cyan announced their new TV partnership with Village Roadshow.
The television adaptation of classic video game Myst has moved forward a level after X-Men: First Class writer Ashley Edward Miller signed on to the Village Roadshow Entertainment Group project. [...] Miller, who has also written and produced series including Terminator: The Sarah Connor Chronicles, Black Sails and Lore, will write the pilot and showrun the adaptation.
That's the entire story. To be clear, there is still no show in production. Writing a script is easy. Cyan has already written several.
Getting a TV-famous person on board to write your script, with the intent of being a showrunner, is more exciting, but there's nothing yet to showrun. It's still all just good intentions.
(I feel like I have to say this because Myst fans can be really enthusiastic about scraps of news. I try to be the voice of reality. Sorry folks.)
For what it's worth, I thought the Terminator TV show was terrific. I wish it had lasted more than two seasons. If the writer does half as well with the Myst franchise, this take on the saga will be worthwhile.

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
  • LIONKILLER
  • 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.