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:



Sunday, April 21, 2013

Mujahid

Mujahid was the second seven day roguelike that I finished and it was written for the 2012 7DRL challenge. Again there was some serious leaning on the libtcod + python tutorial to get things underway quickly in terms of the basics before branching out into something different.

In retrospect, this is probably the 'best' of my 7DRL games in that it's a relatively complete fleshing out of a full idea (which is admittedly rather simple) and not too long for that gimmick to become annoying. I think that my 2013 game, Rasatala, crosses over that line just a bit and becomes a bit of a chore to play.

The mechanic I'm talking about is the introduction of facing to a roguelike game. The only major roguelike which comes to mind which incorporates something like this is Unreal World and I wanted to explore stealth gameplay with the concept of facing and the implications that that has to sneaking around a dungeon. The obvious tactics which come to mind is spotting an enemy who doesn't see you because they're facing the other way and sneaking up behind them to dispatch them without being seen.

Inspiration was taken also from the Assassin's Creed series of games, along with the Thief series as well I guess, and the setting of this game bleeds over a little bit from the Assassin's Creed series even though the gameplay is deliberately much more simplified than either of those examples.

http://sites.google.com/site/mujahidrl/




You can watch a youtube video of a playthrough of the game here to get a better idea of what it's all about: http://www.youtube.com/watch?v=lOpGPU-dZl8

Setting 

A big part of my plan in 2012 was again to pick a setting which was unusual but also not dramatically different from what's expected in roguelike games to the extent that a lot of things needed to be reworked to cover that. I basically ripped the idea off a 2011 7DRL called Alamut which was an ADOM-esque attempt at a roguelike set in the middle ages where you chose between being a Muslim or a Christian and played out some role in the Crusades. That game never really seemed to be finished but I thought the idea was a good one which hadn't been explored before.

And of course there's a natural fit with stealth gameplay and a setting which saw what's popularly thought of as the historical basis for the word 'assassin', so an Islamic themed roguelike struck a chord with me. It also had the benefit of seeming to be slightly more controversial than it actually is and I'm sure there's a bunch of people who are uncomfortable with the name of this game but don't really want to say it.

Anti-combat gameplay

This isn't a straight up fighting game. You could probably try and take that approach and see how it goes but I don't think you'd make it past more than one or two enemies. Health doesn't regenerate and healing salves throughout the dungeon don't do much to help you, so your life is a very precious resource.

Fights are much more efficient when you attack your opponent from an unseen position. In that instance, you insta-kill them, so the trick is to place yourself in a position where you can perform that backstab but avoid being hit while doing so.

The idea was to make the decision to enter a combat a weighty one with the option of avoiding combat entirely being the most attractive one in almost every circumstance where possible. You can win the game with killing as few as four opponents and that really should be your goal even though it's not explicitly stated.

No magic and questionable use of religion system

A semi-realistic setting was my goal and accordingly magic and magic items were a poor fit. There are items scattered throughout the dungeon which you can pick up and use and they're very helpful a lot of the time. There's a few lazy ones - in particular a vial of green gas which confuses your enemies for a short period.

The most interesting item for me was the inclusion of stones throughout the dungeon. Now this sounds pretty damn boring but the gameplay use of stones is not as weapons as you might think at first (and as the youtube above demonstrates, that seems to be the most obvious interpretation) - instead they're used purely as a distraction for enemies. You can throw them to any square within your line of sight and an enemy who can see the square where it lands will go to investigate unless they can already see you, and that presents your opportunity to either sneak past or try and go for the backstab.

The ability to pray is also built into the game and it's caused me a bit of enjoyment to read various reviews of this game where people have guessed as to its effect. Someone said that it made you invulnerable for a short period of time. Someone else said that it reset the monster's AI so that they stopped trying to find you.

The reality is that it does nothing. It's purely for flavour and also for a bit of fun on my part by distracting players which proved successful. Of course, there's nothing stopping it from actually working, but that depends on the grace of Allah and I'm not entirely in control of that...

Things I could have done better

I put smoke bombs into Rasatala this year and made the Thug class start with them. They would have been a perfect fit for Mujahid and I should have included them.

