Mechanical Turks: Alexis Kennedy on storytelling AI

Will AI replace narrative designers?

Alexis Kennedy knows a thing or two about writing for games, so his answer the question is informed and informative.

I’m not terribly worried. Procedural content generation can do a lot of things that writers and designers would otherwise have to do manually. But spreadsheets can do a lot of things that accountants and project managers would otherwise have to do manually. Spreadsheets haven’t yet made accountants and project managers obsolete. I mean in the end we’ll likely all of us become obsolete - machines will end up doing accountancy and project management and writing and neurosurgery - but we’re a long way from that.

More interestingly, he goes into detail about why he thinks that question gets asked, and what it can tell us about the value of writing. I’ll let you read it for yourself–its definitely worth it–but the key bit I want to focus on here is this:

So when a player wants more story in a game, what they actually often want is more interesting and novel things in the game. That’s not just a resource problem. It’s also a design problem.

This is a key insight.

Personally, I’m less interested in procedural generation that attempts to generate new content endlessly and more interested in tools that make it easier for designers to create flexible and expressive results.

The plot generators built for NaNoGenMo will continue to get more sophisticated, and may even be able to sustain an entire, readable novel someday soon…but even then, it will still be easier for a writer to seed an entirely different generator than it will be to adjust the first generator to output two kinds of ideas.Novelty is basically the inverse of pattern recognition, and humans are good at pattern recognition. Thus, humans do randomness badly, but novelty pretty well.

I’m more interested in procedural generation that acts as a support structure for that novelty. For example, if adding a new character to an interactive story means writing a lot of boilerplate reactions, a system that automates some of that detail or prompts the writer to fill it in will make it easier to make more characters in greater depth.

For that matter, a tool that detects obscure but valid configurations of the story elements and prompts the writer to expand them (or directs them to areas that need the most fleshing out) would be really useful.

http://www.gamesindustry.biz/articles/2016-12-15-mechanical-turks








Planetoids

From ProcJam 2016. By Tom Betts, of course.

This is a different approach to planet generation, compared to the more usual height-map based generators. I’m not quite sure which technique is being used here. Watching the generation it looks rather like WaveFunctionCollapse, in that it renders in bit by bit, but in what appears to be a more linear way. Some voxel-rendered 3D noise function? Metaballs? Marching Cubes? Whatever it is, it produces some quirky and unique planets.

https://tomnullpointer.itch.io/planet-maker






ANNALES

A NaNoGenMo chronicle of rulers and kings, by Mike Lynch, who also created A Mighty Host.

He’s written three blog posts about the details of how it works: a neural net generates the basic vocabulary for the names, which is used by a Haskell text generator that uses combinators to compose the generation, which is in turn invoked by an event generator that simulates events at the court.

The result is a nicely done generated historical record that reads about right. Mike says that he’d like to have had the chance to add more variety and details–which is par for the course in my NaNoGenMo experience. We’re gradually getting better as a group at composing readable prose with intent behind it, but there’s a lot of scaffolding to solve every year.

We’re getting closer to the point, I think, were people whose primary skill is interactive writing can participate without needing deep programming knowledge. Indeed, Tracery is close to being all the tools you need for that, though novel-length generation is not its forte. I look forward to seeing future literary efforts in NaNoGenMo—and not just because I want my next effort to have as much value in the writing as in programming. (There will, of course, always be space for more programming: that’s how we got these tools in the first place, after all.)

Mike’s reasons for using Haskell mirror my reasons for using Clojure for my first couple of NaNoGenMo novels, though the ecosystem was much less developed back then and Mike’s got some elegant-ish solutions to some of the problems I struggled with at the time.

The other interesting thing about generating a historical record is that it’s precisely the kind of thing that could be meaningfully incorporated into another generator. Any story can be used as backstory for another story, after all. Or expanded upon. And these sound like some interesting stories:

Reign of Genus Dan I.
Glude Game Pola I was spellbound.
Succession of Genus Dan I.
Willian, an exylophonetic man, adept at the use of the resisket, was promoted after having impressed Packley.

6.GD.I
In this year Visuanca, a dentric woman, mighty at the chase, was much spoken of.
Genus Dan I established the Temple of Lawchus.

