Tuesday, July 28, 2020

Trademarking Infocom, again, part two

I posted yesterday about a company called SmartMonsters, who are running a port of (MIT) Zork in a MUD framework. They are trying to register the "Infocom" trademark.
But it turns out that someone else is trying to do the same thing. If you look at the URL infocom.xyz, you'll see a bare-bones site which claims "Infocom and the Infocom logo are trademarks of Infocom LLC." According to business records, Infocom LLC is a company formed in Colorado Springs in 2015.
Now, a US trademark search turns up no mention of this crew. And it looks like they've been claiming the "Infocom" trademark for years with no registration. But I am told that they are objecting to SmartMonsters' use of it. I don't really know how the trademark-tussling process works, so let's just say it's "in contention".
(I need hardly say that registering the Infocom trademark gives you no rights at all to the Infocom games. Those are covered by copyright, an entirely separate matter.)
So what are they doing with the trademark? The answer is a job posting that appeared last week:
In this position you will be provided with the source code for a proprietary assembler that consists of slightly under 4,000 lines of code. The source code you will study was written in assembly language to run on the TOPS-20 operating system on the PDP-10 mainframe computer. [...]
In this position you will play an important role by writing a functional specification document that describes the functions, program flow, error handling, and other information of the assembler that the person operating inside the clean room will need to know to develop a compatible replacement program. The replacement program is expected to be able to process the same input files and to generate bit-identical output files. [...]
The final specification will be made available under GPL-3.0-or-later. The software developed inside the clean room will be released under AGPL-3.0-or-later.
"Freelance Specification Writer" posted by Infocom LLC
This is an exact description of Infocom's ZAP assembler, which was part of their ZIL toolchain. (ZILCH turned ZIL code into Z-code assembly; ZAP turned the assembly into a Z-code game file.)
The source code in question turned up in the Infocom source-dump which appeared last year. Nobody noticed it right off. But a few months ago, a sharp-eyed user spotted ZAP buried in the MiniZork source directory.
The file "zap.mid" is MIDAS assembly code, an MIT variant of PDP-10 machine language. And it is indeed about 3800 lines long.
The job post describes a classical clean-room setup. You do this if you want to make a work-alike copy of someone else's program that isn't derived from their source code. The result does the same job -- "identical output", like the post says -- but you own it. This is legal because algorithms aren't copyrightable. (It may be ethically sketchy -- that's another whole question. But it's legal.) (Unless the algorithm is patented, but that's not the case here.)
So that's what this company is trying to do. The next question is, why? This is where my brain falls flat on the floor. And not just mine. I asked Jason Scott. He passed the word along to the old Infocom folks. Nobody, I mean nobody, can figure out what the point is.
The infocom.xyz site has two games up, which look like Lode Runner clones -- Linux only. This doesn't give much clue what line of business they're in, other than "not in it for the money".
(Yes, I sent them email, in case they were willing to tell me. They said "no further comment beyond what has already been made public.")
Let's be clear about what already exists. There are several open-source compilers that handle Z-code assembly. zasm does it; Inform 6 and ZILF both include the capability. We also have throrough descriptions of the Z-machine architecture, both Infocom's original document and the modern reconstruction. And of course there are dozens of open-source interpreters which play Z-code games.
All of these tools derive from the reverse-engineering work that went on in the late 1980s. The InfoTaskForce's seminal Z-code interpreter is archived here.
That was no kind of a "clean-room" project! The InfoTaskForce group dug into Infocom's proprietary games and interpreters, figured out how it all worked, and reimplemented it. (The Infocom spec document I linked didn't turn up until years later.) If Infocom, the original company, had wanted to make a legal issue of it in 1989, they probably could have. But they didn't.
After that, everything discovered by the ITF was public knowledge. The modern Z-machine spec (originally written by Graham Nelson) was a collation of that knowledge; Graham did not have to decompile Infocom interpreters. That spec has a Creative Common license (BY-SA-4, noted here). It's freely usable in every practical sense.
You can say that all modern Z-code/ZIL tools are "tainted evidence", due to the original ITF reverse-engineering. But it's a tenuous argument. And it still leaves the question of what you'd use a "less-tainted" ZAP assembler for.
Academic purposes? Studying Infocom's tools and processes is a worthwhile (and fascinating) goal. But it makes no sense to use a clean-room tool for that. You want to study every scrap of information available!
Compiling Infocom's ZIL source code for fun? There are plenty of people doing that already, using existing open-source tools. Some folks are even tackling bug fixes and modernization. (Yes, Activision's copyrights are a question here. The concensus is that volunteer updates to the source code are fan activity and basically okay. Don't go selling them, is all.)
Compiling Infocom's code for profit? A clean-room compiler or assembler doesn't give you any leverage there. You're still building a game file derived from proprietary source code. Again, selling it without Activision's permission would be right out.
Writing new, original ZIL games for fun? As I said, this is already a popular hobby. The forum is buzzing with ZIL programming chatter.
Writing new, original games for profit? I gotta tell you, ZIL is not the right tool for that job. Even if you think you're going to get rich off parser IF (tricky at best), you'll want a modern tool which can handle dense, highly-detailed games. Of all the Infocom alumni who revisited parser IF (Marc Blank, Mike Berlyn, Bob Bates), none of them chose ZIL.
For the sheer challenge of the hack? Maybe? But people usually don't put down money for that sort of fun. This setup involves hiring a documentation writer and a copyright lawyer, for a start.
So I'm left with nothing. My best guess is that they want to write unauthorized sequels to the Infocom canon, but they don't understand either the legal realities (a clean-room assembler gains you nothing) or the IF community. My second guess is that they want to contribute a legally unencumbered open-source tool, but they don't understand that this has no practical value. I dunno. They're certainly doing nothing to dispel the impression that they might have sketchy intentions.
On top of which, they consistently present themselves as "Infocom". Not "Infocom enthusiasts" or even "a new generation of Infocom". This tweet (from last year) is an eye-rolling example. I also see a discussion thread in which someone said they were (briefly) selling the old Infocom games without permission? I can't verify that, but jeez.
I guess we'll find out, or else they'll sink without a trace and we never will.

