Size and roguelikes

Just a quick entry this week. I’ve been coding every day this week (apart from one where Dead Space 2 interposed itself) and a ton of work has been done, including more combat mechanics, severing limbs, armor and weapons being tethered to limbs correctly, displaying all possible combat messages, creature queries displaying more injury detail, species pages on creature queries, pathfinding, and starting a new ‘class’ of enemy.

This class is for enemies that are larger than just a single square. Originally I was intending to stick with the roguelike norm – any creature, whether a Titan or a gnat, takes up just one square on the map. Increasingly, however, I thought this was a terrible idea, so I’ve decided to allow some creatures to be larger. Some creatures can be two squares (e.g. ‘Q’ is the symbol for large quadrupeds, so an elephant may be ‘QQ’), some creatures can be four squares, some nine, one creature can be a long sequence of letters (which will be unveiled far, far in the future) while another species is totally unique (and equally far off). The only one of these to make it into the first alpha will be dragons, and so I leave you with a screenshot of a dragon attempting to fry me. The fire is in its early stages and needs a lot more work; as for four-square-creature pathfinding, large creatures normally have the ability to knock aside trees, and may (depending on strength and other factors) be able to break through walls and similar.

The benefits of invincibility

Today’s blog entry is a pair of screenshots, which show you a ton of what I’ve been working on this past week of nothing-but-coding. This is when I looked at myself in the middle of combat with two enemies (both off-screen to the left), and what kind of information shows up when you do. Until next week, I leave you with some violence I have only survived because the player character is currently (for testing reasons) invincible. Basically, this screenshot should showcase the query function – listing creatures and objects on a square – what querying a creature looks like, and a few recent changes to the UI. There’s also been a ton of work in creating libraries of weapons/materials, the mechanics of wielding weapons/wearing armor and lots of other stuff, but I’ll talk about that next week. I know it needs a bit of fine-tuning, but basically, things are really coming along now. Until next week!

And also a less exciting technical one dealing with equipping weapons, inventory management, etc:

What’s in a name?

The past few days have been full of coding. I’ve been working on the UI; the character creation screens; the options the player gets for world generation; the way the query  function (effectively the ‘look’ function) indexes creatures, objects and other things on any given square; further smoothing the transitions between map grid areas, adding libraries for materials and weapon types and a bunch of other improvements, fixes and developments. I’ve also been doing quite a lot of work on name generation. In some ways, this ties into my future desires for languages, but for now I just want to have names generating for the main three species (that is, humans/dwarves/elves). The two major reasons I’m putting these in early on are:

1) Firstly, I want surnames to be consistent between families, clans, etc. If I let the player type in any name they want, you won’t be able to get that consistency. On the other hand, if you can only generate a name I think people might feel their characters were a little too generic. Thus, I’ve gone for a Bioware-esque compromise; you can put in a first name for your character (no spaces) or generate one; and then you can generate a surname for your species until you’re happy with it.

2) I need to have some names generating in order to test other features – these include being able to assign ‘nicknames’ to particular creatures; being able to learn the name of another creature, so it no longer just says “The male Orc” or whatever; and it’s given me an idea of how difficult (not very) it is to produce interesting name-generation algorithms. I’m also going to make them differ a little according to gender, as they already differ depending on first name/sur-or-clan-name.

Anyway, here’s a screenshot of a quick fifty generations. The first column are dwarves, the second elves, the third humans. I’m very happy with the dwarf/elf names, but I think the human ones still need a little bit of work to look a little more… consistent?… than they currently do. Let me know what you think. Lastly, I’m not quite sure how many possible names there are for each species, but it’s in the hundreds of thousands easily. Click to enlarge!

The Secret Lives of Creatures

With a lot of academic work done the past fortnight, blog entries should returned to their regular schedule from here on. Additionally I’ve noted what people said about interest in hearing about the coding side of the game design – at some point (possibly next week) I’m going to produce a long entry with the details of the world generation system along with the options/variables you can alter in the world gen screen. For now, however, covering all the changes to creatures raises the next question – where exactly are they?

The map key has been redone, and offers the best demonstration of this. Intelligent creatures are located in settlements of a type unique to their species. Each letter for each settlement relates to the creature – ‘C’ for Cyclopes, ‘F’ for Fiends, ‘l’ for Lizardmen, ‘M’ for Minotaurs, ‘N’ for Nagas, ‘O’ for Ogres, ‘o’ for Orcs and ‘U’ for the Undead. Hence:

