0.5 Flags

The time has finally come to work on 0.5. As much as I enjoyed working on 0.4, this is the release I’ve been really looking forward to, and the one where imagination can really go wild in terms of flags, histories, civilizations, rulers, wars, and all the detail that goes with them. Why was one king known as “The Red?” Why was another civilization persuaded to go war with its oldest and closest ally? Who first began to worship Muulnaroth? Who founded the Cult of Sand? This is the kind of stuff a fully-developed and fleshed-out “epic” world should contain, and it’s great to be able to work on it now and put some serious time into the social, rather than natural, side of the in-game world-building.

The first stage of this has come in the form of flags. Currently there is only form of flag viable in the world, which you’ll have seen in the current release. They are all modeled – though some are a little more exotic than others – on real-world flags, predominantly European ones, though some resemble eastern/central Asian flags too. I thought about having some flags akin to many modern African flags – with distinct items and the like emblazoned on them – but the resolution of the flags prevented that. However, this was a blessing in disguise, since it lets me use more “symbolic” flags in other situations.

Civilizations are now being split into three categories with significant gameplay variation between the three. I’ll talk more about this in a later entry, but the three categories are “Feudal“, “Nomadic“, and “Hunter-Gatherer“. Nomadic societies will be generated in deserts and upon plateaus and plains; hunter-gatherer societies will be generated in tundra regions, and possibly in tropics too; feudal societies will generate everywhere else. All societies will avoid colonizing polar regions, whilst feudal societies will be reluctant to attempt too much conquest in deserts, jungles or tundra, though they will if pressed, and will certainly be willing to start up trade links. Equally, certain rulers who are particularly keen on imperialism may seek to conquer these not for any pragmatic or practical gain – territory, resources, whatever – but simply because they are there. Our own history is replete with wars fought for such foolish and quintessentially human reasons, and it seems like this is something that should be reflected.

So, I decided to revisit the symbolic idea. It wouldn’t really make any sense for nomadic or hunter-gatherer societies to have the same kinds of flags as their more stationary castle-building cousins, so they needed a different type of flag. I did a lot of research into the flags of various non-European societies from the past, or the symbols, sigils or whatever other terms were used, and eventually decided on two different aesthetic styles.

For the nomadic flags I decided on two components – a border and a symbol. The borders pick from a variety of ten, all of which are basically either a single line or a pair of lines, but that vary a little in size and shape. For the symbols I decided I wanted to focus on ones that were either dramatic, military, or more generally “symbolic”. A very different kind of symbol is used for the hunter-gatherer societies, as you’ll see below, but for these I wanted a particular kind of look. These are generally more militaristic societies than the hunter-gatherer ones, more concerned by trade and “statesmanship”, but that need to put forward a strong external image. Many of the symbols fit this bill – maybe a hand, or a fist, or a fire, or a sun, or some swords or other weapons, or an anvil, and the like. Many of the nomadic societies we (in the west) are most familiar with are those from central Asia. Much of my inspiration for these flags came from both contemporary and older flags from central Asia and the eastern-most parts of Europe and seeing the kinds of symbols they would place upon flags. Some – like sickles – were just damned impossible to actually depict within the limitations, but most of the others along with a large number I also came up with myself came out very nicely. Whilst implementing such symbols into full flags in a small version would have been near impossible without an entire database of custom tiles and symbols for it, when the basis of the flag is a symbol which takes up the majority of the square, I think they work quite nicely.

The hunter-gatherer flags, on the other hand, I wanted to be simpler and to contain symbols directly relevant to nature or survival – the kinds of symbols one might imagine a “clan” adopting, but not perhaps a “nation” – and to only have two colours, the foreground and the background. The symbols in this case fall into two categories – the majority of the symbols are animals, though a few represent more abstract things like a field of stars, or a human, or a simple building. There are currently twenty-eight designs of each type – given that each world is unlikely to have more than half a dozen nomadic or hunter-gatherer civilizations generated, it’ll be a while until any player has seen the full selection (especially if/when I add more to the database). There’s also variation in the colour scheme used by either type of flag. Feudal flags select either a pair or a trio of colours from a large set (as long as that trio has not already been used); nomadic flags select one from ten different presets of colours that look suitable together; hunter-gatherer flags have a selection of dark colours to choose from, three very pale colours (which are basically variations on “white”), and then 50% are inverted so some have light backgrounds and some have dark.

Flags05