The AI in Mujahid is just a little bit dumb with a few quirks I'm unhappy with. There's a trick where you can step past an enemy and then backstab them without facing your opponent which will count as an insta-kill. It's unintended but an abusable trick which makes the game trivial if that's what you what. Likewise, I'm not really happy with the way in which enemies dramatically change direction without warning which makes sneaking up behind them very dangerous. It would have been better if they gradually changed facing and turned around slowly so the player could observe it happening.

Otherwise, I think it's a pretty solid effort for a roguelike written in seven days!

Thursday, April 18, 2013

The beginnings of plot mechanics

Of course, for a game like this the plot is essential and I'll be forcing the player to read walls and walls of text. Now, the screenshot below isn't exactly thrilling but what is interesting is the behind the scenes actions taking place. 


There's now a system whereby a data file contains all possible messages to be sent to the player as they explore the game world, which can obviously be used to flesh out the plot or provide some kind of description of game areas as things go on. This is stored in plain text and is obviously highly modifiable and very easy to chop and change. Basically the game now loads that all up on start up, positions those messages appropriately through the game world and pays attention to when the player comes within a certain range of the tile containing the trigger and away we go. 

It might not seem like much, but it's an important part of the central structure of making this game an RPG and not a simple roguelike! And it also means that I'm getting much closer to the point where I can start quickly producing game content as the underlying systems to interpret and display that all fall into place.

Next up is probably plot characters - otherwise normal monsters or NPC's which have a certain plot element to their existence and with whom the player can interact. The trick thing will be thinking about how best to store this information in a data file to be interpreted on game start.

Tuesday, April 16, 2013

Dead Simple RPG Rules

Despite aiming for a Dungeons and Dragons-style setting, the last thing I want to do is to go down the Incursion route of trying to replicate a very complex system in a computer game. It'd be great to pull it off as well as Incursion does, but the complexity would kill this project almost certainly. So instead I've been looking around for a simple set of rules in a pen-and-paper roleplaying game to base my game off. Nothing had really grabbed my interest until I stumbled upon the Dead Simple RPG Rules, which as you might expect, are very straight forward.


One of the most interesting things to come from that is that I can do away with a hit point system, character levels and experience. Character progression comes from converting loot into training in the form of increasing your relevant stats in between dungeon diving. The hit point system is replaced by a system whereby if you fail a series of skill checks, there's a chance you'll be first 'wounded' and if you are struck again then there's a chance you'll be knocked 'unconscious'.

The potential for enemies and the player to be knocked out instead of outright killed appeals to me in the sense that I would be aiming to work that into the combat and plot of the game - for instance, with a system that once the player is knocked out, the game continues with the player being helpless as long as there are allies in sight who can potentially win the battle. If not, then the game ends or potentially the player is captured.

Helpfully, the system provides some sample enemy types which I have gratefully seized upon and implemented and accordingly, here's some screen shots of spelunking towards your inevitable death (ignore the messages which are describing off-screen events for debugging purposes).




Sunday, April 14, 2013

Defender of the Deep

I said in an earlier blog post that part of what I'll be doing on this blog is recapping some of my previous efforts to both fill in space on this blog while I work on The Burning Plague, but also to give you an idea of some of the gameplay elements I have preferred in the past and will be likely to include again in the future.

---

Defender of the Deep was the first complete game that I wrote and it was for the 2011 Seven Day Roguelike competition.

Overall I think it works pretty well in a limited sort of way but is definitely restricted in terms of scope which hurts its replayability. I'll outline a few of the design decisions I made along the way which are probably more of interest to me than to the player who would likely have not cared about these things.



http://code.google.com/p/defender-of-the-deep/

First thing's first, it's based on the excellent python and libtcod tutorial by Jotaf which has spawned a million cheap roguelike games and I would say has had a huge effect in terms of making the barrier for entry in writing an easy roguelike game so much lower. Each game that I've written since has been based on that tutorial in one way or another and The Burning Plague is no different, even though it departed from the structure of that tutorial very early on the piece and doesn't bear much resemblance to it now at all beyond a few class and variable names.



An attempt at an interesting setting

Each game I've worked on started with a setting of interest first with the hope of making it stand out from the crowd a bit by not following a traditional path. The Burning Plague is the exception to this because I'm deliberately embracing fantasy tropes for the sake of simplicity, but Defender of the Deep was designed from the beginning to be a game with a relatively modest and achievable scope but with a concentration on the inclusion of game elements which came with an addition of flavour to the game in terms of world building.

