David, Nicholas, Mr. Dykstra and I were down in San Francisco for the annual Game Developers Conference (as you may have noticed from our impressively slapped together post from last week), and we thought it might be cool to give you guys a little bit of an idea what that’s like, why we were there, and what happened.
As every Modernity-minded subject of the Clockwork Empire familiar with the new Sciences of Personality has learned, each person in Society possesses certain individual Inclinations and Traits which determine their actions in Daily Life. Indeed, the New Science of quantifying and measuring these Inclinations and Traits is certain to lead to great advances in the Art of Education and Employment of Shiftless Wastrels.
– Prof. Eustace Boretrain-Charnickels for the Royal Phrenological Society
Generating terrain for a video game is almost always done by hand, by artists, over a long period of time, sometimes even going to the lengths of placing each blade of grass that the player will see. This visual design and implementation of large scale AAA video games is the vast majority of their development budgets, spanning tens of millions of dollars that we obviously don’t have.
So we don’t do it that way. We can’t compete with it. Instead, we (like many other indie game companies) cut corners by making the game world generate itself procedurally, writing algorithms for the placement of trees, grass, rocks, rivers, mountains, glowing ruins and evil monoliths. Seriously, we have an algorithm for evil monoliths.
David and I have been arguing since the last post on game terrain about the “binning” of our biomes into the 9 categories. His argument being that it’s an unnecessarily simplistic system for such a potentially rich environment. My argument was, of course, that at some point the simulation is growing so intricate that we’re spending time where we shouldn’t be, and that we’d be far better off improving the game-play than the terrain, but if we’re doing things right, the game-play will be pretty heavily influenced by the terrain, so a certain amount of this makes sense.
So I have capitulated, may the internet have mercy on me. Here’s how the system works right now. (If you don’t think that math functions are cool, this might be a little dry. Sorry about that!)
It’s amazing how far you can go writing a video game without actually answering really important questions like “how does the game terrain actually work?” In a perfect world, if everything worked as you imagined it would the first time, making video games (on our time scale at least) involves spending a few months building the idea of the game in your head, then spending a year or so whittling each piece out of little wooden blocks and pressing them gently into the computer. This has the added advantage of explaining why our computers are filled with little wooden blocks.
We’re writing the biome code now (well, another iteration of it) which determines what natural objects exist in what areas, be they desert, tundra, jungle, forest, or maybe something weird like an Healthfully Irradiated crater or a la(r)va field, who knows.
There’s a bit of a process to defining how these things exist, what they get to talk to, and how complicated we want to make them: We hammer out a 3 page document on our internal wiki, argue over it (possibly in THE PIT), make Perfectly Necessary Amputations in some places, and more complexity in others, then start actually writing code. Invariably we’ll forget something or make a Horrible Mistake that causes the world to be impaled with giant spikes of rock that are infinitely tall (it happens) and have to rewrite, but that’s the Creative Process.
Every game tile is currently given a temperature & humidity value, a wateriness descriptor (aquatic, wetland, or land), and an integer value for soil quality. We started with a simple 3×3 matrix of temperature and humidity numbers to map biomes on, but it turned we really wanted swamps because they’re 1. creepy and 2. you need somewhere quiet to throw that body or that artifact which Was Never Meant To Be Found. Similarly, we’d like rich, rolling prairies to cleanse of wild aurochs herds and fill with factories and pipes, and because there was no distinction in our system between the temperature/humidity values of forests and grassland areas, we realized there was a need for some measure of soil quality. In broad terms for our system, fertile soil produces trees and barren soil produces grasses – or nothing at all.
This notion of soil quality may also give an interesting mechanical and ethical/narrative consideration to the act of (profitable, profitable) deforestation.
With this fertility numeric, we can do all sorts of neat things: We can make clear-cutting a forest cause the area over time to yield no trees at all; We can give incentive for crop rotations (if we want to be bothered with that), or we can give you a temporary bonus for, say, slashing/burning jungles by temporarily boosting the soil fertility drastically. Sure, all the animals would die, the area would become a barren wasteland after just a few crops as the topsoil was washed away, and you’d be left with useless land and starving peasants, but that’s okay because you’ve put enough away cash from skimming off the opium plantations to retire your bureaucrat to that manor in the Home Counties, right?
It will of course need to be clear to players what the impact of these choices will be, and you should still be able to just render your terrain a hellish landscape of coal factories (which make coal out of other types of coal) and machinery, each attended by noble clusterings of pipe, but making the hard choices that balance quality of life – and the landscape – with short-term needs (Dagon isn’t going to drive himself back into the swirling blackness of the ocean depths) should make the world feel like more than just a grid to build stuff on.
Dungeons of Dredmor is coming to Steam! …Again!
First for Windows and Mac, and now, the fabled Linux client. While the Linux client for Steam is still in a closed beta test, those who have access to it should now be able to purchase Dredmor for Linux (as well as a slew of other great games). Also, of course, if you are in the beta and already own Dredmor on Steam, you should just be able to download it and give those Diggles what-for.
As ever, the Dungeons of Dredmor binaries available through Steam are DRM free, but if you would prefer some other means of procuring our exotic Linuxian delicacies, we are in the process of rebuilding the DungeonsOfDredmor.com website to include the ability to purchase all of the expansions (as well as a complete pack) through the Humble Store, also DRM free, and for every platform. Because we love you guys. <3