De daemonici corporis fabrica

Dissect imps! Identify their mysterious procedurally-generated inner organs! Did Harry Potter have this much trouble learning magic? And was it this squishy and oozing?

Yanko Oliveira is back with a ProcJam project derived from the creature-summoning prototype. This time, you get to dissect those summoned imps and find out what squishy organs make them tick. Distill, sniff, and burn them to fulfill a morally questionable shopping list.

There’s also a blog post about how the organs were generated, in case you’re interested in the technical details.

The Vive version is reportedly in the works, in case you want to dissect imps in VR.

https://yanko.itch.io/dissection







A Book of Explanations (NaNoGenMo 2016)

NaNoGenMo 2016 has concluded, and there are dozens and dozens of new computer-generated novels to share with you.

Thanks to Ranjit “Moonmilk” Bhatnagar, we finally have an explanation for that question that’s been troubling you.

You can an explanation of how he did it on the project’s git repository, but the thing I really like here is how often the metre of the phrases meshes with the accidentally perfect answer. It works as a poem. The staccato rhythm of repeating “why…because…” is modulated by the rhyming.

Being sourced off of Twitter, some of the questions-and-answers are about as non-worksafe as you might expect, and the answers veer from the profound to the disturbed…

https://github.com/moonmilk/explanations/raw/master/explanations.pdf




David York’s Sprite Generator

There was a recent procedural generation jam called Gen Jam at GameNest in San Francisco.

