PROCJAM is back. Last year I participated by creating Spaceship Wrecker. You can play it on itch and read about it on my blog. I’m excited to create something new for the Summer jam this coming week.
What will I generate this time? A more important question: how do I generate things? What’s my approach to a generator? I think of a procedural generator like an AI. I don’t make artifacts. I make an artifact generator, and teach it how to make artifacts. The generator is an agent that should make good decisions, that is, decisions that lead to desired results. A bad artifact is a failure of the algorithm. The agent/generator also has to obey a list of constraints, rules of the space it operates in. This makes the generation similar to a simulation as well.
This way of thinking is evident in the generators I’ve made so far.
- Level 1 Pathfinder characters made by the rules in the Core Rulebook, which fight according to those rules.
- Bodypaint generator that imitates observed bodypaint patterns from the Fremont Solstice Parade
- Spaceships with interdependent parts that break and take other parts offline.
- Cities with supply chains, zoning, different species, etc.
Many generators leave the value judgement of their artifacts to human observers. There are Twitter bots that generate artifacts constantly, and when one turns out to be funny or beautiful, its human followers will retweet or chuckle, thereby declaring that artifact good. Building an algorithm to determine if something is “good” or “funny” is really hard, so omitting it makes development of these generators much easier. But for some applications, quality control is necessary. For example, 90% of a video games levels had unreachable exits, it would be basically unplayable.
Eureka! I could make a game that’s explicitly about being a human and judging the quality of a procedurally generated artifact. The player is the leader of a group of thieves. The player gets scouting reports about procedurally generated banks and museums and must decide if a heist is within his team’s capabilities. After deciding, the player sees a simulation of the heist run by AI agents, and can see if his decision was correct.
This is similar to another idea (which I got from a Twitter bot) about playing as a D&D supplement writer. The player creates a dungeon, then simple AI agents play it a bunch of times and rate it. Was it fun? Did the agents win? Was it too long or too short? The player and the game swap responsibilities for creating & judging artifacts, but other than that it’s the same.
So that’s my constraint-heavy style of procedural generation. I now have even more ideas for PROCJAM than I did when I started writing this post. The next nine days are going to be very interesting.