Making a fight scene difficult


Recently I’ve tried my hand at making an action-themed demon slaying game. I’ve found it to be a pretty interesting experience, having a game based mainly around the killing of really powerful enemies. Where I’m coming up with some difficulty, however, is how do I make killing these unholy abominations feel like the player is doing something that no ordinary human in real life is likely to ever be capable of.

My main idea was to make these really powerful creatures actually very powerful, and capable of killing the MC at any point if they make an error in judgment. That creates another problem, however; you see, in video games, when the developer wants to make an enemy difficult, they just increase the damage they do, take away buffs that the player has, maybe increase the AI competency. That’s not really possible in a choice script game.

What I’m currently going with is forcing the player to think tactically when they fight. There aren’t any stats, they just need to analyze the best approach and go with it, and if they fail then they die and go back to the beginning of the fight. Though I feel like this can very easily turn into trial-and-error gameplay, and I’m wondering if anyone else has a better idea on how to do it.


What if you thought in terms of making the fight emotionally difficult rather than mechanically difficult (which Choicescript is not spectacular at).

So you could have interesting trade-offs in exchange for bonuses to slay the demon–sacrifice the welfare of people you care about, or trade a piece of your soul, or make an agreement you would rather not.


Maybe a few choices, some are guaranteed bad, some are random and a few good ones? Depending on how hard you want it. Or making the fight scene really confusing, like from 1st person pov and then make it so people who pay attention win?


I agree with having it be emotionally difficult. :upside_down_face:

Personally, I think putting a little desperation into the wording of each choice and increasing the amount of choices the player needs to make would help a lot too. Make it so that you lose because of multiple bad choices instead of a single mistake. (Even two mistakes in a row would leave me feeling pretty hopeless. Makes the player feel like they’re really losing, even if it hasn’t actually happened yet :no_mouth:.)

EDIT: Maybe have each wrong move temporarily reduce certain stats c:


What if by failing to do something, you succeed in another? Trade-offs would be your best bet.
(e.g By slaying the beast, you can’t save your companion)


Or maybe you could ask (maybe multiple times) during or before the fight if the reader wants to give up :joy:

Set up some hopeless situation and give the choice. Most people would keep fighting but it does help set up the dangerous atmosphere. Demoralize the reader. :joy:


I am by no means an expert in any way, but I do have a bit of real world experience that I think may help you with your issue.

Choices in combat are difficult for multitudes of reasons. Often, you are forced to make decisions based off snap judgement and this can lead to a whole load of unforeseen consequences. Some of the suggestions that you have received so far, like from @Gower, are spot on. It may not have a strong place in action based stories, but the emotional and moral ramifications of your decisions may have far reaching effects, such as changing people’s mind of your intentions or character. These are often the same people who you are trying to protect. You may be viewed as becoming the very monster you are trying to fight!

In terms of your original question, difficulty can come from many different avenues. What you are proposing implies that you would end up with choices in the game that the player has no way of understanding that it could result in a game over. From what I have read, this type of choice wouldn’t be a strong one because it becomes an “If you decide B, then you die” type of situation. What you COULD do is base the choices of tactics on the things the MC has learned i.e. they would get options not normally available to someone who hasn’t fulfilled the requirements. For example, let’s say we have Demon A whose weakness is Fire. The MC learns of this weakness because they had an interaction with NPC X detailing this fact. They would get an option during the fight with Demon A to “Attack with fire” (or some such). If they did not have that interaction with NPC X, they would not get that option during the fight.

Of course, the fight could still be resolved without the MC dying, but perhaps at a price. Maybe the MC doesn’t deal enough damage to Demon A so it results in Demon A escaping to attack another day. Or perhaps, the MC kills the demon through sheer hero luck (I like to call this plot armor :P), only to be severely injured and leading to an interaction after the fight they wouldn’t have had were they more prepared. The point is, the reader should still be able to continue the story, but must deal with consequences of their decisions.

I hope that was all clear and I certainly hope any part of that was helpful. Please let me know if you want me to clarify anything!


Heroes Rise - particularly some of the bits in the second game, when everyone was competing - had some interesting challenges. It had a lot to do with you’re saying about thinking tactically, and having to figure out what the correct option would be.

There were other exciting choice-based games - I’m thinking of one called Cause of Death - where choosing the correct answer (Sneak Up On Killer) would do something good for you (you get in a hit that stuns them for the next round of the fight), but choosing the wrong one (Throw Bottle At Killer) would play out in a way that gives you a disadvantage or makes you feel silly. (Bottle misses, hits wall, and you lose the element of surprise.) Some of this you could make up for with good choices later (e.g., you’d need to make three wrong moves to lose the car chase), others would be immediately fatal.


Interesting problem! Here are my solutions:

Making fights long: If you make fights long(er) with many choices, it won’t be a simple matter of trial and error, as there would be so many permutations that no one would be able to (or want to) try out each and every possible combination. But you’d have to make sure that all the correct choices can be tactically found out. Not a single choice should be based on fluke. This way, you can present your readers difficult choices based on their judgmental skills.

Say your player is fighting an abomination and it attacks him. The player has the option to dodge either left or right. Now, you should’ve already presented the player the knowledge that the left part of the monster has a weak point waiting to be exploited. So the player should dodge left and attack. However, if they choose to dodge right, doesn’t mean they should be punished with death. Which brings me to my next point,

Two consecutive wrong choices before death: Do not just punish the player with death over one wrong choice. This is not dark souls, this is interactive fiction. Make sure the player makes at least two (or better, three) wrong consecutive choices before they are shown the dreaded dead screen.

Continuing the above example, the player still decides to dodge right where the enemy has a large damaging hand on their abdomen (it is an abomination). Now the player has to roll backwards because of their wrong choices, but if they still decide to press forward and attack the strong arm, they are hit by it and are severely damaged or die.