David York made a sprite generator, based on Oryx’s character sprites. And then wrote about it. The palette swapping techniques are especially instructive if you have any plans to do similar sprite generation. (He also posted the code on GitHub, though you’ll have to supply your own base sprites.




Mark Johnson on Bloodborne, PCG, and the Unknowable

I’ve yet to play Bloodborne–it’s not on the PC, I’m still in the middle of playing through the first Dark Souls, and right now I’m trying to prevent the pirate ship in my NaNoGenMo novel from sailing around in circles–but Mark Johnson took some time out developing Ultima Ratio Regum to write about his reaction to the procedurally-generated bits of Bloodborne.

He’s probably one of the best people on the planet to talk about it right now, since as he says himself he’s spent the past few years building a generative system that is interesting to explore in the same way that From Software’s hand-crafted worlds are interesting to explore.

Generative content that creates deeper meaning is one of my long-standing interests, so this naturally interests me. The weaknesses Mark describes in the Bloodborne generator are more the pity because a Souls-like game seems to be the perfect venue for hiding a deeper structure within the generative content.

As I’ve mentioned in the past, I think that generating progression systems and new gameplay rules are some of the most underutilized areas of procedural generation, since they involve sculpting the systems behind the systems that make things. But generative content is an excellent interface to interact with a with a closed, hypertextual progression system, even if the hypertext isn’t dynamic.

To explain: many game narrative systems are basically hypertext, in the academic sense: text linked to other text. A fetch quest in an RPG is just a complicated way to click on the next link. And we’ve managed to spin some amazing results out of this relatively simple approach.

And generative content can been an effective interface to a hypertextual progression. The surface content presents the ever-changing challenge, while the deeper content gets gradually revealed, as in Moon Hunters.

image

Mark explicitly namechecks the Abyss and Pandemonium from Dungeon Crawl Stone Soup as good examples of infinite generation–examples I’ve used myself–and points out that some of the reasons why they work is because they’re nearly always hard for the player and because they’re framed as ever-changing, inherently chaotic places.

(Which seems to me would have been perfect for a Souls-game’s nightmare mode of cosmic horror: a level that morphs unpredictably as you play it, geometry oozing into existence: a complete inversion of the deliberately designed spaces in the rest of the game. But to make that really work might require the design from a different game entirely.)

Mark has a lot of other interesting insights, especially if you’re looking to incorporate generative content into your own game. You can read it here: http://www.ultimaratioregum.co.uk/game/2016/11/29/bloodborne-pcg-and-the-unknowable/ (contains spoilers for Bloodborne, naturally)










The Days Left Forebodings and Water 

NaNoGenMo 2016 still has a couple of days left to run, but there are already quite a few finished novels. Like this example of blackout poetry from Liza Daly.

“The Days Left Forebodings and Water” is based on a redaction of Mary Wollstonecraft, via Liza Daly’s Blackout tool.

While there have been blackout NaNoGenMo entires before, “The Days Left Forebodings and Water” has a very high level of artistry: it works on the image of the text, identifies words that match the parts of speech that fit the sentence pattern that it is looking for, and scribbles dynamically and aesthetically to cover the rest of the page.

The result combines the virtue of Oulipoian procedures that bring out the underlying meaning of a text by performing a process on it with the similar effect of blackout poetry. The machine understands the function of the words, but relies on the original text for their meaning, bringing out poetry that was there all along but no human could have seen.

In addition to being an arresting work in its own right, this generated novel reminds us that sometimes we can create new things by taking things away, rather than constructing them. Elision is a powerful tool, and sometimes what isn’t there can be more powerful than what is.

https://github.com/NaNoGenMo/2016/issues/119




Mike Cook on Moon Hunters and Procedural Space

Mike “ProcJam” Cook gets mentioned here frequently, partially because he does stuff like organize ProcJam and partially because he’s one of the people who talks about the “why” of procedural generation.

Today, it’s the latter that concerns us: In a post on the production blog for his in-progress procedurally-generated cyberpunk hacking game Rogue Process, Mike talks about what he’s learned from Moon Hunters.

Unlike most other procgen game stories, Moon Hunters deliberately tells the same story each time, but, as Mike points out, told in a different way, as if being told by a different storyteller. The mythological cycle repeats itself. At the same time, the different emphasis of the story is gated by which part of the generated space the player chooses to emphasize.

The generator, in effect, becomes a part of the story, almost a character within it. The framing matches the content.

By having different parts of the game locked away behind different gates, Moon Hunters takes what could have been a flat, bald story structure and turns it into something that can be explored in itself.

Mike also talks about how what he’s learn has influenced the design for Rogue Process. I think that creating an underlying structure to the generated content, allowing the player to anticipate some of the generator’s plans, is a very powerful creative principle.

(I’m attempting something a bit like that in my NaNoGenMo novel. We’ll see if I can pull it off within the span of the month.)

http://www.rogueprocess.run/2016/11/22/moon-hunters-procedural-space/




Perlin Noise

Today I’m thankful for Perlin Noise, without which my textures would have been a lot more boring.

I’m also thankful for all of the other kinds of noise, because you can never have too many kinds of noise to chose from and sometimes you need one with just the right properties.




Practical Low-Effort PCG: Tracery and data-oriented PCG authoring

Another video from the Roguelike Celebration, this time about Tracery. Kate Compton talks about her PCG-authoring tool and what people have done with it.

Which is one reason I keep mentioning Tracery: people keep making things with it. I’m even using it as part of my NaNoGenMo novel, to add variations at different levels.

But the other thing about this talk that I want to highlight is Kate’s call for more tools that are as accessible and easy to write new content in. With more ready-made screws in the toolkit, we can focus on writing with the tools (and building new tools on top of the old tools).

One thing that’s been exciting about watching the NaNoGenMo Resources threads is that every year the tools available get more robust and wide-ranging. Back in 2013, pulling books from project Gutenberg and finding sentences that used similar verbs was difficult. Today I can use word2vec, spaCy/textacy, and a Gutenberg Python library to comb through the texts. I’m looking forward to seeing what the next few years will bring.




Dwarf Fortress Design Inspirations - Zach and Tarn Adams

At the recent Roguelike Celebration, there were a lot of talks from developers of many famous Roguelikes. This talk, by the Adams brothers, is their chance to talk about the things that influenced the design of Dwarf Fortress.

Which makes for a deep dive into the history of roguelikes and procedural generation, highlighting a lot of features both famous and obscure that went into the heady mix that is Dwarf Fortress.

Among the mentioned games: Hack, Larn, Starflight, Ragnarok, and a lot of the Adams brothers’ early games.

https://www.youtube.com/watch?v=ZMRsScwdPcE




Personal Archipelago

Of all the ProcJam 2016 projects, this one is probably the closest one to mine, at least in form: it makes islands too. But it was made in the Pico8 fantasy console emulator, which makes its low-fi voxel output particularly impressive.

The seasons are a particularly clever way of turning the limitations of the console into a strength. The changing colors directly reflect the underlying architecture of the implementation, in a way that a more conventional generator wouldn’t have the data to take advantage of as easily. Sometimes less is more.

https://trasevol-dog.itch.io/personal-archipel