Thursday, January 23, 2014

Back to work - finishing up character creation and implementing priest healing

Hello, it has been a few months since I've made progress with The Burning Plague but I'm back to work with a few days coding in a row. The hardest bit after all that time is figuring out what all my code does particularly when most of my documentation and comments is me swearing at my future self and apologising for not documenting properly!

I spent a few hours working on finishing up the half-done character creation system. Now you can customise your character with respect to your attributes and what skills you specialise in. That sounds fairly basic but I had to much around coding new menus for that custom purpose and it was one of those annoying jobs which it's hard to get excited for.

Here's a demonstration of a new bug that goes along with healing, if you raise someone from unconscious then they remain looking like a pile of bones and don't do a whole lot because the game treats them as such. I'm not sure if I want people to come back from that state really, but I'll think about how I'm going to approach it. But it's fun for now.


Next up is magic. It's already kinda in, I've just got to throw in some spells, starting with a basic offensive spell and moving on from there.

Saturday, September 21, 2013

Release of first playable demo

Because there is a thing called the Annual Roguelike Release Party I was convinced that this is probably a good idea for me to get involved with and post up a pre-alpha of what the game consists of so far.

https://www.dropbox.com/s/zlw8ns0x4eluoel/The%20Burning%20Plague%20v1.zip

It includes a half-finished character creation process, pretty pictures, good friends to adventure with and a bunch of fights (some too easy and some too hard). It doesn't include a plot or magic or much replayability. A lot of the plot content that I have been working on has been stripped out of this release so I can keep my powder dry for a proper time to release that side of the game.

Commands are keypad (or vi-keys) and 'c' to look at your character information and that's about it at the moment, as I've stripped out a lot of the buggy work-in-progress other commands.

The /data directory contains all the relevant game content files and you're able to fully mod the map and encounters even at this early stage.

Have fun!

Wednesday, September 18, 2013

Combat testing and balancing

A bit part of what I'm working on at the moment is making sure that the combat balance feels about right and isn't way too easy or way too hard. What exists currently is a test map with a village full of peasants, a small kobold camp nearby and through a swamp and underneath a mountain range is a series of caves filled with a range of monsters.

All of the monsters and characters as implemented follow the example Dead Simple stats and abilities exactly with a couple of exceptions for the homebrew combat changes I've put in as discussed in other combat blogs, and I'm interested to see how much of a challenging game this makes it, particularly in light of there being an absence of healing in the game at the moment.

Starting a game with a soldier named Milly, I didn't bother waiting around for my companions but went straight to the kobold village where I managed to take out a group of kobolds with their pet dire rats without being injured. Arguably it was a bit easy for this character type but I'm not entirely upset with that because it's a fight that a non-combat class would struggle with if there was no help and combat classes should logically find it much easier at that stage.

Heading into more challenging fights though really became interesting. I've currently got a small group of orc warriors led by an ogre near the entrance to the caves. The orcs were marginally challenging for my soldier and I managed to knock out two of them uninjured before running into the ogre. It quickly became apparent that I wasn't going to be able to do much damage at all to the ogre without being in serious risk of death so I was forced into retreat when I became injured. I led the ogre towards a group of neutral dwarves mining nearby in the caves and hoped that this would help me out. I attacked from the sides as the dwarves rushed into battle. Each and every one of them was knocked unconscious, even with my help, and we still hadn't hurt the ogre at all.

So I kept running, leading the ogre with me, and back towards the peasant village hoping for more reinforcements. My companions who had waited there for me ran to my assistance and both fell quickly but not before we managed to injure the ogre. So it next became a matter of leading the ogre into a group of peasants, hoping that their superior numbers would do the job with me still hacking away from the edges and hopefully staying safe. Eventually we got the job done, but at a significant cost as you can see below.


The ogre's body count ended up at about ten or so, with my character taking two injuries in the extended fight.

So as things stand, there's certainly some very tough fights already in existence which require a bit of thought and planning to overcome. Things will change a bit as magic and other systems are introduced, but I don't mind the difficulty as it is and I will be aiming to make combat like this a challenging experience so there is a definite risk-reward trade off, particularly with taking on the tougher monsters in the game. My plans with respect to healing being offered to the player group is that there will need to be some plot progression associated with it so you can't just run for help after every scratch received in combat but instead there's a bit of thought needed and planning as to what you can take on at your current health level.

