Friday, July 13, 2018

A question about Magic the Gathering rules timing

Not a question about card effect timing, but about the timing of the development of the rules!
This nifty article just came orbiting through my Twitter stream, about the history of Magic's rules. It has some delightful quotes:
The timing of spells is occasionally rather tricky. -- MtG rules, Revised, April 1994
Usually, figuring out what happens first in Magic is pretty easy. -- MtG rules, Fourth Edition, April 1995
However, I want to ask about this claim from the blog post:
Which takes us to the end of our journey, 5th edition. 5th was released in march 1997, and at this time professional magic tournaments was thriving. Hence, any ambiguity of the previous rules had been cleaned up or removed. The rules for timing however were more complex than ever.
-- Magnus de Laval, blog post, August 2014
You know what else happened that month? The release of the first big MtG videogame. (MicroProse, March 1997.)
The videogame included most of the cards through Fourth Edition, but operated under the brand-new 5thE rules:
That's because in Shandalar, the rules used are the official interpretations supplied by Wizards of the Coast. These up-to-date rules are ruthlessly enforced, and there is no room for negotiation, argument, intimidation of your opponent, or weaseling your way through loopholes.
Tough luck, all you whiny rules lawyers.
This version of Magic: The Gathering enforces the official Fifth Edition rules.
-- MtG game manual, MicroProse, 1997
I'm not sure when development started on the game. But in 1996 and 1997, the WOTC designers must fielded a steady stream of haggard MicroProse developers asking "But how do you resolve this corner case? How do the timing rules really work?"
My long-held theory is that the clarifications and cleanups of 5thE are not so much because of the tournaments, but rather because of the effort of making the videogame behave consistently.
If you've played any modern board/card game with a computer implementation, like Ascension or RFTG, you know that the computer version quickly becomes "the real version" in your head. The easiest way to answer rules questions at Game Night is to say "The videogame does it this way." So my gut feeling is that MtG must have been the first big example of this.
But I don't know for sure. I only played a bit of MtG in the earliest days; I was never involved with the tournament scene.
Can anybody say more about this development history?
The next MtG rules update, Sixth Edition (April 1999), completely revamped the timing algorithm. Which we can fairly call an algorithm at that point! 6thE spell resolution uses a "stack", in the programming sense. So the computer paradigm obviously had an influence on its development. But that's a couple of years after the change I'm asking about.

Tuesday, June 26, 2018

IF in pop culture and back again (guest post at sub-Q)

I wax slightly rhapsodic over at sub-Q Magazine.
I just noticed an amusing synchrony. In the late 1970s, when Crowther and then Woods were writing the first parser game, a New Wave SF writer named George R. R. Martin was writing short stories about far-future humanity among the Thousand Worlds. I, very young, was a fan of both. (Nightflyers, 1980, is still a favorite story of mine.) Heliopause was inspired, in part, by Martin’s sense of unbounded human potential set against even vaster, time-swallowing depths of space.

Another bit of news: Ryan Veeder and Jenni Polodna are organizing a collaborative IF game in honor of Anchorhead.
A strong female character wanders the halls of a decrepit mansion. Her husband is in danger. She has to help him. Each room into which she points her flickering flashlight teems with arcane danger and unspeakable history. Each room has been designed and written by a different author.
They note that the initial response has been "very very positive", so why not make their life even harder by volunteering to write a room yourself? Sign up by July 6th.
You can, of course, buy Anchorhead itself on Steam or Itch.

