June Progress II

The last week  has seen more coding than much of the last month – having lacked the internet for the past week, very little else has been done aside from it. As ever, the release is a mix of things I’m making public before-hand and a few secrets I want people to find, but here the updates I can share. I’m aiming for release probably around late July at the moment, but it might get pushed into early August. The first half of July is almost entirely full with academic work, so we’ll just have to see how it goes. I’ll be doing a lot of playtesting towards the end of June once I have a pretty stable build, but ziggurats are looking all but finished.

Puzzles are 100% finished. There are five “levels”, finishing off with “boss” level puzzles. Even when I know how to solve the puzzles, they still take me some thought. Playtesting it with people who don’t know how they are generated under the hood have found them so far genuinely challenging and really interesting to solve, so I have high hopes. They include a vast quantity of procedural art (something like 200+ images?) and over 300 possible puzzle permutations, and that’s not even counting the clues. You’ll have to play A Lot if you want to see even a small percentage of these things.

Ziggurats are 99% finished. They generate the entire buildings, all puzzles generate (as above), the structures inside and outside match up, dungeons are three-dimensional, which is to say staircases lead directly up and down, not to random points on the floor above, and some areas can only be accessed from floors above or below. It makes for a really interesting structure to explore, and it’ll be all the better in the future once a greater variety of rooms exist. Special ziggurats also have secrets atop them, whilst by the end of tomorrow other ziggurats will have clues pointing you towards the special ziggurats if you’ve taken the wrong one. In the future these will be treasure rooms etc. Lastly, as well as “Look-up” graphics for blocks, I’m adding ones for doors, iron gates, and a few other things. They look pretty cool.

A basic inventory system is now in place. This is not what it will look like in the future, but suffices for the time being to deal with the few items now in the game. It won’t be redone for the release after this (probably), but certainly will once a decent number of items actually enter the game.

Next update will be next Monday, and since I now have internet at my new place, they should be regular until release (I know I keep saying this, and failing to keep to it, but I’ll try). By this time next week, ziggurats should be totally finished and I should be onto bug fixing and optimizations. I’ve had a very crazy idea for hugely reducing save/load times I need to try out, amongst other things.

As a final note, I’ve taken to streaming games on Twitch. At the moment I’m doing a Dungeon Crawl Stone Soup extended endgame run, but I might stream coding and playtesting or similar in the future if people are interested, and it could be a cool way to just chat with you guys! Let me know what you think, and see you next week (or on a stream). My account is http://www.twitch.tv/maasbiolabs, and I’ll probably be streaming some DCSS half an hour after this blog entry goes up…

Character creation

Let’s talk about character creation for a bit. Or, more specifically, character creation in roguelikes.

NetHack gives you very few initial options. The player is allowed to choose their class (Wizard, Barbarian, etc), race (Human, Dwarf, etc), gender (I’m sure you can work these out) and alignment (Lawful, Neutral, Chaotic). Your starting statistics, maximum statistics and the skills they can/can’t learn (and the extent to which each can be learnt) are determined by your choices on the above, and are fixed for the remainder of the game. If you spawn as a Wizard, you simply cannot reach the highest skill with the axe, for example. You have minimal options, and background algorithms determine your skills and, therefore, your gameplay (to a large extent) from those few initial choices.

At the other end of the spectrum, the Dwarf Fortress character creation screen in Adventure Mode gives you a wealth of options. As well as picking species, gender and hometown, you can fine-tune your stats and your skills to whatever degree you want. In Fortress Mode, you can choose what exact supplies you take with your band of adventurers. In contrast to NetHack’s sparse options, and the relative opacity of how skills function, DF lays almost everything out for you at the start and gives you a huge number of options. However, importantly, there are no ‘class’ options (at least in Adventure Mode), and you simply choose which skills you desire.
These differences got me thinking about the level of choice I want to give the player in URR. I knew i wanted to give you a large level of customization, which moved me away from any kind of ‘class’ system and towards one focused on stats and skills, without boxing in the player’s options.

Initially, you select your species, your gender and your age. Your home town is selected at random, based on those owned by your species. I considered letting you select a town, but that would reveal the map, and exploration, discovering new lands and the like are going to end up as a significant goal in the game.

Once these are selected, you will then (this is being programmed at the moment) be taken to a screen on which you are given a hundred points to allocate into different areas. These include:

– Base stats:

These are strength, endurance, dexterity, willpower, and intelligence. The more you try to raise one above your species’ starting stats on the point allocation screen, the more it costs. Which is to say, putting one point into ‘Strength’ costs 10 points; the next costs 15; the next costs 20; and so on and so forth.

– Starting skills:

These are cheaper than stats – while the Strength skill applies to weapon damage, how much you can carry, how well you can chop down trees, pull back a bow, and many other things, skills only determine a single one of these. They are therefore a lot cheaper, and a lot more numerous. For instance, bow use is determined by Strength and Dexterity (stats), and Bowstring Stability, Wind Accommodation & Bow Accuracy, while the number of shots you can fire per turn (initially 1) is ruled by Targeting Speed and Drawing Speed.

– Starting items:

You can choose to spend points loading out your character with starting items. You can get going with any piece of armor of a number of qualities (some would be too valuable to spend even your full 100 points on!) and a variety of other items too. Likewise, a number of weapons of various materials are available, but you can currently only begin with two of those. You can also spend points to start with cash.

Once you’ve used up all your points (any remaining unallocated points are converted into the currency of your species), your game begins! In the initial alpha, you will spawn out in the forest, but you’ll soon be spawning in a home village, chosen randomly. Of course, balancing the cost of the different menu options is something that’ll take time, but for now, the values I’ve tentatively assigned seem reasonably balanced. This’ll be one of the many calls for feedback in the initial alpha, too. I debated letting you choose a weak initial ally on the menu (say, an attack dog), but I felt restricting it to these three was stronger. Can anyone think of anything else you could initially select?

Lastly, I still aim to have the initial alpha out by the end of the year, but I’ve had many people say to me that they’d prefer to have a bigger alpha released when it’s ready than ‘force’ a release before next year. So, while that’s still my aim, if there are initial combat/AI features I want, I will likely focus on implementing them, rather than meeting the rather arbitrary deadline I’ve set myself.

Coming Monday 31st: The URR map, and the existence of ‘battlefields’.

Coming Monday 7th: More detail about combat; stunning, unconsciousness, blood loss, impaling, and more. 


Weapons. Lots of weapons.

Firstly: thanks to everyone who posted and contacted me with initial alpha feedback. It is hugely appreciated – once the initial alpha is up, I will either open a forum or create a specific post/page for feedback. In the mean time:

This is a pretty game-mechanic-heavy blog entry, and is also pretty screenshot-light. You have been warned.

Weapons divide down into four categories: stabbing weapons, cutting weapons, hitting weapons, and impaling weapons. Each has an advantage and a disadvantage. Each also has a “to-damage” chance, and a “to-penetrate” chance, which is how effective it is at cutting through flesh, rather than just damaging it, and hitting the bone beneath. For creatures that have only one ‘layer’ – like skeletons which have only bone, or Shoggoths with only ‘flesh’, the to-damage chance is used. For creatures with chitin instead of interior bone, the chances are simply reversed – the to-hit chance will damage their chitin, while the to-penetrate chance determines whether you manage to hit the weak flesh beneath.

Note: you and any other creature can, technically, wield anything you’re strong enough to pick up (which is to say, you can wield an Orc arm from the start of the name, but never will you be able to swing a Titan’s corpse). However, non-weapon ‘weapons’ are generally so ineffective it will likely only be a last resort you would ever do this. I’m also working on a variety of unarmed/barehanded combat options, too.

Also, in terms of advantages/disadvantages, I will not here list things like price, availability, etc. Simply how they perform as weapons.

Stabbing:

Stabbing weapons consist of kunais, daggers, knives, and sais.
ADVANTAGES: Light; therefore easiest to wield very accurately.
DISADVANTAGES: Shortest reach; can be harder to target body parts on larger, more complex creatures.

Cutting:

Cutting weapons consist of scimitars, shortswords, sabres, katanas and longswords.
ADVANTAGES: Can occasionally be used to parry incoming attacks (as well as a shield); very small chance of pinning foe to objects.
DISADVANTAGES: Requires more skill than other weapons, thus requiring higher dexterity.

Hitting:

Hitting weapons consist of clubs, flails, maces and axes.
ADVANTAGES: Can knock back targets; stun targets; and break bones without needing to get through flesh first.
DISADVANTAGES: By far the heaviest class of weapons; therefore hardest to wield accurately.

Impaling:

Impaling weapons consist of spears, pikes, halberds and ranseurs.
ADVANTAGES: Longest range, so can hit up to taller creatures; can pin creatures to objects.
DISADVANTAGES: Unwieldy, so greater dexterity required to use accurately (mitigated if you haven’t moved the previous turn).