12.GD.I
Genus Dan I married Lail with wild aumeorision.

Bull-Wattion, a man of humble birth, whose father sold waterwyrkey, was much spoken of after having bested the Pacive Potricari.

Interregnum.
Genus Dan I died of solomenicisy.
Now began the War of Entging, in which Bull-Wattion, Visuanca and Willian were joined.

INT.3
The forces of Visuanca and the warriors of Bull-Wattion met on the Bogs of Bamweol. Hundreds of soldiers died in harness.

Now the clay of Bull-Wattion leaves not those fields.

INT.4
Visuanca, allied with opetistic cherrious ringings, took the soldiers of Willian all unawares.

INT.5
Willian took the warriors of Visuanca all unawares.
Reports of neadocyres in Umpio.

Reign of Visuanca I.
The soldiers of Visuanca and the warriors of Willian met on the Meadows of Quear.

Countless men bedewed the grass.

A hungry coptet was the end of brave Willian.

Visuanca I was acclaimed princeps by triumph.

Rumours of gai psens in Passionopire.


https://github.com/spikelynch/annales




StackGAN: Text to Photo-realistic Image Synthesis

This isn’t the first text-description-to-image-generation research I’ve seen, which is a bit mind blowing to say. It does get the best-quality results that I’ve seen so far.

This research, by Han Zhang, Tao Xu, Hongsheng Li, Shaoting Zhang, Xiaolei Huang, Xiaogang Wang, and Dimitris Metaxas, uses a stack of neural networks to go from the text input to the generated-photo output.

Since the data is vectors, it can also interpolate between different sentences:

https://arxiv.org/abs/1612.03242














PulpMill 2016: Pulp Fantasy Novel Generator

One of my favorite projects to follow the development of during NaNoGenMo 2016 was the fantasy novel generator made by Joel Davis. It includes covers! And maps! And party members arguing!

While the individual books aren’t super in-depth, they’re each complete little adventures, with plots, foreshadowing, and fights with dragons.

Some excerpts from The Wizards by Erin Holloway (the prequel to the Award-winning Masterpiece The Wizards and the Hidden Dragons):

Ucajy reached the anvil. The forge glowed
red-hot even though it was abandoned for aeons.
He set the Sword of Cunot on the shining anvil. he
picked up the hammer. It was massive, but
seemed to weigh no more than a mulberry. Ucajy
yelled, screamed out an intense cry, venting all his
frustration and hopes and fears at the world and let
the hammer ring against the stone. The Sword of
Cunot was unchanged. He struck again. It seemed
to flex, to wobble. And finally the Sword of Cunot
shattered, splitting into a uncounted pieces.

Thrashern bought a round for the sailors at the
local tavern and asked about ships. A schooner
named The New Freedom was sailing to
Bloodgloss. The captain was a prancing sea dog
named Frahms.

“Sod off,” said Frahms, “The New Freedom’s
not for landlubbers like ya.” Ucajy mused, visited
a street market and ate some fried alligator. Purple
clouds hung across the sky.. Then, Thrashern saw
Frahms in a tavern. she bought the grumpy captain
enough whiskey to change their mind, even if they
had a little trouble recalling it the next day.

Ucajy and Vitis stopped in to a tavern. Warm
insects spun in the air. “Hey, I just…” Ucajy
trailed off. He shifted on the mire. “Are you
abusing spiritual authority?” he asked.

Vitis said, “I see it as more keeping a stiff
upper lip.”

“You’re using emotional or spiritual leverage
to exercise unhealthy control over others. It’s not
uncommon for a Thief.”, replied Ucajy.

“Is that how you see it? It’s just being brave
and clear in the face of adverse circumstances.”,
replied Vitis.

Ucajy wondered about the dusty air.

You can read the whole collection here:

https://github.com/joeld42/jbd_nanogenmo/raw/master/nanogenmo2016/sample/jbd_nanogenmo2016.pdf




Algorithmic Botany

Here’s one for @video-game-foliage: the rest of the website for the Biological Modeling and Visualization research group at the University of Calgary. If you want to know about generating plants (or just computational models of botany), they have a ton of research.