Finally: remember, as if you could forget, that Meanwhile and Hadean Lands are both on sale on Steam (and also on until July 5th.

Thursday, June 21, 2018

Meanwhile and Hadean Lands: the summer sale!

That time has come around again: the time when you buy a stack of exciting games which you always meant to try!
(Or "that time when your to-play stack grows out of control", but I shouldn't lead with that, should I...)
What I mean is: Meanwhile and Hadean Lands are both discounted for the Steam Summer Sale! 50% off on Meanwhile, 25% off on HL. The sale runs for two weeks, as is Steam's invariable habit.
If you like your platforms independent and scratchy, both games are also on sale at Itch.IO. Both 50% off there, so that's a bonus for HL fans.
I suspect that most of my regular blog-readers already own both games -- thank you! But this is a fine time to spread the word about interactive fiction and experimental dynamic narrative. You don't even have to say "interactive fiction and experimental dynamic narrative". Just tell your friends about the wacky text games. One of them is illustrated! It's an unbeatable deal.

Tuesday, June 19, 2018

Heliopause, Memory Blocks

Announcements time!
Hoist Sail for the Heliopause and Home, a far-future parser IF piece, has been published by sub-Q magazine!
Heliopause isn't a new work -- I originally wrote it for @party in 2010. It's quite short, but I've always been rather proud of it. My thanks to Stewart Baker for offering to reprint it.
Speaking of sub-Q, I should mention that Anya DeNiro wrote an editorial there about my (even older) short game The Space Under the Window.
Keep an eye out for the next sub-Q editorial, written by me! That will be appearing next week.
Some memories fade, some memories break, and some memories outlive us.
It's Mysterious, so I'll just say that it's a Twine anthology project to which I contributed a small chapter. Organized by Priscilla Snow (also of Bravemule). Coming in September.

Sunday, June 3, 2018

IF titles: the next generation of generation

Many years ago, Juhana Leinonen wrote an IF name generator which mix-matched the titles of IF games:
  • Asteroid Synesthesia Factory
  • Ill The O Zone
  • Voices of Spoon Planet
  • Lethe Hobbit
  • The Quest Detective
This is "IF titles created by joining the beginning and end parts of random existing titles," to quote the author. The source code shows what's going on: it's taking a random number of words from the beginning of one title and a random number of words from the end of another, with some tweaks to avoid pulling just "The" or "A".
The result is very convincing. But this is 2018! Not only do we have neural nets, we have plug-and-play neural nets that any bozo can install.
I looked through some of Janelle Shane's blog posts -- she's been doing the lists of Pantone colors, D&D spell names, and so on which you might have seen. Obviously she knows what she's doing and gets excellent results out of her experiments. I do not know what I'm doing, so I probably got sub-par results. But they're still pretty great, so here's a list!
  • Hills of Paradise
  • Castle of the Impala
  • The School of Rock
  • The Door Drivers
  • The Volvil's Room
  • Guttersnipe: Sorcerors
  • Color the Demon Adventure
  • Vault of Survival
  • Il Das Etverra de Joie (Terror 1)
  • Playa Alley
  • The Dream Whore, Bubble Zefro
  • Smast of Imron
  • A Beginning of the Princess
  • Iramidic Text Adventure
  • Space Lust War Tale
  • El Sexter
  • Blackback
  • Friendly Doors
  • Shuce-Quest
  • Wolf: Spy to grind a codion
  • Gris e no pluu
  • The House of Zombrit
  • The Citch and the Dogs
  • The Heather Continences
This is pretty good stuff! I did a little bit of hand-selection, but this is most of one generator run, plus a few extras. (I couldn't resist The Heather Continences.) Most of my editing was to delete real titles like The Cube and All Things Devours.
Okay, so how did I do this? Content warning: the rest of this post is about Python code.

Monday, May 21, 2018

Least interesting update ever

Zarfhome now has a privacy policy. So does my personal web site. They're short.
Ironically, neither policy applies to this blog, because this blog is hosted by (which is Google). When you read this blog, or comment here, your interactions are governed by Google's privacy policy. Google doesn't pass any personal information along to me, unless you explicitly leave it in a blog comment.

UPDATE to add: Google has provided a notice for Blogger-hosted blogs, but I don't think it's showing up. Here it is:
This site uses cookies from Google to deliver its services and to analyze traffic. Your IP address and user-agent are shared with Google along with performance and security metrics to ensure quality of service, generate usage statistics, and to detect and address abuse. Learn more.

Monday, May 14, 2018

A partial solution to the Slack problem

A couple of months ago, you may recall, I wrote an open letter to Slack saying that they shouldn't shut down their IRC and XMPP gateways.
Slack sent me a nice reply saying that they had passed it along to their product team. I am sure that their product team read it, and nodded sympathetically, and then didn't change their minds. Slack is still shutting down those gateways on May 15th -- tomorrow.
This is not great, but I have a partial solution.
"...Holy beefwaffles, Zarf just wrote a Slack client?!" Yes! Sort of. Ish? I wrote a very small Slack client -- the most minimal app that could still be called an interactive Slack client.
Before I describe it, let me point out a few alternatives that already exist:
These are cool! They are not quite what I want. I want something that will sit in a terminal window and show all my favorite Slack channels -- just the important ones -- in chronological order. Yes, interleaved.
The point is that I never have to type in this window; I can just keep an eye on it. Conversations flow by. If I want to jump in, I can type a reply there (to any channel).
Of course, my client doesn't handle any of the fancy Slack features like threading, reactions, search, or file attachments. It's just a plain text stream. If I want to do anything more than that, I fire up the official Slack client and go to town.
This sounds like extra work. Okay, it is extra work. But I like having lightweight and heavyweight solutions to the same problem. I use three web browsers, for example, from plain-text Lynx up to full whiz-bang Javascript-enabled Safari.

But you're not here for my computer usage habits! You're here for the Slack client, so here's the repository. (Python3 code.)