If the player rolls backwards out of harm’s way, they lose the opportunity to exploit the weak spot of the monster but are at least alive and need to find other ways to kill them.

Stat checks: Stat checks are also a great way of implementing good fights. Players should be wary of the option they’re choosing requires some said stat.

If we implement stat checks in the above example, if the player dodges left (towards the monster’s weak part) and decide to attack, the player should have some amount of speed before the attack is successful - and depending upon the strength of the player, damage is dealt. If the player fails the speed check, the monster just blocks the attack.

If the player decides to dodge towards right (wrong way) then the player has the option to roll backwards as the monster attacks with his arm. If the player has enough dodging ability, he successful dodges, otherwise fails to dodge and gets hit. Also, if the player decides to attack, and the monster attacks too, give a very difficult strength check - if successful the player parries the monster’s attack and lives, else he dies.

Please note that even after surviving the monster’s attack, the player has not gained any advantage because of the wrong choice to dodge towards right. After choosing one wrong choice, the successive choices determine if the player will live or die. To make very difficult fights, one wrong choice should result in death.

Preparations: Further, you could add choices to prepare for the fight beforehand (like in the witcher games), which could help in fight one way or the other.

Say in above example, the monster’s weakness is fire, and before the fight, the player got the option to choose between a firebomb or a strong sword. Choosing a strong sword is beneficial to the overall fight(by dealing more damage), but choosing a firebomb could help one win the fight easily. When the player decides to dodge left, he gets the option to throw the firebomb and greatly damage the monster which stuns it or possible kills it.

Preparation could also involve gathering knowledge about the monster the player is going to fight (like knowing the weak point of the monster) or such.

All the above points will require humongous amounts of coding, which I think, you’re prepared for, since you wish to implement difficult fights. It is difficult, but a Choice of Game with great mechanics is certainly possible with great efforts! I wish you good luck and hope you can create the first game in ChoiceScript with such great fights and mechanisms.


“The Dark Souls of interactive fiction” has a nice ring to it :stuck_out_tongue_winking_eye:


Yup, totally. I’m pretty sure people would just love getting killed a million times by a single boss. Really increases the replay value.

The Interactive fiction where you cannot even complete the demo.


This has made my day, oh my gosh I don’t know how I would feel about that. I would be ranting on the forums all day long. :joy:

I know for me, I just end up putting choices and make the obvious routes, not so obvious. What I mean by this is that you set up let’s say three choices and they are all really good options, if you envision them, then all of them could probably work. But you always add a twist. Sometimes adding a twist to the not so obvious one and sometimes adding them to the rest. Then other times, you make it simple where there’s no need to sit there and think about it really hard . . . like how teachers make tests in high school.


I think I’ll just give an example scenario to show my point about this topic.

Narrator: You’re now at your safehouse, but you have to face one of your biggest enemy soon; The Fire Breather! What is your first step?

MC: *choice [Read The Fire Breather’s bestiary] [Train some combat skill] [Take a Rest] [Get some better equipment]

Narrator: Excellent choice! Now, you’re at the lair of The Fire Breather. What is your next move?

MC: *choice [Shoot him with an arrow] [Slash him with my sword] [Run away from the combat] [*if read bestiary: Flush him with some buckets of water]

Depending on the previously selected choice, the MC will have several options which requires some careful planning when engaging The Fire Breather. Some “not the best” options may cause some negative trade-offs as the risks: MC loses their body limb, MC loses their treasured equipment, or maybe the world will plunge into destruction if the MC chooses to run away. Even the beast may survive MC’s attack, and will face a 2nd encounter later in the story.

These penalties, for me, will give more “mental difficulty” for the player as they realized that they will have to live with their choice for the next entire story. Losing an arm will give you a quite disadvantage when it comes to combat. etc. etc.

However, the “best” option will have no penalty whatsoever, minimal at the best.

At least, that’s what I think as a hard fight scene. 2 cents.


You must be really bad at this then.

Wat r u casul?

You just need good checkpoints.


As someone who does plan on making more complex 1v1 combat sequences (think Yakuza in text form, if you will >.> ), I think that stat reduction could be a way to go. At the same time, there should be a way to let the player finish the game (even if it’s just a “normal” ending) without developed stats.

Also, there should probably not be a single way of defeating an enemy, perhaps something like Outright Win > Advantage > Impasse > Losing > Losing Badly. That should be true for all the enemies with perhaps an exception or two (like a Bonus Boss or some out of the way monster that yields some good stuff if defeated).


It wouldn’t be impossible to code some turn based combat.
A battle system like something out of Final Fantasy IV (Final Fantasy 2 in the U.S.) would be a great challenge project.


I have some fight scenes in my game where I directly consider the abilities of the individual vs. the wound they would be able to inflict. (Some are weak but can do poison damage; some can teleport to get in one opportunistic strike; some could use their strength to do at least one round of deadly harm. Often, only fictional conventions protect other characters from serious injury.)

Nothing is calculated in terms of damage points - the game remembers what specific injuries have been dealt, what further moves they might inhibit, and how scarring/damaging/insulting that particular attack was.

Of course, if you get that involved, it takes you longer to code follow-ups. This is why I have an update once every forever, and have only a fighting chance of making the COG contest deadline at the start of next year.


@Sashira, do you use a spreadsheet to keep track of injuries?


Whenever I need to keep track of a complicated set of variables (e.g., specific injuries that could result from a certain fight) I most often do that by pasting the list into a text file. I delete the list from the file whenever I’ve coded past the point where I would need to use it.

I also use a list-type database if I’m keeping track of simple stuff like character quirks. I only use spreadsheets for things that are clearly quicker to look up that way (e.g., where any given character is at any point in time.)