
And brown empty blocks indicate space for random placement of prefabs that lead to branches.Ī map can choose from any one of the patterns available, each of which is fairly different so the player doesn’t know which pattern they’re currently playing in (or even that there’s a pattern at all!) and can’t reliably deduce a way out without more info. Gray lines on brown are more directional tunnelers that can pick a random direction from among the options, but are used just to fill space rather than act as access points. Light gray thick lines, on the other hand, are designed to always prevent the map from creating paths in that direction, enforcing a more specific shape for the map and its general routes.Īs per the legend there (again, not ideal, usually just for me), more specifically yellow shows where each guaranteed entrance/exit is placed, randomly shifted around in the approximate area indicated, with a tunneler digging out in a random direction from among those represented by the lines. (Please excuse the terrible coloring-the image was taken directly from my messy dev files rather than produced/modified specifically for the blog :P)
#DRYSONS METHOD MAP BUILDING GENERATOR#
The generator may also decide to randomly instate one or more optional barriers (thick gray lines) to prevent tunnelers and rooms from crossing over that area, increasing the circuitous nature of the local area relative to other exits. Based on their relative distance and the way they travel, they’re not likely to directly connect with one another for a while, producing circuitous routes. Like the above Factory map sample, this one is built with tunnelers, so placing the initial tunnelers to seed the map also forms its backbone for exploration purposes, basically working “backwards” from all the points of interest until they all collide at various other points. Procgen map layout planning in REXPaint (Materials). To take some of Cogmind’s earliest floors (“Materials”) as an example, here is a set of possible orientations as planned in REXPaint: So the first step to a procedural map, before even setting the parameters or running mapgen tests, is actually to fire up REXPaint (surprise :P) and do some orientation mockups. Knowing where these are, and being able to reach them, is of the utmost importance to the player as well, so aside from a possible randomly placed exit that the player may get lucky to quickly happen across, the main exit positions are intentionally placed far away, and built into the very foundation of the map’s layout to ensure they’re probably not all that easy to access. Since advancing to a new map in Cogmind is generally the safest course of action (because it escapes any pursuers, lowers the current alert/danger level, and can both heal you and improve your capabilities), the absolute most important factor for balance is the placement of entrances and exits.

How do we guarantee a relatively balanced experience in a place like this? The largest main maps in Cogmind are giant 200×200 squares with great freedom in terms of mobility and player options. The Exiles being a static map, I could draw out everything in exactly the layout needed to create the desired flow for that experience, but most Cogmind maps are either partially or entirely procedural, requiring that we use other approaches to constrain their generation and exert some amount of broader control over the experience.


But there are a few steps that I apply to level design specific to procedural maps, particularly when establishing their initial layout. Most aspects of map design follow the same routine regardless of whether using a static or procedural base-compiling notes, writing a design doc, thinking high-level gameplay, integrating it with the world, creating and adding content and so on, all detailed in the previous post. So we’re back again today to expand that article with a look at some more potential parts of the process. Last time I described the entire design and creation process behind Cogmind’s latest new map, though a single map can’t quite cover all aspects of the so-called “standardized approach” I’ve taken to level design in Cogmind.