Accuracy of weapon use is dependent on two things – strength vs the weight of the weapon, and dexterity vs how ‘wieldy’ the weapon is. If you wield a weapon too heavy for a character of your strength to use effectively, your accuracy will decrease. Similarly, if you wield two weapons whose total weight is too high, your accuracy will decrease for the same reason. The more unwieldy a weapon you wield, the harder it is to use it accurately, so you’re far more likely to land a knife accurately than a halberd, given the same dexterity.

This then ties into another factor, which is the height of creatures. The shorter the attacker is and the taller the target is, the fewer parts of its body it can hit. Without a long weapon, you cannot hit the head of any creature a Cyclops or taller, for example. By contrast, large creatures hitting small creatures are much more likely to hit! Effectively, the quality of your weapon; the type of weapon you wield; the height of your target; and your strength and dexterity determine your effectiveness in combat.

So, the key question – do these four types seem balanced?

Coming Monday 24th: Options for a new player, and embarking on your adventure.

Coming Monday 31st: The URR map, and the existence of ‘battlefields’.

The many properties of a U.R.R. item

This is partly a follow-up to the some of the discussion in the comments page of the previous entry. Still, if you’ve read that (or haven’t, and can’t be bothered), this post is about items in U.R.R, and the many, many ways in which they interact. Alas, since a list turned out to be a much better way to talk about items there is no flowchart this time, but our normal flowchart programming is sure to resume soon enough.

First, it’s worth noting not all items have all the same properties. Potions do not have a “material” property because all potion bottles are made of glass. Scrolls, likewise, because all are made from paper (and highly flammable paper at that – take note!). Similarly, weapons have more properties than armour, which in turn has more properties than alchemical substances, and so on and so forth. Because weapons a) have the most properties, b) are a vital part of what you & your allies go into battle with, and c) are almost fully programmed, this entry is going to focus on weapon properties. However, a lot carry over to other item types too.

Volume – all items have a volume. This determines how many can fit into a single square of the map; how many you can fit into containers; and, on a basic level, simply how large it is, and therefore how likely it is to hit someone if thrown, for instance. No longer are roguelike boxes of endless depth; you can only fit so many bodies in a container before you just can’t close the damned lid.

Weight – all items have a weight. This influences how far you can throw them, how clear a trajectory they take (momentum!), how much you and other creatures can hold at any one time, how likely ice is to crack if you put it down on it, etc. Some items are simply too heavy – no matter how strong you become, you can never carry a full Titan corpse. A Titan, head, however, is a rather more manageable weight (and volume, for that matter).

Melting Point – applies to almost all items, but non-metallic items have this functioning as a “burning point” rather than a melting point. This ties in to the previous entry, therefore – if you charge into battle with any fire-breathing creature wielding your wooden club high above your health and covered in wooden armour, you will shortly find your club destroyed, and everything you’re wearing on fire. Which will, of course, burn you until you take it off. On the other hand, a full set of tempered steel will stand up rather better. I am considering putting in a freezing equivalent whereby items become brittle, can shatter, etc – thoughts in the comments on this if you have any!

Material – this determines how it behaves in certain environments. Metal rusts in water; wood rots in water; etc. Closely tied to melting point.

Damage – metallic swords, for example, can be intact, notched, damaged or badly damaged. The damage an item takes from use reduces how effective it is combat, and its value. As with most games, you can repair these things yourself given enough skill – and a campfire, appropriate smithing tools, time undisturbed by foes, raw materials, etc – or simply pay some random civilian to do it for you. That’s what they’re there for!

Decay – closely tied to material. Rusting, rotting, etc. Once again, reduces effectiveness, but not as severely as damage. Can also slightly change the effect of a weapon – an intact longsword is better at slashing, while a badly rusted one is much less powerful, but might cause nastier wounds. This is never a worthwhile trade-off, but keeps weapons semi-useful even when twisted, blackened wrecks.

Enchantment, blessing, quality, alignment – determine, respectively, damage added on to every attack (e.g. +3); a variety of effects (the undead hate blessed weapons; cursed weapons can be tricky to get rid of; etc); the multiplier to the price it fetches at market; and what alignment of foe it is particularly effective against, if any.

This page is subject to change before the alpha release, but if you ask the game to show you the detail of a weapon, a larger window will appear and show you:

Tempered steel longswords are the peak of the class of ‘sword-like’ weapons…

