The latest feature I have been working on is rivers, and roads are following in short order, so I thought I’d do a write-up on the design decisions involved. Please note the map graphics are still placeholders and not the final assets – especially the province borders, rivers and (non-existent) coastlines. For example, the final river graphics will make the stream direction more obvious.
I am really happy to finally have rivers in the game. Almost every fantasy world has a couple of rivers of geopolitical and historical significance, e.g. the Brandywine and Isen of Middle Earth, River Reik in the Old World of Warhammer, and the Trident of Westeros. In our world, the ancient civilizations and empires arose on the banks of the Nile, Euphrates, Tigris, Indus, the Rhine, the Seine, the Danube, the Volga, etc.
Rivers have a dual nature, forming a natural barrier useful to a defending army or as the site of a castle, but also providing a travel route for invaders and merchants. These aspects make good mechanics in a strategy game and help create an interesting world for the player to explore.
In Wizards and Warlords, the world is generated randomly. The first step of this process is creating a height map – a topographical map of the world. This divides the world into oceans, lowlands and hilly/mountainous highlands. Climate bands and the roll of the dice then distributes biomes throughout the world, resulting in forests, swamps, plains, jungles, deserts, tundra, etc. After this comes special natural resources and the more fantastical element. Finally the races, cultures, organizations and religions/pantheons are created.
The newly added generation of rivers is done after the topography is created, but before biomes and terrain are assigned. Rivers flow from mountains and hills, following the slope of the land, probably snaking through a continent before reaching the sea. The very first design decision I had to make was whether rivers should be placed ON tiles or BETWEEN tiles.
All tile-based strategy games have to make this choice, and there are advantages and disadvantages to both. Having rivers on tiles makes it easier to have cities and castles centered on them, and it is conducive to movement. The disadvantage is that it makes crossing the river a strange thing. Does it happen when entering a tile? When leaving it? Should the penalty be postponed and applied depending on how movement continues out of the tile, etc. And how if the tile has roads, it can really strange as the roads often up “overlaid” on the river in an odd way. Here is a mock-up of how this river implementation could look:
I ended up using the other approach, where rivers are located between tiles. This makes it very straightforward and intuitive to determine when the river is being crossed. The downside is that it becomes less obvious when a city located in an adjacent tile is actually located on the river. This will be solved by making the border of tiles a valid location for sites. This also makes great sense for coastal cities, border forts, castles guarding a mountain pass, etc. Here is a screenshot of a river in this style:
When generating rivers, something that occasionally will happen is that the river ends up flowing into a valley or basin, so it cannot continue towards the sea. It looked rather silly to just have a river abruptly end, and having rivers flow upwards is even more strange, even if this is a fantasy game. So I modified the world generator to create a lake in this scenario. Sometimes the lake will have end up taking up enough space to be adjacent to a downward slope, and be able to have a connecting river continue towards the sea. Like this:
I am still working on roads, but they will be inside the hexes, as the rivers in the first screenshot. This also means that a road crossing a river will have a bridge or ford – an interesting geopolitical objective and a great site for dramatic battles. As the final art assets are added, these will of course be represented by actual images of bridges, natural fords, etc.
Rivers are taken into consideration by the world generator when creating the terrain – swamps, jungles and forests are more commonly found near rivers than deserts and wastelands. Magma fields will tend to give way to basalt plains if they adjoin a river. I would like to add more fantastical waterways – rivers of lava, blood or acid, but that’s for the feature backlog while more essential game play elements are expanded upon.
The toponomy system will also be expanded to name the rivers and lakes – as it currently does with provinces, nations and mountain ranges.
While the current graphics are quite raw, I hope that the addition of a few screenshots to this design diary helped convey the concepts, and give an idea of what the final result will look like.
The next blog post will be focused on magical constructs – such as golems and undead monstrosities, and how the player can customize these units depending on what arcane secrets have been unlocked by the wizard.