The player character in Defender of the Deep is a monster living within the dungeon which is being invaded by evil surface dwellers. You can be a kobold (high evasion), an orc (brute force warrior), or a goblin (crafty mix of the two). I'll talk a bit more about the setting shortly, because these character types are expanded upon by the influence the setting has on their abilities in the form of religious powers.

No health, mana or piety regeneration

I wanted to play around with this concept and it's something which I think worked quite well. Instead of allowing the player to stop and rest as soon as they are out of combat, the lack of regeneration means that a player needs to push forwards to find healing or mana potions to replenish those aspects of the character, with piety only being replenished upon the death of an enemy. There's no food clock in the game but it's this need for replenishment which pushes the character forwards in search of items and also introduces a real risk/reward trade off which needs to be considered before engaging in combat. An easy kill will boost your piety but you run the risk of damaging your health by unnecessarily picking a fight you don't need to win.

The idea of making every fight non-trivial appeals to me and that's largely behind this design decision.

No spells

I'm bored of games which focus on the conjurer blaster wizard (ie. see the dungeon crawl: stone soup conjurer) and I like the idea of making magic more subtle than that. In this game I simply removed magic per se and linked mana to the ability to use magic items. Which when I think about it now, those items are basically simple conjurations - obviously I didn't meet my goal with this aspect. It's my goal to continue this focus on subtle magic with The Burning Plague - there shouldn't be an obvious magic choice like Magic Missile or Fireball which just causes damage and does nothing else.

No experience and character levels

Building a character and forcing a player to become emotionally involved with the game usually relies on the gradual progression through character levels. I didn't think this was necessary for a coffee break game and I always have thought the idea was lazy. I understand that HP is supposed to be not just someone's physical robustness but also an abstraction of the ability of a veteran to minimize damage by their actions and survive in that way, but it's always struck me as a bit lazy.

In Defender of the Deep, character progression is essentially item-based. You are rewarded with a powerful item upon defeating what effectively amounts to a boss on each dungeon level. The items are common between games but the order in which you receive them isn't and they each improve a different aspect of your character, so you might find that your non-combat kobold suddenly develops offensive skills which make you reconsider the way you approach the next dungeon level in terms of tactics.

Non-existent or at least non-traditional magic items

I wasn't really interested in the idea of littering the dungeons with +1 daggers. Items are ordinary and they are what they look like on the surface with a couple of exceptions. And those exceptions are also plainly obvious.

Important religious system and god powers

This is probably the focus of the game in my eyes - each character type worships a different god lovingly ripped off from some Dungeons and Dragons source book which I can't remember now, and each god offers that character a different god power which can be used at the cost of piety. Piety is only restored upon killing an enemy.

The orc class power is fairly straightforward - it's effectively a berserk ability which greatly boosts your offence at the cost of making you more vulnerable for a period, with the idea being that you should be able to save up piety from a few of the easier kills to rely on this ability when the going gets tough. It's a simple character to play in that regard.

The kobold class is much weaker than the orc and its class power reflects that - it's the ability to disappear into invisibility for a short period. The idea behind this was that the kobold should be played in such a way as to pick and choose fights as much as possible and when cornered, to rely on this ability to slip away from a dangerous situation and live to fight again another day. By the end of the game, the kobold should be an adequate fighter and a solid magic user with this ability as a fallback.

The goblin is a bit different and in hindsight, probably the most powerful class. Goblins have the class power of cursing every enemy in sight. That curse reduces the power of enemies quite significantly and makes fights much more survivable. It leads to the questionable tactic of trying to be surrounded by as many enemies as possible before cursing them so that you affect as many as possible at the risk of being surrounded.

---

Overall, I was pretty happy with this game. I deliberately aimed low because my priority was to make sure the game was finished and I thought a solid way of making the game interesting was to try and include obvious flavour elements which the player would remember rather than sweating the details of a technically complicated combat system or beautiful procedural level generator or anything like that. It was a success in that sense and it probably turned out to be almost exactly the game I planned on from the beginning.

Friday, April 12, 2013

Roguelike tiles and Opengameart.org

Before I forget, I should credit the graphics that I've stolen and put into this game. They come from Open Game Art after a long search for tiles which weren't so big that it didn't cause me problems when the font was forced to be the same size and not so small that you can't make out what they represent.



I settled on that tileset because the 16x16 size felt about right and the tiles themselves haven't been overused in roguelike games to date and looked the part for what I wanted.