Hopefully the variation will do several things. Firstly, and most obviously, it should just contribute to a more varied and more believable world. Not all civilizations in history have flags (or symbols, sigils, whatever) akin to those of Europe, and this should help in that regard. Secondly it will mean you can immediately identify the type of civilization you’ve encountered from its flag, even if you know nothing else about it. Seeing someone with a shield marked by a particular symbol, or catching a glimpse of part of an army travelling with a banner will be able to give you at least some information about their civilization, and – given that different types of civilization are restricted to different biomes – have some idea of where that civilization might hail from. Thirdly it’s just another aspect of civilizations that differ according to their basic phenotype (though more on this in another entry) and reinforce the differences between the different sorts. Next week I’ll likely be talking about the early stages of city, road and town generation, and showing off some snazzy new screenshots of how the world map for 0.5 is currently looking.

URR v0.4 released!

After four months of work, I am proud to announce the release of Ultima Ratio Regum alpha v0.4! Click HERE to go to the download page.

HIGHLIGHTS:
- Limbs – damage, healing, movement penalties/bonuses, etc.
- Expanded basic inventory system.
- Addition of torches & healing items.
- Traps – trap rooms, lethal/non-lethal, gas/acid/spikes/poison/fire and more.
- Ability to throw/pick-up items.
- Full terrain & tree procedural graphics.
- 50%-75% time reduction for all saving/loading screens.

The focus of this release is on several mechanics relating to traps which generate in dungeons – specifically throwing items, picking up items, and the implementation of the early stages of the health system. Unlike in most roguelikes where traps are invisible until “detected” or triggered, traps in URR are fully visible, and making your way through them with a minimum of damage forms a puzzle of sorts. In future versions there will be additional methods to navigate traps including raising shields to deflect incoming projectiles. This release has also seen significant improvement in saving/loading/world generation times, the addition of procedural graphics for all terrain when you ‘l’ook at it, and the implementation of a simple and modular inventory system which will be developed in future versions.

For information about the future of the game, please check out the development plan page, and if you have any questions or comments or bug reports, email me at mark at this domain. Thanks to everyone for your support thus far, and I hope you stick with the project as we move forward to generating the rest of the world – civilizations, cities and everything else – in the next few releases.

One Week to 0.4

First and foremost, I’m aiming to release 0.4 on the 21st or 22nd of December! It’ll be crunch time for the next week, but I think that’s a realistic target. By the end of today I should have finished every feature, after which it’ll just be down to bug-hunting, playtesting and compiling. Due to a number of unforseen real-life circumstances in the past month or two I haven’t had the spare time to experiment with a Linux build as I would have liked, so I’ve had to push that back again and focus on prioritizing the game itself. It is therefore once more in the pipeline for 0.5. In the mean time, however, here’s some of this week’s work:

- I’ve finally created an ointment graphic I’m actually happy with. This blasted thing went through over a dozen iterations until I found one I liked. Many of the earlier versions were more like small bottles, but they didn’t look particularly impressive, shading was proving difficult, and I didn’t want there to be any overlap with the ‘bottle’ item type (which will appear more fully in later versions), so I changed it to be something more like a jar instead.

Ointment

- I’ve done a significant overhaul of the in-game UI. Health is still displayed on the left, but it is now displayed in a very new way which gives you all the information you might require about your various limbs in a very concise manner (more on this below). Secondly I’ve added a huge number of extra possible in-game messages, colour-coded them appropriately, and also recoloured some older messages to help them fit into the new order of things. I’ve also adjusted the various bars displayed below the map screen. I’ve taken out the idea of willpower as being akin to a “berserk” attack, and the idea of exhaustion, as I felt they were adding an unnecessary extra layer of complexity, probably wouldn’t play all that well, and – perhaps most importantly – there were other things I wanted along the bottom. So, next to stamina (which is all but disabled for this release) you have four new metres. The first displays your pain level, and as this increases you may start to notice some visual effects clouding your sight. The second is the amount of air you have. Standing inside any kind of cloud (and swimming underwater, in later versions) takes away a unit of air each turn, and unless you replenish your air in time, you will suffocate, as well as taking whatever forms of damage (fire, poison, etc) might be caused by the cloud. In the future there may be items to negate this effect or provide you with more air. Next to that is your blood level. You regain 1 unit of blood every turn, but injuries which are left bleeding without being staunched (by healing moss) or sutured will also cost you blood with each step you take. I would advise against letting that counter reach 0. The final meter shows your poison level; above a certain point poison is fatal. For this release you will either be equipped with a single potion of antidote when the game begins, or I will simply disable fatal poisoning (depending on the time each of these would take). Also, an important note – for 0.4, when you die, you will respawn in the same world. This will not be the case in later versions, but I want people to be able to experiment in multiple lives with the health/damage/limb system without having to create a new world each time.