I haven't experimented with fighting a number of the undead enemies put in there and they probably aren't all as tough as the ogre... hopefully.

EDIT: And while I'm still testing, here's a photo of some undead vs goblin action. Monsters are split into factions and treat you just the same as they treat their other evil enemies.


Spoiler: undead walked all over poor old team goblin :(

Thursday, September 12, 2013

Improved map display

Just an update to confirm that things haven't ground to a halt despite me being snowed under with a bunch of real life priorities.


While using libtcod, there's a limitation on being locked into a single font size for the entire display, which is great for a traditional roguelike but a bit restrictive when it comes to graphical tiles. Previously, the small sized graphics were a bit difficult to take in and it was a bit weird to have them the same size as each letter used for text.

With this workaround, I don't get around the libtcod limitation but work with it by having an alternative tile for each and every image to be used in the map only which are then split into four characters. Once all four of those characters are written together, a larger font is simulated quite simply and the above screenshot shows what it looks like. It doesn't allow me to get around the limitation with respect to other variations in font size, but there's no reason why that can't be planned for in other projects, and what I've done above is a big improvement in my opinion.

Saturday, June 1, 2013

Rasatala


I'm working away on a few things slowly in relation to The Burning Plague, but I thought it was time to update this blog and an entry about my most recent 7 day roguelike is probably next for me to do.

For this year's competition, I wrote Rasatala, an Indian-themed roguelike with an aim of being traditional in gameplay style but maintaining the directional combat and movement of Mujahid and incorporating that into an extended game without the same focus on a combat gimmick in the form of backstabbing.

You can download the game here: http://sites.google.com/site/rasatalarl/

If you're interested in watching someone play through the game and do a pretty good job of picking up the intricacies of gameplay, then take a look at the following Youtube from TheUberHunter who is doing a video review of every single game from this year's challenge, which is an absolutely monumental task.


I'll explain a few things about the game and set out what I was aiming for and discuss whether I think I acheived those goals or not.

Setting

Like my last two games, I was aiming for a unique twist on a the typical fantasy roguelike so the gameplay would be familiar but the style would be different and my hope was that this would be the thing that makes my game memorable, ie. that Indian roguelike should be identifiable enough just like I've seen some people refer to Mujahid as that Islamic roguelike.

I did a bit of research into ideas for different classes and Indian weaponary and armour to put the whole picture together as well as only trying to include monsters which pop up in Indian mythology and real life, such as nagas, spirits and tigers.

Of particular help was the Dungeons and Dragons extension Maharsarpa from which I lifted the names and locations as well as the bulk of the inspiration for character classes and items to be used throughout the game.

Distinct character classes

I really wanted to have a go at making different classes which played very differently with this game as that's something which is often very hard to squeeze into a game you are writing in just seven days but it's also one of the main features that I think roguelike players are interested in. There needs to be some degree of character customisation and development for players to get involved in the game and that's something I deliberately left out of my two previous seven day roguelikes.

In this instance, I went with the following classes which apart from their unusal names, fit into some fairly recognisable roguelike tropes:
  • Kshatriya - named after the Indian social class made up of privileged warriors, they are your stock standard melee fighter with above average combat stats and a preference for taking on their challenges head on. I suspect that they're the simplest class to play but arguably the hardest class to win with because direct and thoughtless combat in Rasatala inevitably leads to a short game as health doesn't regenerate naturally and don't reward the player with experience or treasure directly in any event so they're therefore better avoided.
  • Shikari - named after hunters and trackers from Indian history, this is essentially an archer class. They start with a bow and a quiver of arrows and they're absolutely lethal from the outset but crippled by a dependence on a non-renewable resource At a guess, I think they're probably the most powerful all-round class as long as you can keep finding quivers of arrows. Their special ability is double damage with ranged attacks which is very, very powerful and can dominate even the strongest enemies - but as I said earlier, they'll struggle very much if they find themselves out of arrows and backed into a corner.
  • Brahmin - the mystic of Indian society and essentially in Rasatala they are designed to be a pacifist priest who gains insight and power as the adventure continues. They'll rely heavily on their bodyguard who enters the dungeon with them (and I'll discuss this in a bit more detail shortly) and their powers are decidely non-lethal. In fact, I don't think they would be able to beat many of the creatures in the game and their early game is brutal. But, if they're developed properly, the later powers they gain access to are very useful indeed, and without wanting to spoil it completely, they have the limited ability to shield themselves from attacks as long as they don't attack themselves, they can scry the dungeon around them to avoid danger and locate their goals quickly, and probably the most fun power of all is being able to convince some of the denizens of the dungeon to join forces with the player.
  • Thug - with a name that refers to the group of organised assassins operating in India at various points in history, the Thuggee, who worshipped Kali, the god of violence and sexuality. In gameplay terms, they more closely resemble the player character in Mujahid, but instead of being able to kill instantly with a backstab, they do a lot more damage instead. They are weak fighters otherwise and terrible at hand-to-hand combat with an aware enemy, so they are best played as hit-and-run stealth fighters. They start with a smoke bomb for theatric getaways.