You'll see that the graphics I used for the walls didn't come from that same tileset - instead I searched around for something I could use to draw the various different wall directions and joins and ended up stumbling upon a tileset created to be used in Dwarf Fortress which I editted and played around with until I ended up with what you can see in the screenshots.

Bizarrely, Open Game Art user: surt is completely unknown to me before I decided that I liked his tiles and I know nothing about him apart from what he has posted about himself on an internet profile but it turns out that he lives in the same city as me and was born within two days of me. Creepy. Sorry if this weirds you out 'surt', but that's the internet for you.

The Burning Plague

The Burning Plague is the working title of a CRPG game that I've started working on and will be blogging about as a way of keeping my coding motivation up and also as a way of documenting my progress - already my collection of screenshots is making me laugh as I look back at how it was all looking just a few weeks ago.

The basic idea for the game is that I wanted to focus on a no-frills RPG similar in style to the Spiderweb Software series of games - in particular the Exile and probably Avernum series. I'm definitely in the camp of being a hobby programmer and my most recent experience in game writing was putting together a few roguelike prototypes before participating in the last three Seven Day Roguelike competitions where I made a few games:

2011 - Defender of the Deep
2012 - Mujahid
2013 -  Rasatala

Each of those games is ascii based and relatively simple in scope. They are written in python and rely on the libtcod library for rendering and a whole lot of behind the scenes algorithms such as field of views calculations and other labour intensive programming tasks like that. I'll probably post about each of those games in turns so I can talk about the goals I had with each in relation to gameplay and scope but that's enough about them for now.

Because of my experience with that library and python, I decided that the fastest way to get me up and running with a more structured RPG would be to stick to what I know. Originally I was going to keep the ascii graphics throughout because it helps with the speed of programming so much if you don't have to worry about graphics, but libtcod supports graphical tiles and I was tempted to make the switch and looking back now, I'm very glad that I did.

Beyond the style inspiration of aiming for a Vogel-esque RPG, my initial content is loosely based on the Dungeons and Dragons module for low-level players - The Burning Plague. The initial goal is to release an alpha version of the game which fleshes out a short RPG covering an expanded adventure based on that module. Gameplay is intended to be based on roguelikes to a certain extent in that you will only control a single character and rely on providing orders to your companions to boss them around so that it becomes more of a party oriented experience.

Data in relation to the content of the game itself and the various maps to be used is stored in simple plain text with the idea being that once the initial module is completed, the content will be highly moddable and also extremely quick to extend. Building a map is as simple as typing in the characters in a plain text editor. Adding monsters and objects to the map takes just a couple of short lines and is very easy to understand in its current state.

Developmet has been going for around about a month now I'd say and I'll post up a series of screenshots to give you an idea of where the game has come from and the direction it is heading in.

First up, we have one of the basic views of what the game world looks like. You can obviously see the hangover of the ascii environment I was planning with just the actors in the game being displayed graphically. Looming ominously before our intrepid group of adventurers is the mouth of a forbidding cave. To be honest, looking back on this I do enjoy the clean simplicity of the appearance of the game map but I understand that it's probably not for everyone and it would end up being audience limiting in the long term.

  
Of course, what's a world to explore without enemies. We've still got the rudimentary walls, trees and water reminiscent of the original planned visual style.


 From those slightly more humble beginnings, a fair few tiled graphics were added in to represent the world and the appearance below is roughly what the game looks like currently.

And with those extended graphics, work began on implenting a clear user interface as you can see with the message console at the bottom and the status console on the right hand side, complete with regrettable placeholder names for our loyal companions.

RIP Weird Tony, you will be remembered.

The most current build looks like the screenshot below with a few more visual frills, the addition of a mysterious stone which is a simple placeholder item the player can pick up to the test out the inventory system, and more exciting for me is the behind the scenes additions with the carnage being shown resulting from the player issuing a command to his companion Dilly to attack an innocent peasant and Dilly in turn responding by calling his companion Weird Tony to arms to assist him in his evil deeds. The player can't control Weird Tony directly under this system and while that might not seem like much, it's the groundwork for a more complicated monster AI system where a group of monsters will have a leader and followers tracking around awaiting orders. 

Likewise it adds a bit of complexity where if your good friend Dilly meets an untimely end, then loyal Weird Tony will stand by Dilly's corpse and mourn while ignoring the player's frantic cries for help.