New UI

Here’s a closeup of the new health system. Along the top we have the six “limbs” – Head, Left arm, Right arm, Torso, Left leg, Right leg. The bits in brackets are not shown in-game, but are visible in the guidebook entry which explains this in detail. Flesh and bone show their statuses on a range of 1 to 4 (with different colours), whilst fire and acid burns are shown by stars. Infections (disabled for this release) and blood loss are shown by exclamation marks. Ointments, healing moss, sutures, bandages and splints are displayed as shown in the diagram, whilst old wounds (caused by failing to set a broken bone quickly enough after breaking it) show as a counter. Do also note the diagram below is actually impossible, as your torso cannot be splint-ed for example, and just serves as an illustration of the system.

HLT

There’s now not much left to do. I need to have the game spawn branches and stones across the map, dependent on biomes; I need to spawn the player with an appropriate variety of inventory items; I need to enable the player to ‘w’ield torches and ensure that torches actually burn down, though until a later version you will not be able to make torches yourself; ensure all throwing/hitting/landing messages for items are correct for all combination of impacts on things you can and cannot see; and then work on the death system, which for now will despawn you, explain to the player that “true” death is not enabled for this version, then respawn you elsewhere on the map. Barring some unexpected pitfalls, see you all next weekend for the 0.4 release!

Health Mechanics

Version 0.4 – now due out before the end of the month – is the first URR version to implement any kind of health mechanic. Technically version 0.1 back in the days of yore had a health mechanic, but that a) wasn’t very well thought-through, b) very badly programmed, and c) actually had no way for the player to heal. I believe it was removed in version 0.2 as the game began to metamorphose into what it’s now becoming, but with the addition of traps in version 0.4, the time has come to recreate the health, damage and healing systems. In deciding how these would work there were factors. The first was how combat will play out; the second was how health and damage should work; the third was how healing should work. I’ll be writing about the way combat is going to work in the future, but the second two factors are the important ones.

Suture

I’ve been certain for a long time I didn’t want a hit points system. It’s perfectly valid for some games, but I decided I wanted something more detailed, with limbs and components of limbs, in the model of Dwarf Fortress or (to a much lesser extent) something like Deus Ex or Fallout. I felt I needed to find a middle ground between the two – DF’s limb system has an incredible amount of detail which suits a “simulationist” game, but I felt wouldn’t be appropriate here; by contrast, both Deus Ex and Fallout seem to generally underuse the potential of a limb-based health mechanic, and rarely do more than “damaged legs = cannot stand up”. I’m currently in the process of considering what effects injuries are actually going to have, but I suspect certain injuries may lower your maximum stamina, reduce your damage and/or accuracy, slow your actions, reduce the weight of items you can carry, and so forth. At this point in time your limbs have two components – the flesh, and the bone – and each may be damaged. In the future certain classes of weapons will be more/less likely to damage each, which will be one of the ways different weapon types are balanced. In this release it is only traps that can hurt you, but in order to enable traps, we have to have a health/damage system, and this required a lot of thought to figure out.

Moss

I was originally planning to have items like bandages function in the following way: you apply them to a limb, then after x turns, the effect of the bandage takes place. Maybe it takes 200 turns for a bandage to aid a wound in healing, for example. The downside of this was quickly apparent once I thought about it – in a game where combat is going to be reasonably rare, and given that I no longer plan on having a hunger clock of any sort, the fact that healing is “slow” is no downside at all. You could just wait around between battles until the healing was complete, which doesn’t exactly make for interesting gameplay. The methods out of this were to either change how the healing items worked – make them instantaneous, for example – or to introduce either a food clock or some other kind of “clock” which pushes the player on. I decided to do the former, and produce a pretty unique (or at least very unusual) health mechanic.

Bandage

Thus, the current plan is that healing items work as follows. When a healing item is used it temporarily removes all negative damage to that limb, and that limb then functions as if that type of damage hasn’t been dealt. For example, even if you have a very deep cut on one arm which might, for example, be seriously damaging your accuracy, applying a suture to that limb will remove the negative modifier, though the wound will still be there. The way I plan for combat to play out will be such that you will be able to prioritize/handle various limbs in various ways, so it will allow for battle plans where you might have to play more defensively to protect a particular limb that is currently healing. There are two types of each healing item – those which have temporary effect, but cannot be undone by another attack, such as healing moss and medicinal salve (no image yet), and those which have a permanent effect , but will be undone by taking another attack, such as bandages and sutures. The latter are for longer-term strategic use until you get back to a doctor, whilst the former are for tactical use in the midst of battle. In turn, different wounds have different effects – wounds to your arms will reduce accuracy and damage, wounds to your torso will reduce stamina, wounds to head have a variety of fun effects I’ll share in a later post, and so forth.