Companions

I included allied creatures in this game and while it doesn't probably have a huge impact on long-term gameplay (because your ally is usually too stupid to know when not to fight and winds up dead quickly) it adds a bit of variety to the early game. In particular, Brahmin will need to rely on their bodyguard initially even if it's only as a distraction, but Kshatriya come with a servant, Shikari have a companion of roughly equal combat prowess and it's only the untrustworthy Thug who enters the dungeon alone. If you manage to make it to the next dungeon level, your companion will make the journey with you. And as discussed a bit above, Brahmin might find themselves with some very interesting and powerful companions as the game progresses.

Interesting monsters

The goal was to make each monster different in terms of the challenge it presented and the tactics needed to get past them, either in combat or otherwise. An example is that the low-level enemy found first is likely to be a cultist who seems relatively easy to best in combat. But, the cultist possesses the same backstab ability as the Thug so it can be lethal to turn your back. Nagas are slow and very powerful so usually present no challenge to skirt around but are difficult to fight in melee. There are enemies without hands so doors prevent them from reaching you and enemies who move faster than others so you should try and avoid being seen in the first place. Deep within the dungeon, you might find an enemy who combines a few of these traits and presents a very difficult challenge.


Plot and progression

I alluded to this earlier, but a key feature of the game is a lack of natural regeneration of health or the game's equivalent of mana for that matter. The player needs to progress the plot via interaction with the spiritual guides found throughout the dungeon, the swamis, and by doing so they can receive healing, as well as upon completion of tasks, the game's equivalent of levelling up takes place and you have the chance to develop your character along a path of your choice. For instance, some characters have the choice of learning some low level Brahmin powers eventually but it's arguable as to whether this is worth the cost in terms of skills investment, while others can focus on attacking skills, evading attacks or their health and strength. There's no reason why the player needs to bother with the plot at all apart from character progression but if you dive straight to the bottom of the dungeon hoping to defeat the final evil within, you might find yourself overwhelmed.


Things I did badly 

Overall, the game is pretty much what I was aiming for and I think it plays well and there's heaps of depth in terms of gameplay and I'm sure there's probably more to this game than most players would ever bother discovering due to it's almost certain limited popularity as it makes up just one entry in a huge swag of 7DRL entries this year.

But the big problem is that I think players will tire of the game before they get to this point and the main reason is the directional aspect of movement. While you can move without turning which can speed up travelling through the dungeon as long as you know where you're going, the exploration of the dungeon can feel fairly clunky and slow - particularly so because the random maps are created from a number of pre-defined pieces which are either rotated or reflected before being slotted together with some random deteroriation to make things interesting. While I'm pretty happy with that process of random dungeon generation, it has the effect of making the dungeon level a bit of a warren of caves and passages which fits badly on reflection with the extra keystrokes required to move around the dungeon. This is a pretty big negative.

I would also like to have included a bit more variety in terms of opponents, but that's a smaller point and probably a necessary thing in the context of a time limited development process.

---

So overall, I think Rasatala is a reasonably good game with a bit of exploration to be enjoyed in terms of working out the best way to use the game's mechanics as well as the different strengths of the character classes. I don't have any illusions of this game becoming a powerhouse of the roguelike world, but I'm glad that I saw the concept of directional facing and its importance in combat through to a reasonably complex conclusion and I feel that it's a good prototype if someone else is considering a similar approach for a game in the future.

Saturday, May 4, 2013

Combat development

With the introduction of the different classes - soldier, priest, thief, barbarian and sorcerer - I've been working at incorporating the different parts of the rules from Dead Simple to make the classes stand out a bit. I've deviated from the rules a little bit and that's probably inevitable when you think that the system was worked out to be used as a group where it wouldn't matter too much if your own character was a casualty in battle because one of your group could finish the job for you.