One I particularly like is TreeSketch, a research project for interactively creating and editing trees by Steven Longay, Adam Runions, Frédréric Boudon, and Przemyslaw Prusinkiewicz.

image

I get excited about this kind of use of generative processes. The tool both provides instant feedback of the generated result and allows the user to adjust it. I’ve talked a lot about flexibility: I think it’s one of the most important uses for procedural generation, particularly for practical use in the wider world.

Many current production practices are comparatively like a writing on a typewriter or carving a marble statue: while it’s a bit easier to undo a recent mistake, making the wrong decision and then discovering that it needs to be changed after it is already baked in is a costly process. In comparison, generative tools are like having a word processor: going back and adjusting an earlier assumption is not only possible, but expected.

There are existing tools that work something like this: Houdini for 3D modeling and animation, Substance Designer for textures. They use node-based interfaces to provide non-destructive editing capabilities. However, they primarily operate by adjusting the creation process, whereas TreeSketch operates by specifying a desired result.

This approach—operating on higher-level concepts while still allowing detailed adjustment of low-level results—is a very powerful process. Complete creative control and generative details are not mutually exclusive. This is key to applying generative tools to problems in medicine, construction, and other domains.

This doesn’t mean that every manual process will be replaced with a generative one: Bernini’s statues are still impressive centuries later, after all. Though, come to think of it, the much later Rodin used mass production as an intrinsic part of his work, suggesting that there’s room for the generative processes themselves to be the artistic medium.

http://algorithmicbotany.org/papers/







A Place To Wander

This ProcJam project by Luke O’Connor is a nice little terrain generator that makes landscapes you can wander around in, like the title says.

While the movement speed is a little fast to give it a sense of space, it’s at about the right speed for the interaction density. Not to mention that the entire thing was created for the jam, which is a lot of work on its own.

https://lukeoc.itch.io/a-place-to-wander




Captain’s Log (NaNoGenMo 2016)

There were several entries in NaNoGenMo 2016 that were inspired by Annals of the Parrigues. This project, by Eoin Noble, is one of them.

It tells the tale of a succession of captains sailing their ships from the ports used by the East India Company. The stories end badly, but they are stories, log entries of the happenings on the voyages: ships fought, bad and good winds, running low on rum…

https://github.com/eoinnoble/captains-log

https://eoinnoble.github.io/captains-log/output/captains-log.html








Fidelium Automata

An interactive cellular automaton god-sim.

I’m fond of cellular automata and artificial life, and this ProcJam project is all about that. As a cellular automaton, it is a good example of emergent complexity: simple rules, complicated result.

While there’s no conclusion I encountered, it does work as an example of adding interactivity to the artificial life simulation. I think there’s some genetic inheritance going on with the fusion ability, though it’s not always clear what the advantage is for using it. Still, it’s fun to play with.

https://kvel2d.itch.io/fidelium-automata








A Primer in Gont Poetics

You might remember Martin O'Leary from The Deserts of the West. This year’s NaNoGenMo project takes things in a different direction: alien poetry.

I find the inspiration for it especially interesting:

The idea was to generate an exegesis of alien poetry, inspired by the messages we send as attempts to communicate with alien life. I was struck by the gap which separates the scientific parts of these messages (basic mathematics and fundamental physics) with the cultural parts (the Voyager Golden Record begins with a recording of Bach’s Brandenburg Concerto No. 2).

When we learn a human language, we start from very human concepts (“how are you?”, “I have three brothers and one dog”). In contrast, communicating with aliens may mean building everything up from the hyperfine transition lines of a hydrogen atom. This means a very different experience of culture. Is it even possible to communicate across such a gap?

Of course, by alien here, I really mean computer. Modern machine learning techniques for language tasks are the equivalent of the old trope of aliens learning to speak English by watching old TV broadcasts. Can they really understand us that way? Or is the cultural gap too vast?

I’ve talked before about using algorithms as plots: Hannah and The Twelve-Disk Tower of Hanoi and The Seeker are a couple of the examples I’ve brought up. But, as A Primer in Gont Poetics makes clear, there’s also value in using the machine processes as conceptual inspiration.

https://github.com/mewo2/gontpoetics

https://github.com/mewo2/gontpoetics/raw/master/sample/book.pdf