Splint

In order to truly “heal” a limb, you will be able to visit a physician/apothecary/equivalent NPC who will, for a price, be able to heal your limbs back to full. As these will generally only be found in cities (though perhaps you can recruit them into your party?) this will further emphasize the concept that cities will be your “base” of operations – even if the city you are based in might change throughout the game – and you restock and reequip in cities before setting out for each dungeon or area you want to explore. I am not yet sure what effects broken bones will have – nor what effects putting a splint on a broken bone will help out with – but I’m open to suggestions. I’m in the process of figuring this out and whilst a health mechanic will be implemented for 0.4 (due for release in a week or two), it is nevertheless one that is subject to change. As a whole, though, the health system boils down to this – damage is qualitative, not quantitative; items may heal you temporarily but without the possibly for being undone, or a “permanent” heal which may be undone; and cities will be the hub at which you repair your damage inbetween excursions. There will therefore be a risk/reward — how much do you push your luck staying out in the wild, but not being charged valuable coin for healing, and how often do you play it safe and heal yourself up with a doctor?

Lastly, it should be noted none of this is balanced yet – I have no idea how rare/common/cheap/expensive healing items will be, how many turns they might take to apply, and so on, but the basic mechanics as planned out to be as described above. It’s an unusual system, and I think it could work well, but I’d like any thoughts on the concepts anyone has to offer. In the future I’ll talk about my ideas for the combat mechanics, but that’s a long way off – next week we’ll be close to release of 0.4!

Early December Development Update

Things have happened. Here is a run-down of some of them:

Throwing

Throwing is basically finished. You can throw items around, and they will bounce off objects they hit and hit the floor, or just hit the floor immediately if you throw them at it. Tripwires will be triggered when you throw stuff at them, but currently pressure pads will not. I’m still debating whether there should be a weight requirement for triggering them, but I’ll update here once I’ve decided how this aspect should work. Additionally, message adjust themselves based on your knowledge. For example, if you throw a stone through a tripwire, it will produce one of three different messages. If you can see it, it might say “The stone falls to the floor and triggers the tripwire!”; if you cannot see it but have previously explored it, it might say “The stone falls to the floor, and you hear the tripwire release!”, and if you have never explored it, you might get “You hear the stone fall to the floor, followed by a loud snapping sound!”. There are equivalents of these messages for everything your projectiles can possibly hit, which has already built up into a pretty impressive database of messages.

Terrain

Almost all forms of terrain now come with their own lookup images, all unique and procedurally generated. This is something I’ve been meaning to get done for a while, so I just spent a few hours and put together some graphics I liked the look of. Some are more “realistic” and others more stylized, but I’m very happy with how they all look. Here’s a selection. Row by row, left-to-right, these are snow, sand, rock, dried lava, grass/undergrowth in the tropics, savannah, temperate and taiga, the bark of a tree, some branches, lava, and water. I probably shouldn’t need to say it at this point, but these are naturally all procedurally generated for every tile. Some of the wood/tree colours are a little stylized, but they generally try to adhere to a reasonable level of realism/accuracy.

Textures

Exporting Levels

You can now export the interior or exterior level you find yourself on, by pressing ‘X’, which will save to a .png file appropriately named (e.g. “25x29_Ex”, for the exterior of map grid 25 [x-axis] by 29 [y-axis]). Alternatively, the first floor interior of the first ziggurat on a grid would be saved as “25x29_Z1_F1″, and that kind of notation will be expanded to everything else. That function is still in its early stages – and later on you’ll be able to save and export information about your character, or the world’s histories and civilizations and so on – but this is a good start.

The Great Bug Purge

Over the last fortnight I’ve hacked the number of bugs and small fixes I wanted in this version down from a towering 50 to a mere 2 at time of writing, both of which are decidedly non-essential (they are more like slight improvements, not actual bugs). As such, I’m now moving onto developing the health system. Additionally, from this point onwards I’ll be increasing blog entries back up to one per week as we move towards the 0.4 release at the end of December. All that remains is the health system – or, at least, the components of it relevant to this release – and some very simple things like ensuring general “terrain items”, like branches and stones, spawn, and that some start in the player’s inventory. I was intending to allow you to create several items this release, for example oil-soaked torches (combining a torch and some oil, funnily enough), but there isn’t going to be time for that feature. I’m therefore going to push it back a version or two, and that’ll give me more time to think about what other item combinations I want to allow.