Dev Diary #5: Controlled Random and Creating Content with a Small Team
Time is Precious
Hello, this Tripping Whale’s lead designer, Ian. Did you know that Tripping Whale is just three people? It’s true.
With just myself, Caleb, and Souren — all of us with day jobs — time is the largest and most constant challenge we face in our development of Duple Dragon. Our labor hours are extremely limited and that heavily affects how we have to design the game. Our systems need to give us incredible bang for our buck. They need to last a long time and maintain themselves without constant updates.
Content Takes a Lot of Time
Before I go any further, what do I mean by content and how is it different from a system? Content refers to the parts of the game you play through and overcome. Stages, encounters, and puzzles are all examples of content. Systems on the other hand are what that content is built from. Gaining experience points, unlocking and using powers, and hazards and enemies are examples of systems.
Content and systems both take a lot of time to create, and a team of our size (working in our spare time) really only has time to make one or the other at any given work session. This presents a problem, because while systems are necessary for a game to exist at all, content is what keeps players engaged and playing over the long term. You could have the best level in the world, but if there’s only one— your players aren’t going to keep playing for long.
Now put yourself in our shoes. We need to make the systems so we have a game at all, but we don’t have enough additional time to also make a large amount of individually built pieces of content. What do we do?
To overcome this challenge, we are currently building a system we internally call “Controlled Random.” This new system will be used to generate stages to play through automatically. This type of system is widely called procedural generation in the game industry, and is most seen in the Roguelike and Roguelite genres (games like Diablo, Slay the Spire, or Hades).
What is Controlled Random
Procedural generation is a fascinating but very technical subject. If you’re not interested in the nitty gritty of how the system works, skip to the next section where we talk about what this system will mean for the final game.
Before I explain controlled random, let me explain how stages were previously created. Previously every stage in Duple Dragon was randomly constructed live while you play from a pool of pre-constructed chunks we call Templates. Terrain Templates are the scenery and props going by, and Item Templates are the fireworks and other objects you collect while playing. Templates can have different sizes, and the system automatically matches terrain templates with appropriately sized item templates, resulting in a seamless stage which changes every time you play.
The big problem in what I just described is the word “randomly.” So far every test we’ve held has had truly random stages. While the item templates are pre-constructed patterns we know are fun, it’s still possible to have wildly different experiences. This is especially true on the difficulty side of things. We had very limited control over the quantity of each template that shows up, and even something as fundamental as ensuring the stage can be completed in time was out of our control.
Enter controlled random. Our new procedural generation will use a combination of three systems to build stages in ever-changing but controlled ways. They will still be randomly generated, but we’ll be able to control that generation in powerful ways. These three linked systems are called Rules, Stat Tags, and Descriptive Tags.
Rules allow us to set conditions for whether a given item template should spawn or not. We’ll be able to prevent two of the same hazard from appearing right next to each other, limit the total number of a template that can appear in the stage, or many other possibilities.
Stat Tags are automatically generated based on what’s inside an item template and sum up the hard statistics. Things like how many points are in the template, which types of items are in the template, length of the template, and more. For those familiar, this could be thought of as metadata for each item template.
These tags allow us to more evenly space out points, and ensure that there are always enough points to win a stage among other things.
Last but not least are Descriptive Tags. Unlike Stat Tags, descriptive tags are hand entered for each item template and sum up the feeling or theme of the template. This could be things like “Sinewave”, meaning the items in the template are placed in a snaking sinewave pattern, or “Speedway”, meaning the template is designed to be most enjoyed at high speeds.
A big problem that can arise with procedural generation is the feeling of samey-ness. Everything might slightly different each time, but it kind of blends together and the differences aren’t interesting enough to be memorable. Descriptive Tags are our plan to solve this. Our procedurally generated stages will limit themselves to templates with one or two descriptive tags at most. Limiting the pool like this means that stages will have a distinctive feel despite being generated, and will be much more memorable than throwing our entire pool of templates into any one of them.
The Future of Stages in Duple Dragon
Left: Speedway themed stages have lots of rings and item templates designed to be fun at high speeds.
Right: Gate themed stages have lots of hazards with a single correct path through them.
Once controlled random is up and running, we will use it to automatically create batches of stages to play through, rotating on a periodic basis. This automation will allow us to focus our limited development time on more exciting content updates after launch, such as new expeditions, powers, and unlockables.
Controlled random also means every new expedition and every new item or hazard adds a massive return on investment. Each one can be used in countless procedurally generated stages to come, and the bigger our pool gets the more variety there can be in the long run.
Our next major test will be the introduction of controlled random and rotating stages. We’re still determining when this will be, so stay tuned to our mailing list to be the first to learn about it. We’re extremely excited about this system, and we can’t wait for you all to get your hands on it.
Thanks for reading, and take care.