This also, of course, shows another feature I haven’t even mentioned until now – weapons have a history, which keeps track of particularly noteworthy creatures you killed, and how you killed them. Perhaps, if you kill enough uniques with one weapon, the rest of the world will come to regard that blade as an artifact…

Anyway – weapon histories being a whole series of posts in themselves – the white text denotes the best possible outcome in that category. In this case, an unrusted sword. Light grey denotes the second best – the “particularly sharp” modifier is below the sharpest that bladed weapons can be. Runic information will be displayed in the appropriate colour, while the histories are displayed in descending order of fame (and, therefore, strength of creature slain) and likewise descending colour.

So there’s a pretty comprehensive summary of weapon properties, at least. All items can, of course, be thrown in to fires or carried with you across lakes if you want to find out what happens. More will be said on this in time – particularly on modelling fire, and cellular automata – but until next time: don’t fight dragons with wooden armour.

Coming Friday: Detail of the morale system, or: how to terrify an Orc into insanity (Part 1).

Coming Monday: Detail of the morale system, or: how to terrify an Orc into insanity (Part 2).

 

Item properties, and why we need them

Let’s talk a bit about items in games, and how little you can generally do with them. This was intended to  be an entry about the item properties in U.R.R, but I now realise a little bit of abstract discussion is required first in order to explain why I’m trying to model items so realistically, and why I actually care about the melting point of copper and stuff like that. When you contrast items in most games with individuals – the player, enemies, NPCs, whatever – items are almost impossible to do anything with, and you interact with them in a very linear manner. The extreme is obviously point-and-click advantages where the player must somehow work out which one item will connect with which other one item to move them forward, but this is still a strong trend. In the average FPS, the sequence is thus:

You cannot choose to drop a gun – but then, why would you need to? Gordon Freeman can apparently store all his weapons, bazooka included, in the apparently prodigious storage orifices the Hazard Environment Suit has designed, presumably, for this purpose. Or perhaps it’s a flat-pack bazooka and just telescopes somehow to fit in his pocket.

Whatever the cause, there are no more advanced options with the average FPS weapons than displayed above, and excluding keys, keycards, quest items, etc, there aren’t really many other items in FPS games. However, given that – to some extent – I’m making an RPG, let’s look instead at a quick flowchart I put together for weapons – which you can do more with than most items – in a relatively advanced RPG. Were Skyrim out, I’m sure I’d wax lyrical about it instead, but since it isn’t, let’s talk about Oblivion, and look at this flowchart.

This has a lot more to do. Sure, you can’t attack an Orc with a pair of rusty greaves, hack its arm off, pick up its arm and then beat it to death with it before kicking the battered corpse of the Orc out of the pool of its own blood and vomit (which, I feel compelled to point out, you can do in U.R.R) but you can still drop them, repair them, and (nominally) move them about even outside your inventory.

However, all of these actions take place in inventories – which is to say, some of the time the weapon is in your hands, sometimes in the hands of a shopkeeper’s hands, and the only time they are out of your hands are the moments between the slaying of a foe and the looting of its corpse, and there isn’t really anything you can do at this point.

Additionally, these items are generally invincible, except under specific circumstances. Which is to say – if you collect a sword from Oblivion, climb to the top of the tallest mountain, hurl it off the peak, then find it, leave it underwater for a year, then find it again, hurl fireballs at it, jump up and down on it, throw it against a cliff a few thousand times and then look at it again… it will be undamaged. Utterly. However, if you take this same sword and kill a bug with it, the sword will be damaged upon the conclusion of the combat. The weapon only actually functions as you’d expect in a very specific context (though, with that said, it would have to be some flimsy iron that becomes damaged by slicing a bug) and if you do anything outside that context, the item simply remains invincible.

Thus: what can be done to resolve this? To me, items in most games are almost ‘on rails’ – unless you do the specific actions expected, the item behaves as if it simply doesn’t exist at all. I’m hoping to try something different in U.R.R. However you use items – whether you wield that sword against your enemies, or throw it on the floor, or leave it in a fire, or dip it in the ocean, or a large enemy stamps on it, or anything else, the item will respond appropriately. If you leave your armour in the path of a rampaging horde of Titans, you will not have any armour left to come back to. If anyone has any thoughts on the narrow functions of items in games (or any property items should have in U.R.R. I don’t seem to have thought of!), then please leave your thoughts below…

Coming Monday: U.R.R. items: damage to decay, volume to weight, and material to melting point…

Coming Friday: Detail of the morale system, or: how to terrify an Orc into insanity.