authored content

Following up on the endless rhetoric re: No Man’s Sky and procgen’s place in the game design ecosystem, this week’s grep blog stumbled upon this quote from a call to make a Spore 2 sequel:

“Yet the sum is more than the parts, mostly due to the ability to subscribe to curated lists of creatures created by other users. Tick a few boxes [and] your world will then be populated by wondrous species. It inevitably leads to a planet (and eventually a galaxy) populated by creatures more interesting than anything procedural generation can yet generate.” –Graham Smith @RPS

This is truly an incredible claim from the editor-in-chief of a website that writes about video games, and speaks volumes of the state of the procgen debate generally.  Spore is one of the most procedurally generated games of all time, yet the output of this generation is attributed solely to the users who turned a few knobs on that generator?  What’s going on here?

(btw, ‘wondrous’ is a ponderous term to use when describing user generated content, since to me that word implies a grand unknowable thing akin to, say, the origin of the universe — or the machinations of a procedural algorithm — and maybe not so much this:)

2016-10-22_spore

It seems that there’s a general divide among players wanting designed content vs procedural.  That statement seems very obvious now that I’ve written it, but what I mean is, a majority of people want (need!) their content to be tailor-made specifically by a human and they implicitly reject anything procedural — at least internally, beknownst to their conscious mind or not.  And there’s lots of good reasons for this.

Neal Stephenson summarizes this perfectly in his brilliant essay “In The Beginning Was The Command Line” when he says, “Americans’ preference for mediated experiences is obvious enough.”

But later in the essay, I feel, Stephenson unknowingly presents us with a paradox:

In this world, artists are like the anonymous, illiterate stone carvers who built the great cathedrals of Europe and then faded away into unmarked graves in the churchyard. The cathedral as a whole is awesome and stirring in spite, and possibly because, of the fact that we have no idea who built it. When we walk through it we are communing not with individual stone carvers but with an entire culture.

Wait, who is he talking about here?  The indie roguelike player or the mainstream AAA player?  If people generally prefer grand works of art whose origin can’t be attributed to a specific person, doesn’t that sound very much in the realm of the procedural generator?

Spore is kind of an interesting test case for these ideas.  Going back to the RPS article:

“If you want to play a game where you can create a giant testicle that rules over the universe then this is the game for you,” begins a user review posted by someone yesterday who has played the game for 65 hours. It’s time to create a second game where you can do that.

I guess I was playing Spore wrong, because the most interesting aspects of that game to me were the procedurally generated parts.  (Which, btw, was the whole game! even the music!)  But I already know which side of the fence I fall on.  The fact that EA Maxis expended such an enormous amount of effort to create an entirely procedural game engine only to use it to promote the creation of authored content tells me that most people are on the other side of that fence.

I don’t mind that procgen will likely always play sidekick in support of intentionally designed gameplay experiences, but of course I prefer procedural games whenever possible.  A non-procedurally authored work can be greatly enjoyed but soon gets catalogued into the back of the mind and rarely evoked from then on, whereas a particularly well made procedural algorithm can dominate the motivations of a player for decades — and yet most players prefer the former.

Noting how roguelike players seem to be the most fervent and dedicated fans of their genre vs anything else I’ve ever seen (truly without exception), I wonder if the way in which a player perceives authorship is at the core of the schism between players who prefer procedural-first content and those who don’t.

[ I have to also wonder then, what does that say about roguelike players?  Why do we seem to prefer specifically UNauthored content?  Who is the author of a machine-assisted work anyways?  And who really owns a piece of content, the artist or the audience?  I think exploring these questions can perhaps lead to deep insights in game design. ]

grep ‐‐week 42

This week in procedural generation…

It’s Time For Spore 2
@rockpapershotgun
“Yet the sum is more than the parts, mostly due to the ability to subscribe to curated lists of creatures created by other users. Tick a few boxes [and] your world will then be populated by wondrous species. It inevitably leads to a planet (and eventually a galaxy) populated by creatures more interesting than anything procedural generation can yet generate.”  — Continuing the debate of the role of procedural generation.  My response to this article ended up requiring its own blog post.

