TADS 3 Combat System

Hi all,

I am making an IF game for my university dissertation and am trying to implement a combat system. I’m looking for a basic means for the player character to do battle with some of the NPCs.

Do you know where I could look for some ideas about how to go about doing this? Are there any existing IF games that use a combat system that I could look at? Just need somewhere to get an idea of where and how to start.

Thanks for your help,


Any turn-based combat system that doesn’t rely on positioning is a good place to start. Final Fantasy I-X technically have graphics, but they work just as well in text.

It was made in Inform, but Graham Nelson’s Reliques of Tolti-Aph might be worth a look. (Note, however, that it was not reviewed favorably.) Also worth looking at is Victor Gijsbers’s Kerkerkruip, a roguelike that was also made with Inform.

Try games tagged ‘combat’ in IFDB. Not all of these will be good at what you want, but looking at stuff that doesn’t work too well is probably as important as looking at things which do.

Oh yes, and here’s a good IFDB poll if you’re looking towards a more RPG-style direction.

ETA: Another game to look at, if you prefer something more puzzly, is Peter Napstad’s Slap That Fish.

Kerkerkruip is built on the Inform 7 extension Inform ATTACK, which you could check out if you want some ideas. But it’s already pretty advanced, and you might be able to get by with a much simpler system.

(Also, it may take me a couple of days to get a new version of ATTACK out that works with the brand new release of Inform 7!)

Thanks for your help. Sorry, I didn’t mention that my game is made using TADS 3. I’ll have a look at the code of the games you all mentioned and see if that helps.

I want the combat to take the same form as a conversation might, so the player would type ‘attack’ (NPC) and then enter a process of determining whether the attack was successful or not and change the player and NPC status. I was trying to attach a variable of health, attack and defence to the various actors and use those stats to determine the battle process.

Unfortunately I can’t find anything about this and so don’t really know where to start. I already have a full World Model with all the necessary rooms, items and NPCs, just trying to implement the battle system now.

Thanks for your help, everyone!


If you need some help implementing something in TADS 3, why not try our board dedicated to TADS help?

TADS 3 has the Attack and AttackWith actions already defined in the library. At a basic level, all you need to do is write a dobjFor(Attack) and dobjFor(AttackWith) on anything that should be attackable, and an iobjFor(AttackWith) on any weapons. Most of your code can probably go in the action() block within these blocks, though you may need to override verify() or check() in order to make your NPCs actually attackable; I’d have to look into that.

Excellent, thanks very much for your help everyone. It’s been really useful!