Just a quick entry today to say that version 0.2.1 has been released – it contains the resources map; fixes to all (I think) the bugs people identified; the ability to export the maps you create (‘X’), and a few other small features. This will be the last release until 0.2.2, if I do make an intermediate release between this and 0.3.x, or if not, then it is the last release before 0.3.x. Of course, on the off-chance I have introduced some game-breaking bug I haven’t spotted, I’ll fix that, but otherwise I hope you enjoy creating planets, worlds, and wandering around them. Blog entries will now roughly alternative between weekly and fortnightly depending on how busy I am with academic work, but will (as ever) return to weekly as we get closer to the next release.
Welcome back! Development is going to start back up some time next week; I also intend to add a development plan to the blog very soon so everybody can see a) what I have left to do for the first alpha, and b) track progress across these. The current intention is for another fortnight of programming, followed by a break, and then a final ‘push’ from around approximately the middle of June to the first release.
In the mean time, to resume blog entries, I’ve had a few requests/questions about the exact map generation mechanics, so I thought I’d start off with an entry on those. If you want a gif of the full process, scroll to the bottom of the entry; otherwise, here’s each step with a little explanation. This was a map with all values (terrain, forest, tectonic activity, rivers etc) on ‘average’. As ever, click a picture to view full-size.
First, a rough outline of the continents and islands is created. The number of initial blocks is dependent upon the terrain value; the higher, the more initial landmasses are created. Some of the clumps of land generate in locations dependent upon previous land, while other areas are placed randomly.
Next, bands of terrain are added. I originally considered having a simulation which included things like rainfall, but then I realized that since I’m not creating the kind of ‘world simulation’ of the sort that DF is (i.e. factors of that sort are important for the player), there was actually no need. Instead, the game creates semi-random ‘bands’ of terrain, starting with tropical areas and then expanding to include desert, savannah, temperate areas, and then taiga/tundra/polar at the edge of the map. The final look of the map looks just as random and varied as a different technique, while this one saves on time and means I’m not adding any functionality into the game which won’t actually have an effect on gameplay (and, if it does one day, I’ll just add it in then). This also ensures that all climate zones should appear on any given map, which will be important for civilizations/species, and – I think – allows for greater variation on smaller landmasses and areas. Desert is ‘zigzagged’ around tropical areas, which ensures a different variation of desert across hemispheres (in this case predominantly in the south) whereas the earlier maps (if you go back and look) simply contain desert as a band above/below tropical.
After this, the landmass is then expanded and dithered significantly to remove the straight lines of the climate areas shown above. A lot of extra land is added in this stage. Subsequently, forests are added, with a regularity which depends upon the ‘Forest’ variable and different climate zones. Tropical areas get a ton of forest; temperate zones and taiga get some; desert gets very, very rare ‘forest’ areas, and these are actually oases. Also at this stage, one-square ocean areas are removed, since lakes function differently and will be added later in the process when rivers start to appear.
Next up: mountains. Mountain ranges are created, again primarily depending on the ‘Tectonic Activity’ variable but also varying a little according to biome. In the example below, there’s actually unusually few mountain ranges given the ‘average’ value I gave Tectonic Activity in this generation, but it’s still representative of the process. Once mountain ranges exist, they are then broadened, and the height of surrounding areas adjusted appropriately as the land is yanked upwards.
Lastly, volcanoes are added and then rivers are added and connected, all sourced from mountains and terminating in either lakes or the ocean. Both of these are tricky to see in this size, so I suggest zooming in to have a look. Rivers currently only generate from mountains, but I am considering allowing them to generate from high hills which aren’t mountains in the future too.
And, lastly, here’s a gif of the entire process. In a later version once territory and cities and things exist, I will do an equivalent to show how they (and creature settlements) are generated, but since terrain is the focus of the first alpha, I’ve only reflected that here. Next week, I’ll be uploading the development plan, and saying a little bit on each component of the first alpha I’m working on at the moment…
I’ve had a few questions lately about the kind of setting the game inhabits; most people have been classifying it as ‘high fantasy’, and that’s a little away from the setting I’m going for. I thought I’d take an entry to describe the inspirations behind URR’s setting and how this’ll be reflected in the game design decisions.
A central inspiration is the myth of Prester John, or rather, the way it filtered into medieval society and how it affected perceptions of the outside world. It was the idea hatched in Europe around the twelfth century that another christian emperor called Prester John existed in some undefined region east of Europe. It served as the idea that there was somewhere another ally that Europe could count upon in its conflicts, and that some parts of the far distant world were potential allies. This location varied between central Asia and eastern Africa depending on the version of the myth. Dozens of different stories existed about him and his empire, ranging from the entirely worldly to the fantastical; an assortment of mythical creatures were believed to be exist in John’s empire, and the empire itself was thought to be in a variety of places. Even more so, people came to associate Prester John with a variety of different real-world figures, ranging from Genghis Khan to Zara Yaqob, even though they all variously denied being this mythical figure. Effectively, it was a strange amalgam of facts about battles, empires, lands, geographies, histories, all put into a single narrative that was far more desirable and reassuring than the truth, and one that was a reflection of a fundamental lack of knowledge about the rest of the world, and what creatures were and weren’t just figments of legend. Similarly, it altered which distance empires were believed to exist and in what configuration, along with their rulers, important battles, etc.
This is the kind of setting I want to cultivate; that the world is fundamentally unknown, and that each civilization has different (and probably wildly inaccurate) understandings of what the rest of the world is like. The further your starting civilization is from others, the less accurate your knowledge of the far-away civilizations will be. Similarly, you might think that a particular mythological species dwells in one area, while it actually dwells in others; I’d like to get other civilizations having the same misunderstandings about other civilizations. Equally, there may be myths about species which don’t actually exist – I intend to randomize what recruit-able species are and aren’t generated in each world, but this won’t be known until you seek them out and separate the fact from the myth. Myths about all creatures will always exist, but some creatures will be real and some creatures won’t each time. Even within existing creatures, myths may give you inaccurate information at first, as I’m intending to build an amount of randomness into each species, too.
Thus, the URR world is fundamentally medieval, except for the fact that while we never discovered all those strange creatures, the player probably will. I’ll warn everyone now that next week won’t have a blog entry; I have a lot of thesis work that needs to be done. If you’re new to the blog (I see a lot of new sites that have started registering on my incoming traffic recently), I suggest you check back previous entries or the info page for the kind of thing that comes in most blog entries and to get a better idea of what the game currently looks like. See you all in a fortnight!
If you haven’t checked it out yet, I’d look at the Winter Screenshot Update! I’ll try and keep screenshots coming now and then, but there are often things that don’t really look like anything until finished. For instance, at the moment, I’m working on ‘connecting’ the different map sectors so that you can move smoothly to another on the local level (like moving across the wilderness in DF). There isn’t really much to SHOW for this, but it plays nicely.
ANYWAY: in the mean time, I’ve been discussing how realistic URR is going to end up – which is to say, what factors do you and your army have to deal with, and what factors can you ignore? Having thoughts about this, I think there are three different kinds of realism people are talking about. I shall call them ‘world realism‘, ‘physical realism‘, and ‘practical realism‘.
For world realism, Tolkien is both the essential, and the cliched, example. The Middle Earth languages came first; Tolkien was originally a linguist, and one who created these remarkable fictional languages and the cultural/social backgrounds of the world in which they existed. The stories, as impressive as they are on their own, are deeply mythopoeic and serve to both further the existence of Middle Earth as a living, breathing world, and to allow a greater output for JRRT’s linguistic interests and the fully-realized fictional languages he had created. In this way, Middle Earth gains realism from the detail, the depth, the complexity of the ideas behind it; we see thousands of years of history in each of Tolkien’s books, and perhaps most importantly, there is a strong sense that the world existed before the stories in question, and will go on doing so afterwards – these are but a few chapters in its history.
By contrast, barely a word is said of magic in Tolkien’s works. Obviously it exists, both from Gandalf and Saruman, Galadriel, and various ‘ordinary mortals’ who are sometimes described as having some ability we would reasonably call magic. Thus, while we can see a high world realism in language and culture, the reader simply lacks enough information to make a judgement about the world realism of magic. Is it so rare and obscure that little of it is seen, or is it simply not fleshed out? For URR, therefore, I prefer the former – there are languages (not as detailed as Tolkien’s, naturally, but not insignificant either) and a long history of the world will be generated before each playthrough, along with a different pantheon of gods, alliances, and all the rest. You’ll also be able to choose an era to enter the world in, which will have an effect on who and what you encounter…
As for physical realism, by this I mean that everything obeys the laws of the universe as we know it (or, in a fictional realm, as they know it) perfectly, but something more specific than this. Obviously, anything in any fictional world has to obey the confines of that world. Even a creature described as a multi-dimensional time-warping space-churning eldritch horror is still, despite all appearences, obeying rules, even if those are rules that state the traditional physical rules of that universe can, under very rare circumstances and involving very unusual monsters, be broken. What I mean is rather something more practical, and applies much more to games than to literature or cinema.
So which is more realistic? NetHack for having things rust, which they should, albeit instantly; or Skyrim, for having things never rust, but at least they don’t rust in a heart-beat when they so much as come within fifty metres of a river? Neither of these is realistic, but both can make a reasonable claim to the greater realism. Similarly, nothing melts or boils in Skyrim, but any fire applied to any potion in NetHack causes it to instantly boil and explode. In URR, I aim to try and keep physical realism high – for instance, metal melts, but does not do instantly, and temperatures differ depending on the metal. I want to make it a part of the gameplay, but not an irreversible, hugely-important part, like in NetHack.
Lastly, practical realism. By this I mean how much the necessities of life impinge on, or affect, gameplay. It differs by games – some don’t include any, while some include some but not others, and often in a limited form. Sure, in Age of Empires you need to gather food, but the food is magically transported into the stomachs of your troops, no matter how far away from a) your food-gatherers or b) your empire, they may be. Of course, in all games where food isn’t in there, it is implied to be transported (not all games take place in a transhumanist world where food is not required!) and just doesn’t factor in. As for URR:
On the one hand, I don’t want you to be able to trek an army indefinitely with no need for food; that food has to come from somewhere, whether from raiding enemy farms, setting up a supply chain, storing it with you, getting it from allied towns along the way, or whatever. However, I obviously don’t want logistics to become the sole focus of the game. A balance needs to be found; you need to consider where your source of food is, but it should be abstracted away from the player – you direct your minions to [Gather food from Enemy Farm X], [Kill all the wild deer in Square Y], [Set up weekly supply caravan from City Z], or whatever, and then they will go and do it. I think this is a compromise between the micromanagement of exceedingly high practical reality (say, DF), and still having relevant factors matter, as they should.
So what does everyone think about this? I want a high world realism (detail, history, language, culture, etc), high physical realism, and high practical realism, BUT the practical realism affects those under the player more than the player themselves; when things are running smoothly, it will be harder to notice than when there’s an issue that needs resolving. World realism creates a believable world, physical realism ensures things melt when they should, and practical realism gives you the chance to starve enemy cities into submission. Everybody wins, right?
Coming Monday 9th: Smooth maps & sidebars!
Coming Monday 16th: Mountains, volcanoes, and the end of world generation.
Here’s the Winter Screenshot Update! These should give you all an idea of how far world generation has come along, and that I’m now nearing the end of designing the world. It hopefully shouldn’t be too much more than a week until all the mountains, rivers and volcanoes are finished, and I can move back onto programming combat. Additionally, all of these have been added to the totally redone ‘About & Screenshots‘ page! Let me know what you think of the new screenshots, and the new page, and generally how things are looking. Hope everyone has a good new year!