Various Civilization VI Reviews
@wherever
With Civ6 upon us, I’ve yet to find a single mention of the procgen at the core of the Civ experience.  Interesting how Civ avoids this scrutiny compared to pretty much every other game since No Man’s Sky that clearly and openly uses procedural generation.  Why is procgen so invisible to the player in Civ?  Or is it just so well done in Civ that we don’t notice it anymore because the results feel so natural?

Probability Problems in Game Design
@game-wisdom
Some nice ideas about how to present random chance in games, like if RNG has a direct impact on winning or losing then all of the random factors involved should be explained thoroughly.  Hard to disagree, especially their point about Darkest Dungeon, which relies heavily on RNG but doesn’t explain it very well.  Personally I thought that this made the game feel fairly bland as a result, since the strategic choices of equipment and squad formation don’t reward the player by ever saying “yes, you made good decisions.”  The output randomness so greatly overwhelms the player input in terms of in-game feedback that it washed away the enjoyment of strategy.

How Zach Gage breaks all of the rules in Really Bad Chess
@gamasutra
Applying a bit of randomness to make a classic game like Chess more interesting.  Brilliant!

On permadeath and more
@keithbergun
I’ve recently started listening to podcasts, which I suppose I’ll share more of in some other post, but for starters here’s Keith Bergun of the Clockwork Game Design podcast discussing permadeath and other interesting things.

mazes

In last week’s grep blog I linked to a post on @gamasutra about algorithms for generating interesting mazes.  This weekend I was feeling inspired to finally get into some procgen coding, and I ended up creating a little Unity demo.  You can play it here in your browser:

WorldGen v0.1

procedural tilemap generator

After studying that maze article for a bit it didn’t take long to get the basic algorithm running, but initially I had no real ‘seed’ concept (my name for the grid coloring input used at the core of the algorithm).  I just had a hard-coded version of what the article calls a [2,0,2] grid coloring and totally random wall selection behavior.  From there I refactored it into a data structure so I could experiment with different seed types, but since it only supported single-cell tiles I couldn’t get anything really interesting out of it.

So I extended the seed structure to allow each tile to point to one other tile as its ‘parent’ tile.  Whenever the parent or child tile is evaluated in any part of the algorithm then the whole set of tiles is evaluated via a linked list.  To keep things simple I enforce some strict rules, like a child tile can only have one parent, and a parent tile cannot also be a child (e.g. limit of depth=1).

One fun part about how I implemented this in the data, is that the reference is stored as an offset of rows and columns.  This means that an edge tile of the seed can actually point outwards and link to tiles of adjacent seeds at generation time.  The two bottom seeds in the demo both take advantage of this, resulting in more complex and interesting output.

The article is very vague about the particulars of grid coloring, but after studying the examples I realized that as long as my seeds were square, and repeated in every direction, then I could guarantee that the requirements of the algorithm would always be met.  The four seeds in my demo were all derived from examples in the article, but now that I have a functional interface into the algorithm I think it would be fun to create a frontend for designing and testing seeds of all kinds.

2016-10-17_screenshot2
I can’t really share the entire demo project source, since I would have to post the RZG source along with it, so instead I generated a doxygen page for the procgen algorithm.  I tore out all of my engine-related code, but you could probably just stick it in a MonoBehaviour and get it running without too much effort.  Enjoy!

grep ‐‐week 41

Your weekly news aggregator…

John Carmack says VR devs are “coasting on novelty”
@gamesindustry.biz
“Find old-timers, anybody that worked on an Xbox or an original Gamecube or something like that, and tell them your minimum clock speed is 800 megahertz or something. They’ll say, ‘Megahertz?!'” — Carmack forever.

Algorithms for making more interesting mazes
@gamasutra.com
A dense and not terribly well-written article, but full of fantastic algorithms for generating interesting puzzles (with pictures!).  There’s probably endless ways to procedurally explore these ideas.

The self-destructing game of 1986
@polygon.com
Fascinating look at an early permadeath implementation, one which actually destroyed your copy of the game if you died.

IRDC New York 2016
@roguebasin.com
Still catching up on these massive info drops from IRDC (not to mention the Roguelike Celebration).  Here’s some homework for you: dive into this paper about how to algorithmically “examine the variety of generated levels and the impact of changing input parameters” on your level generators, as opposed to hitting ‘refresh’ a thousand times and saying to yourself, “eh, that seems alright.”

that great ui in the sky

2016-10-11_screenshot_ui