May 30, 2018

Trade II: Trading Cities

It's pretty easy to define a trading city by fiat. But what if there were a better way? A more consistent way.

Since I have all of the references and cities in a network, and I know how far references can travel and how far their influence reaches, I can directly measure which cities are natural bottlenecks for trade.

There's a couple of ways I can measure this. I can determine the total references flowing through a city. Or I can find out how many individual routes flow through it. Per reference, or simple? Per reference is probably more accurate, but simple (how many routes run through regardless of carriage) is faster. Now, I'm only concerned with how many routes pass through. This will help determine the type of culture the city has - a high volume trade point is politically advantageous.

I need to run some tests to know if that data is even useful, though. Given a scenario where all references are available (even at tiny quanities) to all other settlements, would the trade flow be the same for every city? Even in this case, I don't think so. A city on a river would be found by the algorithm more often than one near the hinterlands.

A truly isolated town may have zero routes (terminal nodes). What are the implications of this? For certain, if you're going there, you're going there, not through it (or you're leaving). That could lend it a certain importance, depending on the size. It may even be a destination settlement. More likely, though, it's a small mining town up in the mountains, probably with no market of its own. Maybe a small trading post for basic goods.

Such towns are cliche starting points for campaigns or stories. The Shire, Two Rivers. Whatever Eragon's village was called. The simple heroes, unspoiled by the modern life of the city. It's good for campaigns, because you can give the players a few sessions to get acclimated to their new surroundings.

May 28, 2018


What does the terrain look like?

For some, it is sufficient to define "forest" or "swamp." Of course, this is not good enough for my labor of love.

There are existing (more or less accurate) models of vegetation and biome coverage that are very detailed, such as the Global 200 or Kuchler's classification. The problem is that these are often descriptive models rather than prescriptive. That is, if I can physically observe a location, I can classify it. But that is not what I need, since the place I'm trying to classify does not exist except in my mind.

The solution most worldbuilders take is to use one of the older prescriptive models, like Holdridge, Whittaker, or Koppen (I'll use vegetation cover and biome somewhat interchangeably here, despite the technical inaccuracy). Holdrige and Koppen are attractive in particular because their inputs are numbers (such as temperature, precipitation) that are available to me. Koppen is more of a strict climate classfication, while Holdridge speaks more to what sorts of vegetation you'd actually see with boots on the ground.

There are some serious errors with the Holdridge system, particularly the fact that it is less accurate the further you are from the equator (it also displays three variables on the eponymous chart, but only two are necessary). However, those inaccuracies are not as important to me, since it's not like my work can be checked. However, the more pressing problem I see with the Holdridge system is that Dr. Holdridge never described what he actually meant by each category. For example, there is no category for grassland (which comprises much of the world's non-woody surface), but there is one for steppe. Are these the same? Steppe usually connotes a rough brush terrain, rather than a flowing meadow-grassland as might be found in the central United States. It's not that this is necessarily incorrect, since the prairie of North America, the scrub of Siberia, and the veld of South Africa are all technically steppe. However, in terms of descriptions to the players (which is of supreme importance), there is a big difference.

And here we start to see the problem with researching all these models. Given an area with grassland steppe, we can further classify those using the Laylock Classification. I'd like to avoid getting too much into the weeds (pardon the pun), but I'd like the option to add it into the system later if it will add useful detail.

Useful detail is the key. And understanding that boundary is crucial to not wasting time. I don't need to know that an area is classified as Kuchler #104, Appalachian oak forest. But is useful to know that this is the type of area where oak might be found.

May 25, 2018

Pressure I: Under Pressure

The pressure systems of Earth are deeply complex, as as the winds they generate.

All I need to know is that wind flows from high points to low points and is affected by the Coriolis Force.

Easy to say, easier to implement. I used the guide here to set my initial pressure map, then used Inkscape to transform that into SVG paths. I was at a loss at first when thinking about how to take a gradient map and turn it into a wind flow field, but then I realized that I could just discretize the paths (black to white for low to high) and "walk" along the edge of each one. That would give me a rough outline of vectors for my winds. Its rough, it's not the 20-mile level of detail I'd want, but it's computationally cheap (not a simple thing (on my middle tier machine) if I were to use 200k objects), and it gets me what I want.

Both the "summer" and "winter" maps are considered, as the pressure is distributed differently during each macroseason. For most of the climate-related stuff, I'll have two maps, one for each macroseason, because of the way that the climate classifications are usually defined.

Pressure map for July (or "summer")
Wind map for July (or "summer")

May 23, 2018

Demographics I: This Town Ain't Big Enough

This is a continuation of thoughts from here.

I don't have any special need to decide how many levelled persons live in any given place. However, I do need to know what sort of people my PCs will interact with in any given place. To do this, I need a probability table to decide both class and level.

This is pretty difficult to do in 5e, because pretty much every limiting boundary condition was removed. I have no opinion about whether this was a good or bad thing in se. But it does mean I have to make some stuff up, which goes against my core design philosophy (that things have to make sense). So this post is largely about getting my own thoughts out of my head for my own sanity.

First, classes.

The 5e classes are a mishmash of physical traits, occupations, and personal artifacts. My hypothesis is that some of these will be fairly random. However, some will be dependent on other numbers and statistics available from the system (this is related to my thoughts on racial distribution). The definitions of each class (as I see them) might be a helpful starting point. (3.5 already did this, but not to my satisfaction)

  • Barbarian. Would not occur very often in highly populated areas. The chance to meet a barbarian would be inversely proportional to the surrounding population density.
  • Bard. Being a bard is an occupation, but presumably some training is necessary. Some games require a bardic college, and I think this is a good idea. The original Celtic bards weren't itinerant minstrels, but highly trained professionals trained at an official institution or by an existing bard, who would be based in the house of a noble.
  • Cleric. Obviously an occupation, but tied closely to existing religious structures. I can tie a number to this using the trade system (specifically treating temples/etc as an industry).
  • Druid. Like the barbarian, I wouldn't expect to see this class in big cities. Or cities of any kind, really. Druids occupy an odd space because they technically should be clerics of Celtic-style polytheism, but end up being Radagast the Brown in many games. Nothing wrong with that.
  • Fighter. Almost certainly the most likely class. Violence is integral to the red-in-tooth-and-claw aspects of RPG civilization.
  • Monk. The distribution here will be similar to that of clerics. While D&D monks aren't strictly religious, I'd certainly require that they be members of a monastery of some kind. I actually might nix monks altogether, but for the sake of discussion I'll leave them here.
  • Paladin. Although religious, paladins seem to operate largely outside of institutional bounds. The paladin oath is intensely personal.
  • Ranger. Also population-bound. But I would expect many people from farming or animal husbandry lineages to end up as a ranger.
  • Rogue. Directly proportional to population density. When people pack together, it's a lot easier to cut a purse.
  • Sorceror. This is an innate ability, so it's probably going to be a static percentage across the board.
  • Warlock. I'd also consider this a static random chance.
  • Wizard. Not strictly an occupation. Similar to the monk, they are dependent on a wizarding college to attain their status.
So it appears there are 3 major categories of class:
  1. Bound to institution: bard, cleric, monk, and wizard
  2. Function of population density: barbarian, druid, ranger, rogue
  3. Totally random: paladin, sorcerer, warlock
  4. The rest of the probability table for leveled persons is filled out by fighters.
With this system developed, a table can be produced for each location that the players might visit, tailored to the specific circumstances of that place.

May 21, 2018

Settlement Growth

The basic model for population growth is a logistic function.

This is most representative of the entire population, not necessarily cities themselves.

The rate of change itself will change from year to year. It could even go below zero. However, since this isn't a history simulator, a random rate r = N(x,0.0035,0.0001). From this we can either specify the founding date and thus the current population, or the current population and from that the founding date. The rate could also be influenced by the terrain, but this is difficult to work out. We could give a slight bonus to settlements located on oceans or rivers, or in pleasant climates. A penalty could be enacted for cities in harsh climates.

There are a few parameters left to choose. The starting population should probably be around 20 or so: the minimum necessary to be considered a thorp or hamlet. This can change but will be static across all settlements. The carrying capacity (K) of the city is dependent on many local, unobtainable factors. However, we could say that it's influenced by what cities already surround it. A settlement within a few days travel of a metropolis will have a much lower K than it would otherwise. If we look at it this way, K also can represent the effect of population flow from the "suburbs" to the "big city."

How does this factor into my world? Not sure yet. I don't want to nail an Earth date down and say "this is the rough technological age equivalent," but I do prefer to avoid the classic medieval setting. Not that there's anything wrong with it, but if I'm going to be different I might as well go for broke.

Historically speaking, cities topped out at less than 50,000 inhabitants. A few, like Uruk and Memphis, were significant outliers, even around 2000 BC. By the time we get to 1000 BC, we have a few that are reaching 100,000, like Babylon and Xi'an. We don't hit a million (in Alexandria or Rome) until almost 0 AD, depending on who you ask. And those were made possible partially by giantic empires funneling labor, food, and wealth into them, carefully ordered by massive beauracracy. So we can see K as partially a result of the level of technology available as a whole.

Of course, any demographic historian worth their salt knows that's a gross oversimplification. But who cares? I just need something that works, makes sense, and is internally consistent. I have to draw the line somewhere. Can always redraw the line.

Both of these parameters vary widely in the real world. But I'm not concerned about making a real world; I'm concerned about making a world that feels real. Setting up parameters like this will allow me to change them later if they don't have the desired effect. Even having a model in the first place allows me to change it if I wanted, for example, to allow unlimited exponential growth or even (shudder) linear growth.

Another issue is that not every person lives in a city. In fact, most people don't live in cities. Urbanization rates in the Middle Ages range from about 10-20%. So if I say a hex has a population of 5000, there's a better than good chance that the local settlement only has 500 people. Not exactly a bustling metropolis, by today's standards at least. A rough solution that springs to mind is just to have a "town" wherever there are people. So even if the "population" is 5000, I can understand when my party visits that most of these are in the countryside.

However, I'm a little uncomfortable with that bespoke solution (or any bespoke solution, to be honest). I'd rather a set of rules that determined population regardless of the presence of a town, but that might be a little harder to implement into the trade system. Currently, named towns are treated as nodes in the trade network. Since each name is unique, that's fine. But unnamed nodes present a new problem. So for now, I'll take the rough solution and define a "settlement" for anywhere that has population. Unless it's big enough to have a market it won't matter much anyway. These can still be named as regions, just not as settlements proper.

Placement of cities themselves is a separate topic, covered pretty well here. However, the topics are somewhat related, because new settlements are partially formed because the people from one place want to live in another (more space, more food, better climate, etc).

May 18, 2018

Elevation III: They're Trying to Wash Us Away

The erosion tests work beautifully.

before erosion
after 10 erosion cycles
The key here was to increase the number of total cycles. The erosion depicted here is 10 cycles, about 2.5 million years. It yields a very nice fractal terrain that looks much more like what you might see in real life. There is still some tweaking I can do to optimize the relationship between the amount of drainage and the amount of erosion or uplift.

I'm going to "reset" the results, however, until the precipitation maps are complete and I've quantified the effect of rainfall on the drainage amounts.

May 16, 2018


Names for fantasy planets make no sense.

They are, of course, useful conventions for the author, so as to not have to say "this thing I'm working on" every time.

I've not named my world. I don't know who would have come up with that name.

In our own world, the words we use for the ball of dirt we live on come from various civilizations' words for just that - dirt. More importantly, the words I personally use, Earth and sometimes Terra if I'm fancy, come from the ancient cultures that have most created me, a European: Latin (terra) and Germanic (eorðe).

What do other people call the earth? The Chinese word is , which also means dirt. The Hebrew word ארץ, which can mean earth or land, is different from the word for dirt, אדמה. The Turkish word toprak apparently has no connection with that of soil.

I don't mean to produce a comprehensive etymology. But I think it sheds light on what these words would be in a fantasy world. Of particular note is the fact that by picking a single name for your con-world, you present yourself as decidedly culture-centric. You've picked a favorite.

If I insist on using the English word "Earth" in a conversation in Mandarin, I am making a very pointed (and offensive) statement about my opinion of the relative importance of each language. Proper names be damned! There are no proper names for Earth.

Nation names are a little bit easier, but not much. England, so called for the Angle peoples, was first called that (sort of) by Bede as "Engla londe." No one really knows where this word came from, but it refers to some aspect of the Angles (or their Germanic region) that someone else noticed. Rarely do you get to pick your own name.

So what on earth am I going to call this thing?

May 14, 2018

Levelling Speed in Fifth Edition

My first offline campaign ran for nearly 2 years, with some short breaks. The players ran from levels 1 to 10 (and probably will continue to advance once we restart).

It only took 6 months of in-game time.

If I told you that you could train to become the most powerful actor in almost any room in which you chose to walk, and it only would take you 6 months, what would you give for that?

Now, D&D is supposed to be about heroes, right? To a certain extent that's true in 5e, though I disagree with the fundamental premise there. But if that status is available to just anyone willing to slog it out for less than a year, why isn't everyone running around being a hero?

Also, its worth noting that Mike Mearls said that characters should level every four hours of real time! What??? Unfortunately, I'm not surprised that Mearls has such a disrespect of the players of his "game." He also is a fan of the horrid blight of milestone levelling. Barf.

Taking one of the standard ability generation methods (4d6 drop lowest), the most common result is a 13. This is the prerequesite for multiclassing. Since there is no minimum score necessary to play a certain class, as in some other editions, let's assume the multiclassing minimums for a Ranger: DEX 13 and WIS 13. Up to 24% of the population could meet that requirement! For a single stat, the chance is about 48%. From a certain perspective, that makes sense. The player wants to stand out - they wouldn't really bother to play a rando with 10s down the board. Using a "meaner" 3d6, about 7% of the population could be rangers. That might be a better starting place.

This dirty analysis, of course, does not accurately reflect real world choices. Perhaps I have the dexterity and wisdom to be a ranger, but I prefer to play a rogue or cleric instead.

Similar to racial demographics, a distribution can be developed to describe a certain person's disposition to pursue a clerical or roguish career. This is not intended necessarily to place constraints on character creation, but to flesh out the NPCs a party might be expected to meet. My driving philosophy here is that any mechanic available to the party is also available to everyone else. My hypothesis is that this forces players to make conscious choices in order to bring their will to bear on the world, rather than "winning" by virtue of conveniently selecting the right options before the game even starts.

Players should become heroes (or not) based on their own choices as characters, not based on an ad hoc decision by the DM to declare them so, or to carefully place encounters in their way to gently coax them into a false greatness.

This is starting to turn into another post, similar to this one (as usual, Alexis is eight years ahead of me). However, here I want to call attention to the inadequacy of 5e to really describe a population. Mearls (et al.) is clearly not interested in creating believable experiences. Maybe he doesn't need to be. But it's up to the DM to be aware of what they're signing up for, and how much work it's going to be to hammer the 5e "ruleset" into anything resembling an actual player-agency rule-defined game.

I don't have good answers for either of these problems right now. I'd rather leave the level speed as is right now (I have enough work to do without redesigning the whole game), but I'd like to take another look at how those rules affect sensible demographics. When the party rolls into town, who meets them?

May 11, 2018

Is It Even Still a Game?

"Rule of Cool."

"Just have fun, that's the most important thing!"

"I use milestone levelling and [I cheat my players because] they seem to have fun doing it."

Are these people, in fact, interested in playing a game? Or are they more interested in a collaborative improv session (if they're lucky). If they're unlucky enough to be a player in one of these campaigns, they're at the mercy of a hopefully uncapricious DM, but certainly at the mercy of trying to impress them so they'll be allowed to level up.

I'm sure this won't be my last rant on this subject.

The rules don't make sense. Nothing makes sense. The "world" bends over backwards to keep the players safe and entertained.

I try to say that I'm ok with people playing the way they want to, and that there's really no wrong way to enjoy yourself on a Saturday afternoon with 4 friends. But the "advice" I've been reading from these proclaimed RPG geniuses is quickly convincing me that there is, in fact, a wrong way to play. At least, as long as these actors continue to insist that they are playing RPGs, and not just performing for each other.

"Hey! My game has struggle and the risk of death! I just like a little fantastical element now and then!" Risk of death? If the DM of a game ever even feels the need to ask the question "What can I do to not kill this character?" then there is no risk of death. If the rules can be ignored on a whim just because someone got attached to a Mary Sue character for whom they wrote 50 pages of crafted backstory, then you aren't playing a game. That's not necessarily wrong - you're perfectly free do to whatever you like. It's just not a game. Yes, yes, cue r/gatekeeping. Alexis makes the point that these characters are fundamentally dead.

And I have fallen into these traps now and again. This is one of the reasons I stopped using a DM screen. I fudged rolls, lied about motivations, made stuff up on the spot just to please players. I forgot that the players don't exist as my pawns. Rolling in the open put their fates in the hands of the dice, which are (probably) impartial.

One of the worst things I read in game stories is the player proposing some inane rule-break, defying not only real-game physics but the specific established physics of the game, ignoring all previously established methods of the DM and sociological attitudes of the setting's population and ecology, and the DM says "You know what? Sure, go ahead!" As we all know, D&D is explicitly designed for character advancement and achievement by impressing the DM with your clever antics. After all, the DM exists to entertain you (makes me sick to type that).

The party lines appear to be hardening between the grognards and those who insist on calling their group improv a "game", even going so far as to use the name D&D, despite it having very little resemblance to any kind of conflict-based game. The culprits here are entrenched in the powers that be. Thankfully, some still exist who remember that mechanics are essential to gaming.

Imagine if, in our hyper-game saturated culture, we played literally any other game this way? If, in the NFL Super Bowl, upon which millions of dollars hang, the ref awarded a technically illegal touchdown "because it was cool?" (OK, maybe a bad example, since no one can agree on the rules for a catch). If, in the DoTA international championships, a kill was reversed because it wasn't fun for that character to die at that moment? If, at the 2022 FIFA World Cup, Messi was allowed to pick up the ball and throw it into the goal, and we all just were ok with that because, hey, he worked hard to get where he is and what do rules matter anyway?

If we wouldn't accept such rule-breaking in any other game, why would it be acceptable in D&D?

May 9, 2018

A Model for Politics and History

For a few weeks now I've been mulling over a pretty complex problem.

I'd like to be able to simulate years and years of history, the rise and fall of civilizations, and the growth and decline of settlements.

Not only does this require a pretty indepth study of how individual settlements are formed, there is also much work that would have to be done to see how those settlements interacted, conjoined, fought, etc.

Assuming that I can figure out where the people live, I plan to build a series of simple Markov decision trees and cellular automaton to stochastically figure out what happens next. This is a good substitute for emergent order. In fact, I already have the structure for a cellular automaton, since my map consists of individual hex objects, each with its own properties.

Has it been done already?

Sort of. I suppose I need to step back and design this from the ground up. What features do I want? What sorts of inputs are important to the model? Most importantly, how does the model interface with the map I'm building (the timescales I need are far shorter than anything that would affect the geography significantly, barring a worldwide cataclysm)?

May 7, 2018

Trade I

I've mostly copied Alexis's trade system so I won't say much about it beyond that it's a fantastic conception at its core. Credit where credit is due.

My own take on it uses a network to model each market city as a node. By using a multi-directional graph, I can put all the different possible trade routes into the network, and let some simple algorithms figure out the shortest distance between two points. Should we go around the mountain, or through the desert? Paddle up the river or just take the road? All of that work is off-loaded to the algorithm. I still have to do some work inputing the raw distances between each city, but I hope to automatically calculate that as well from my mapping code.

Right now every industry is technically available in every place, given that the settlement meets the minimum population requirement for that industry. Ultimately, I don't quite like this, but I need to think of a way to determine which industries are available where. For example, for boatbuilding to be available, wood must be available, and presumably, access to the coast or a large river.

Ultimately, then, the best trade system is dependent on a robust resource description table. Each resource (including industries) must have prerequisites for its appearance on the world map. More complicated resources (such as worked metal) are calculated from a series of recipes, similar to the system found here.

May 2, 2018


There's a common theme these days in the gaming community, characterized by the phrase "I have a new idea for X."

This is very interesting, because very often these people do not in fact have new ideas. They are old ideas, old cliches, recycled for one person's specific fantasy.

I don't have a problem with that. I'm certainly not original. What I do notice about this is that no one seems to be concerned with perfecting their craft. This is less of a concern for players, who regularly churn through characters in the course of gameplay. However, it nags at me that there are worldbuilding DMs who create something arguably new, only to slap a "finished!" label on it and move on to something else entirely six months later.

(Of course, I'm guilty of this as anyone, only I never declare it finished, merely forget and move on.)

Now, I'm not saying there's not a place for that. But we need more DMs who totally devote themselves to the perfection of their craft. That seems to be rare these days, and that's a damn shame.

Commitment is hard. That's why we don't do it anymore. But maybe we should.