Monday, July 27, 2020

Trademarking Infocom, again, part one

It must be a Monday -- someone has trademarked "Infocom"!
No, this doesn't happen every Monday. But over the past twenty years, a surprising number of people have tried to register "Infocom" as a game-related trademark.
The original Infocom company trademarked their name in 1979. Activision purchased the company and the trademark in 1986. But, of course, the Infocom brand didn't last long after that. Activision allowed the trademark to lapse in 2002. (They let "Zork" lapse in 2003. Curiously, they renewed the trademark on "Return to Zork", which remains live today.)
This set off a weird slow-motion frenzy in which some Infocom fan or other would notice the dead trademark and try to do something with it.
  • Oliver Klaeffling filed a registration in 2007. He posted a web page for a game called Triumvirate, apparently a fan-sequel to Trinity. (I wrote about this in 2010.) The game never appeared.
  • Omni Consumer Products also filed a registration in 2007. This is a silly but real company run by Pete Hottelet. It sells real version of fictional products like Fight Club Soap and Stay Puft Marshmallows. Omni held onto the trademark until 2016.
  • Bob Bates, one of the original Infocom folks, filed a registration in 2017. This was shortly after his Thaumistry kickstarter. The game shipped that year, but the trademark registration was not completed.
And now, just a few months ago, a company called SmartMonsters has filed for it.
Interestingly, this registration only covers "online, non-downloadable" videogames. If you look at the SmartMonsters site, you'll see that it runs a set of old-school MUDs. By old-school, I mean they are strongly oriented around RPG-style stats, skills, and XP. This is what all MUDs were like before the "social" TinyMUD/MUSH/MOO tree branched off.
One of their available games is a port of Dungeon. It claims to be "mashed-up from several of the 1980s C ports". It's running in a MUD framework, but it's not multiplayer. It's also pretty alpha; I couldn't manage to take inventory or attack the troll.
The SmartMonsters people are clearly long-time MUD-and-IF folks. Their IF resources page links to IFDB, the forum, and a bunch of classic games (including mine). Their bio page describes co-founder Gary Smith as "...the guy who ported Zork from MDL to C on the PDP."
(I'll note that this is an unrecovered port! All the extant C versions of Zork/Dungeon are translated from Bob Supnik's Fortran version. I dropped SmartMonsters a note asking about it. They say Gary's C port is lost, but he might have a VisualBasic port lying around from the old days...)
I'm pleased to have stumbled across SmartMonsters. But that's not the weird part of this story! There's another company trying to pick up the Infocom trademark right now. I'll post about them tomorrow.
("How do you keep a dornbeast in suspense?")

Tuesday, July 14, 2020

Myst documentary kickstarter

Today's news: a documentary about Myst has popped up on Kickstarter.
This has been under way for a while. I mentioned last year that Philip Shane, the filmmaker, was wandering around Mysterium, talking to people and filming random "life among the Myst fans" footage. (So it's not impossible that I'll show up in the background of the documentary...)
The project goal is $200k, which will cover further filming at Cyan and other locations. According to the project page, Shane wants to visit the places where the Millers grew up, talk to people involved with the Mac and Hypercard (where Myst was originally built), tour the modern game industry looking for Myst followups and influences, and generally construct a very broad-spectrum view of the game and its context. The documentary is aimed to release at the end of 2022.
For more info on the documentary, and comments from Robyn and Rand Miller, see this VentureBeat article (published yesterday).
This offsets the bad news from earlier in the week: Firmament, Cyan's upcoming game, is delayed until probably 2022. Its original Kickstarter estimate date was mid-2020 -- this month -- but, well, game dev is game dev. Cyan's original notion of a medium-sized game and an 18-month dev cycle has grown into a "bigger story arc". On the up side, the documentary should be able to wrap with a view of the Firmament launch! Hopefully this will all dovetail into a Cyan media moment, as it were.

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.