Every dev has heard about procedural generation by now. It's that great friend who can make thousands of different levels for our game everytime we boot our computer, saving us the huge work of designing every level individually. Many successful games( Minecraft, Spelunky, Nuclear Throne, etc ) wouldn't be as great without it and we do love using procedural generation to save time whenever we get the chance.
As awesome as this tool may be we're far away from reaching its full potential. We often limit ourselves to map generation 'cause that's what we have been watching for a long time, it's "easy", but we have yet to keep digging deeper for new ways to use it on our games.
We're now exploring the realms of procedurally generated narrative and its possibilities. "Shadow of Mordor"(and its Nemesis System) did a wonderful job at it, making the player feel like he is truly part of the world.
Meaningful player interaction with the game has always been the goal of many developers. We wanted to let the player change the story and the world, so we created complex dialog systems, gave them the freedom to kill most characters and created "huge" binary decisions where the user could choose to save or destroy a town, go to one place or another, etc.
It's like those "Choose your own adventure" books, either you make the choices meaningless or you'll need to spend at least x10 hours of what a regular project would take. In games we have almost mastered the art of disguising that players, from a narrative point of view, don't really matter that much in our creations.
In "Fallout 3" we could choose to save or destroy a town, while "Fable" was full of binary choices, however, all we could do in those games was to destroy a bunch of assets and change a few dialog lines, it looked like a huge decision but it wasn't that big of a deal after all; and you can't expect having many of those in your project or finishing it could take a lifetime.
Procedurally generated narrative is what can help us creating a game that keeps changing and where the player feels really involved; saving us 99% of the time that would take to develop every single choice the player can make. It's like having a "choose your own adventure" where you write down a bunch of rules and the book uses those statements to write each chapter.
We use procedural generation( or procedural evolution) to take an existing piece of data and change it based on a set of given rules. Just like Conway's game of life, where
the user enters some parameters (which represent a colony, flora or whatever we want it to be) and the computer calculates how those parameters would change in a give unit of time( using the rules we set).
It might sound easier than it actually is, in order to implement this system we need to create a logical model for what we're trying to re-create, which may require lots of rules and parameters depending on our goal. Implementing that algorithm is the job of the coder, but its creation should be done by a designer.
This is not a tool that should be used on every project, but it's something that can change the way we experience games in the future. I believe it's truly revolutionary and easy to use even by a small indie team. If you still haven't played "Shadow of Mordor" go and get it, you'll see how procedurally generated narrative makes the game more immersive than other products like GTA or TES, where more freedom is given to the player. I'm sure we'll keep seing innovative uses of procedural generation.
On future posts I'll discuss the implemention(on a basic level) and some ways to create these logical models that we use to evolve our data. Meanwhile, hit me on twitter or leave a comment here, I'm always around ;)