I don’t know how many of these will be programmed in for the first alpha. Cyclops Homesteads will definitely exist; they have already received a fair bit of work. I may also add in a few of the more unusual ones, but leave them devoid of creatures for now – you may be able to stumble onto labyrinths and necropoles but they won’t be occupied just yet. Well… maybe you’ll be able to find one Minotaur or so. Screenshots of these locations will come at a later date once I’ve done more work on them (creating and improving creature handling is currently taking up most of my coding time).

Additionally, I’d like to have some Shrines in the initial alpha (though, again, currently deactivated). The generation of deities is going to be semi-random; there’s a set list of potential god names and what they are worshiped by/what they represent, but the rituals/shrines associated with each one, and their particular personalities, will be generated anew each time. Additionally, only a selection of the potential gods will exist in any game. Nevertheless, shrines should vary significantly and there will be a few in the initial alpha, along with a few ruins too. Both of these may be infested with wild creatures, of course, so consider that a warning.

In the mean time, I’ve been working on how intelligent creature settlements fit into empires, territories, etc. As monsters do not group into full civilizations, their settlements are comparatively uncertain/short-lived things that won’t have anywhere near as much history behind them as any humanoid civilizations. Humanoid civilizations are generally unwilling to consider monsters as part of the empire, but will employ them as mercenaries and the like; therefore monster settlements either appear on the edge of a civilization and (rarely) are considered part of it; or, more often, they will be just outside a civilization’s territory. Some, of course – like Fiends and the Undead – will never, ever be part of a civilization.

Probably.

Building a Creature, Part 3

This is the next part of a series dealing with the new abilities, stats and other things creatures have (read back for parts 1 & 2). So, without further ado:

Blood.

This matters in three ways. Firstly, some creatures have blood, and therefore can bleed out. Secondly, creatures have varying amounts of blood depending on their size, physiology, and a few other factors. Thirdly, the blood of certain creatures behaves in certain ways and has other roles to play.

Bleeding out: any external injury to a creature can cause bleeding. Internal injures are handled differently. For instance, if a creature is hit in the chest with a blunt object, it may cause an internal injury but there is unlikely to be any blood from it. By contrast, a sword slash might cause no lasting internal damage but unleash a fountain of blood. When a creature has been cut, it will lose a set value of blood each turn, until either a) it dies, b) the wound clots, or c) the wound is tended to. Creatures can therefore die from being wholly exsanguinated; they would need a significant number of injuries to do so, but it can happen. This could be in the middle of a battle, or after the battle if they don’t get sufficient care. Creatures will sometimes pass out from blood loss before death.

Wounds clot after a length of time, which is again dependent on the species in question. Some creatures have impressive regenerative abilities, while the three main humanoid races, sadly, do not. Though I have not yet finalised how the system will work, wounds can also be tended to, which will both stop/staunch the blood loss, and aid recovery. Bleeding out is also particularly important when on your own – for instance, attack a creature at distance and wait for it to die – or when far from home and far from any kind of medical supplies.

Blood amount: some creatures do not have blood. The undead obviously lack any veins for the blood to go through anyway, and various constructs are blood-less (though they may  have an equivalent; more on this when I’ve pondered it further). Obviously, larger creatures have more blood, and are therefore trickier to kill by bleeding to death; a Titan has enough blood to keep it going until the next ice age (sometimes literally), while a wolf isn’t going to last very long with a major cut.

Unusual blood: some creatures don’t have ordinary blood. This is not to include constructs that may have something instead of blood, since I haven’t decided on that yet, but rather creatures with blood that’s just a little unusual. Some kinds of blood may burn on contact; some might have healing properties; some might have poisonous, disease-giving or hallucinogenic effect; and some might do other things I haven’t even thought of yet (do please suggest any you think of, readers). A few species that might be in the very first alpha have specific, planned, blood properties. Anyway, if you manage to acquire blood (I’ll leave the method up to your imagination) you can dip arrows or other weapons in it, or use it just like any other liquid.

Lastly, a question. Are people interested in more code-related blog entries? I’ve had a few people say they’d like to see, if not actual copy/pastes of code, but description of the details of some of the game mechanics in coding terms. Let me know if you’d like to see these, and I’ll try to include them in the future.