I’ve been thinking about interactive fiction lately — that’s “text adventures,” and “thinking about” doesn’t mean “playing when I should be doing something else” to nearly the extent you might think, because I’m not very good at them —
— anyway, for some reason I woke up this morning thinking about Emily Short‘s review of The Battle of Walcot Keep. Apparently tBoWK is a game, except not a very gamey one, that lets you wander around inspecting the titular battle; and what the game is mostly doing is keeping track of a ton of non-player characters and what they’re doing, using something called the Reactive Agent Planner. Short writes:
When the game does continue, there’s a page of output: it appears that every archer and swordsman has his own daemon, and they’re all busily doing their own thing. Each action is described on its own line. It’s impressive, in a way; it’s also totally bewildering. So much is going on that it’s hard to get a good sense of the action in total: which side is winning? who’s going where? Much of the time I have no idea. And sometimes the actions described are very repetitive and seemingly insignificant. For instance, a page of output includes a paragraph of this:
“A sturdy rebel man-at-arms cannot reach a thin royalist man-at-arms. A sturdy rebel man-at-arms cannot reach a thin royalist man-at-arms. A ruddy-faced rebel man-at-arms cannot reach a thin royalist man-at-arms. A pale rebel archer cannot reach a thin royalist man-at-arms.”
…one reason that I’ve never released a game using [the Reactive Agent Planner] is that I ran into trouble with the exact things that are issues in “Battle”: slow processing and the generation of dull, repetitive, or unidiomatic prose. The former problem can be a little alleviated by being less ambitious about the number of NPCs, but the latter problem is hard. I think the solution probably involves representing all the actions that are going to occur in a given turn as data, then running some algorithms on that data to discard anything too ineffective to be worth reporting, cluster related actions together into compound sentences and related sentences into paragraphs, introduce variations of phrasing, etc. Which would be a massive undertaking to write, frankly, even after you have a fully functional set of RAP routines for your NPCs. I don’t want to sound discouraging because I think that, if this were done *successfully*, the results would be mindblowing, and I hope the authors of “Battle” will continue to work on this problem.
Now this sounds unsatisfying. It also reminds me of Dwarf Fortress, which I’ve never played either, but which seems to generate chunks of bizarre prose in kind of a similar way. But the prose is weirdly hypnotic. Which made me think, is there any way to give a similar hypnotic quality to the kind of prose generated by tBoWK?
Maybe we can adapt an ancient, successful answer to this:
He struck at the projecting part of his helmet and drove the spear into his brow; the point of bronze pierced the bone, and darkness veiled his eyes; headlong as a tower he fell amid the press of the fight…. but he did not live to pay his parents for his rearing, for he was cut off untimely by the spear of mighty Ajax, who struck him in the breast by the right nipple as he was coming on among the foremost fighters; the spear went right through his shoulder, and he fell as a poplar that has grown straight and tall in a meadow by some mere, and its top is thick with branches…. His dart was not sped in vain, for it struck Democoon, the bastard son of Priam, who had come to him from Abydos, where he had charge of his father’s mares. Ulysses, infuriated by the death of his comrade, hit him with his spear on one temple, and the bronze point came through on the other side of his forehead. Thereon darkness veiled his eyes, and his armour rang rattling round him as he fell heavily to the ground.
I’m not sure if there are any of these Homeric tags for one warrior being unable to reach another — but it seems to me that a nice varied vocabulary of epic tags would go some way toward reducing the monotony of an extended battle scene with lots of repeated actions, and some way toward turning the monotony into something that might still be worth reading. [Though you’d probably still need some algorithm for cutting down the kind of passage Short quotes — if it’s too hard to aggregate descriptions as she suggests, maybe keep the focus tightly on a few surrounding NPCs. Or have a larger radius for more interesting actions — only report “X can’t reach Y” if X is very near you, but look further for reporting “X’s arrow pierces Y through the chest. Darkness veils Y’s eyes, and Y falls heavily to the ground, and Y’s armor rattles around him.”
And perhaps the usual IF descriptions could be thought of as Homeric tags? ”
You see an Achaean here.
The Achaean is flowing-haired and bronze-armored
The post title is taken from Emily Short’s column at GameSetWatch, besides the obvious.