In a single player game though, it's a fair bit riskier to allow that to happen and because of that I've moved a little bit from the basis rules set out in the system. The overall guts of the combat system is as follows:


  • Basic combat is the attacker making a roll against their fighting skill minus the defender's dexterity skill on a d20. If you roll less then the required 'to hit' score, then it's a successful attack. The amount by which the roll succeeded is the damage caused by the attack. That damage is reduced by the defender's armour and shield combination. And finally the defender then rolls a d20 against their toughness score minus the damage remaining after being soaked up by armour, and if they fail that roll then they are damaged in some way.

  • The Dead Simple rules allow for basically three states - uninjured (which is 'healthy' in my game because I didn't want the negative of a term to be used), wounded, and unconscious. There's also true death after that, but I'm not so interested in that for now. I've expanded on that by making creatures a bit more robust. It now goes: healthy -> injured -> wounded -> unconscious. So in effect, the average character can take three successful blows before being incapacitated. 

  • And after setting out the case for average characters, we have the example of barbarians and certain monsters who possess the 'berserk' trait. This trait means that when that creature is damaged beyond 'wounded', they enter a near-death frenzied state where they receive a -5 malus to most skills with the exception of fighting and toughness which receive a bonus of +3. The upshot of this is that barbarians are the damage-soaking tanks of the game and become very dangerous just when things look the bleakest for them.

  • Soldiers possess the 'swordsman' trait which means they automatically attack twice per round, which is a very powerful ability.

  • Thieves gain double the bonus for surrounding an enemy which every other character enjoys. It's a +1 bonus to fighting if you manage to gang up on an enemy (and of course this applies to enemies surrounding you as well) but thieves get +2. And a further deviation from Dead Simple is the introduction of a stealth d20 check when thieves attack in a group situation, with the amount by which a successful roll beats the score needed being added to the damage in a powerful backstab attack. The point of this approach was to make the thief a useful secondary fighter in group combat, but relatively weak and exposed on their own.

  • Priests will be the healers and support fighters, but are relatively capable on their own and sorcerers haven't received a whole lot of love yet so they're just weak fighters in nice looking robes with a wizard hat at the moment.

  • And finally, the last change I made to the Dead Simple rules was to include a speed d20 check for every character when they attack an enemy, which on a successful roll means an additional attack. The idea behind this was to encourage something more than just brute strength fighters - a dexterous speed-based fighter might give up damage dealing potential for the likelihood of attacking more often in combat. Currently, this stacks with the soldier's natural double attack, so a quick soldier might find themselves attacking three times every round, which is something I'm keeping an eye on for being unbalanced.

It probably needs a bit of tweaking as it stands with all of the above implemented. I'm finding that some enemies are completely ineffective in combat because their fighting score is too low to ever have a chance to damage a well-armoured opponent with a middle of the road dexterity, and even some of the stronger creatures in the game aren't the ultra-dangerous threats they should be. For instance, I want someone successfully defending against an ogre's attack to be a very rare and lucky event, not a matter of course.

Sunday, April 28, 2013

Changes to the Dead Simple combat rules


On the topic of my progress with the game, I don't have much to demonstrate new by way of screen shots because I've been playing around with character creation and things like that which don't have much of a visual impact.

Also made a few modifications with respect to the combat system which differ from the Dead Simple rules - firstly, every attack you perform a Speed check which if successful gives you an additional attack on the same target. Characters of the soldier class already attack twice per round so can potentially attack three times per round on a successful check which hopefully increases the importance of dexterity for fighting classes and makes it a bit more of a complicated decision where to invest your skill points.

Secondly, I decided to include a Stealth check for those of the thief class as a kind of backstab attack, but only in circumstances where there is more than one attacker around your enemy. Already this provides for a blanket +1 bonus for all classes when you surround a defender, with thieves getting a +2 bonus, but with a successful Stealth check I was thinking that I would add the amount you pass that check by onto the attack roll with a view to making a thief a poor class for up front solo fighting (because of the lack of shields and anything more than light armour) but a handy support class in that they excel at attacking as part of a group, with ideally your opponent focusing on another of your party to avoid soaking up too much damage yourself.

And here's a screenshot just for the heck of it, with the real development shown being the customised player name and avatar:



And while I'm at it, a bit of a look at some of the further in-game plot description, this time lifted almost directly from the original D&D module upon which the game is loosely based: