Originally posted on the Rogue Process dev blog.
Today I want to talk about Moon Hunters, which is an action RPG by Kitfox Games that came out earlier this year, and recently had a huge free content update. I've been meaning to talk about this game for months, and I'm only getting around to it now, but here's my advice: if you like procedural generation or are interested in thinking about procedural generation, I think you should get this game. It's beautiful, it sounds great, it's charming but most importantly I think it has something to say about how procedural generation can be used in a game, and it's helped inspired some of the generators at work in Rogue Process. Today I'm going to tell you how!
In Moon Hunters you play as a heroic adventurer, and go on a journey through five days of world-changing events. Each day of the story you choose to travel to a new part of the procedurally generated world map, which generates a level full of monsters, treasure, and some unique optional encounters that might give you a reward or pose a problem. You explore this level, fighting and talking as you wish, and then camp overnight. At the end of the five days there's a big fight, and win or lose the story concludes with a summary of your choices, characterising your hero based on what you did and adding them to a pantheon of mythological heroes. You might unlock some new characters or costumes along the way, and if you're lucky you'll unlock a constellation in the night sky, revealing more of the game's story and themes.
When you play Spelunky, or Risk of Rain, or most procedurally generated games, the implication is that each time is a fresh run through the world. Games like Nethack even write this into their lore. This means that while the player can learn about the content of the game, there's no real connection between the first time you play the game and the tenth, or my first time playing the game. Procedural generation is a technology embedded within the game's machinery, behind the back of the stage where no-one can see it. It's like asking whether anti-aliasing factored into your last playthrough of Dishonored 2.
It took me a little while to realise this, but Moon Hunters takes the exact opposite tack in its use of procedural generation. Each time you play Moon Hunters you're not playing the same game in a similar place as different people - you're playing the exact same events in the exact same place as the exact same people. Every playthrough of Moon Hunters is about the same people, the same places, and the same events. What changes is the person telling it - each playthrough is the mythology being handed down to a new generation, and its variations and differences are the misremembering, embellishment, confusion and flourishes of a new storyteller. The procedural generator is a part of this - it basically exists in the game's lore, and is crucial to understanding the game and its messages.
This is wonderful just on an aesthetic level - Kitfox Games have found a metaphor that suits procedural generation perfectly, something that embraces the variation, the idiosyncracies, even the mistakes that these systems make. But having played the game many times through now, I think it goes beyond aesthetics to deeply impact the way the game is played. You'll often come across little vignettes either involving something in the scenery like an abandoned sled, or a group of people with a problem or a question. If you choose to investigate you usually get a decision to make - you can judge a beauty contest, for example, or abstain from voting. You can steal a piece of treasure and lie about it later, or come clean. These vignettes often lead to your character gaining traits, like Foolish or Cunning, and these traits all pay into the game's final assessment screen that immortalises your characters in the stars.
However, some of these events or game areas have requirements. In order to challenge the huge, hulking miner, you need to be Foolish. In order to win over the angry hunter whose opals you stole, you need to be Charming. So you start to look out for the kinds of things that might make you Foolish, or you start to remember where you last saw that event that let you demonstrate Charm (and hope that it comes up). You begin to learn the chains and the patterns that the procedural generator has stored up in it, to try and push at one far corner of its possibility space, to see what happens if you unlock these traits at this particular time and turn up in a particular place. Each time you're rewarded - either with a little bit of plot, a new unlock, or simply a hint about another chain that you haven't yet discovered or fully understood.
This brings the player into the storytelling process too, because by trying to maximise certain aspects of the game you find yourself warping the way the stories are told. If you're playing normally, your stories are simply about some heroes who fight against a cult and either win or lose. But if you're trying to maximise a particular trait or explore a subquest, then the grand final battle becomes a less important part of the story, and instead other themes emerge. Maybe the storyteller is relating a parable about helping others, and your heroes seek out the best resolution to all the problems they encounter. Maybe the storyteller is warning people about greed, and so the heroes are kind of dicks who steal all the time and never share. The player's struggle against the procedural generator becomes a co-operative act of story retelling.
Rogue Process has a lot of procedural generators in it. For PROCJAM recently I overhauled the corporation logo generator and improved the slogan generation too, and although it's far from finished I'm feeling much better about it. After PROCJAM ended I added in a lot of new building template art from Marsh, and now our skyscrapers have strange fixtures jutting out of them, ventilation ducts and landing docks, sloped roofs and more. The game's generators are varied and fun, and they add character and flavour to the world, but the player ultimately doesn't have to think about them too much. They don't need to understand the generator, they can treat the game as if it just has a miniature level designer sat inside pumping out endless, static things for them to see.
Moon Hunters has inspired me to approach things a little differently, though, and in the same way it hides little chains of content for players to find and unlock, I also want to give players the ability to 'sight read' the generator and prepare for what might be coming. Early stages in the game will establish what corporations exist in this city, what their plans are, and what the player is likely to encounter on this run. It'll give the player an opportunity to foresee some of the procedural generator's plans for this playthrough, and they can begin to adjust their items and skills accordingly. This will obviously give them a tactical advantage, but it'll also allow them to find secrets and unlock content too, by learning patterns that indicate a particular chain exists in this playthrough.
I'm hoping to blog soon about some of the recent work we've been doing on the game, but it's hard to trade off the time writing about the game against time that could be spent working more on it! But I had to write about Moon Hunters because it's 40% off on Steam right now and a huge content pack just dropped for the game for free. Please do take a peek and see what you think, and feel free to tweet me about the game.