1. Dandelion Void
  2. News
  3. On Mapping And Dog Food

On Mapping And Dog Food

[p]Before our game director Brian began Dandelion Void – and even before he made the Project Zomboid mod Save Our Station – he made maps. Specifically, maps for a free Half-Life 2 mod called Gary’s Mod, before it became a full-fledged game! If you’ve wandered the sands of rp_wuste or RP’d in Hometown 2000 (shamelessly derivative of Hometown 1999 by F.Kalkman, but hey, he was a teenager!), you may already be familiar with Brian’s work.[/p][p][/p][p]This creativity was enabled by the Hammer World Editor, a high-quality tool for creating BSP levels. Nearly three decades later, we are now coming full circle by making our own mapping tool. Enter the Sickle World Editor.[/p][p][/p][p]Before we begin, we would like to note that this is a highly work in progress feature, even more so than the other content you've seen on this blog. While we are proud of the progress we have made, this post is more about our process and philosophy around tools than It is a demonstration of a final product.[/p][p][/p][previewyoutube][/previewyoutube][p]The Sickle World Editor in action[/p][p][/p]
Make Space
[p]The Sickle Editor is a tool that we’ve built using Unity as our “front-end.” Dandelion Void is a Unity-based game so it’s helpful to have the mapping tool integrated into our game engine editor suite. With that said, the actual data structure you are authoring is not a Unity scene file, but our own custom map data type. You can see a preview of your map in the Unity Scene viewport, but you won’t be interacting with the hierarchy in the way that Unity devs will be familiar with. [/p][p][/p][p]The Sickle Editor is a “subtractive” tool, meaning that an empty map file can be thought of as a solid cube of material into which you then carve cavities and corridors. Dandelion Void uses a grid system, so you carve these rooms simply by clicking and dragging your cursor across different grid cells. With this interface you can create rooms, hallways, and open spaces quickly and intuitively![/p][p][/p][p]To differentiate the environment, groups of cells belong to “room definitions,” which affect their appearance and gameplay properties. Room definitions are assigned a wall material, a floor material, and a set of tags which determine things like plant growth, loot distribution, and more. Below you can see the green highlight around this room, which has been tagged as a dusty reactor closet.[/p][p][/p][p]Of course, there’s only so far you can go with a bunch of empty rooms – let’s decorate! In the “entities” tab you can find a searchable list of all of the furniture items and other gameplay objects that developers or modders have defined. Similar entities belong to “tab groups” which can be cycled through using Tab or Shift+Tab. This reduces the need for unnecessary clicks when decorating, and is useful for things like these lockers which have both wall and corner pieces. Doors between rooms are also placed using the Entity tool.[/p][p][/p][p]As a game set aboard a multi-level spaceship, verticality is even more important than it would be with an outdoor environment. To cycle between different floor levels, you can simply press the \[ and ] keys. This creates a pleasing “cross section” effect that you can see below![/p][p]Note: this is just for an internal test level, so don’t read too much into the layout or room names![/p][p][/p][p]Now, is it just me, or does the level we’ve made look just a bit too clean? In fact, these sparkling rooms make the Pergola look more like a luxury liner than an abandoned derelict. But not to worry, because this next step happens automatically – when you enter the game, you’ll see that the entire world is automatically covered in ponic stalks, algae, and dust! [/p][p][/p][p]While most people immediately think of procedural generation when they think of survival games, many of the most successful titles in the genre actually use “authored” maps – Subnautica, The Long Dark, Grounded, and Project Zomboid all come to mind. A human-created map allows us to ensure a high quality level throughout, and creates more opportunities to tell the story of The Pergola as a society. [/p][p][/p][p]With that said, variety is the spice of life, so our vegetation system adds a procedural layer to Dandelion Void!  This adds a bit of differentiation between multiple playthroughs, saves us time, and creates an organic-looking result. Authorship is still paramount, of course, and so developers and modders can influence the vegetation and grime systems using the room tags we mentioned earlier. If you want a room to have dust but not algae, grow extra plants, or be totally clean, this can all be accomplished just by adding or subtracting a few keywords![/p][p][/p]
The Dogvelopment Cycle
[p]“Dog-fooding” is short for the idiom “eating your own dog food.” This originates from a pet food executive who was said to eat an entire can of dog food at annual meetings to demonstrate his confidence in the product quality to the shareholders. Gross, but interesting! [/p][p][/p][p]In the context of software development, dogfooding refers to the practice where developers making a tool also use the tool themselves in daily life, creating an extra level of investment in quality. If you work on a messaging client and there’s a major bug, you’ll want to fix it ASAP because it affects your own ability to connect with your coworkers and friends.[/p][p][/p][p]Across our time in the games industry, we’ve frequently encountered internal game development tools which are powerful, but also janky, unintuitive, and prone to bugs. Improving tools is a great investment if you have the time and team capacity, but in many cases it’s hard to make time for it. As deadlines approach, it’s hard to dedicate a week of developer time to improving tools when that week could be spent on features that customers actually get to see.[/p][p][/p][p]But on a modding-first game like Dandelion Void we are shipping our internal tools along with the main build of the game. Ideally hundreds or even thousands of modders will be using this level editing tool, and we want them to have a good experience. With this in mind, we are putting extra love and attention into the developer experience of this tool![/p][p][/p][p]We know you’ll have fun using the Sickle Editor, because we have fun using it. When the tool finally launches alongside the game, it will reflect the polish, bugfixes, and UX improvements forged out of thousands of hours of our own mapping journeys. Good enough for us, good enough for you, and good enough for Fido.[/p][p][/p]
Out the Doggy Door
[p]That’s all for this week’s development log. Join us next time for Part 2, where we’ll discuss our current level design philosophy. In the meantime, what features would you like to see in a map editor for our game?[/p]