I know when you kill one the other will absorb him and regain all health and get some new abilities. This leads to the strategy of focusing one quickly while "ignoring" the other.

My question is, if you take the time to weaken them both equally then use some sort of aoe (like a large pyromancy) is it possible to kill them both at the same time?

If it is possible what happens?

1 Answer 1


Probably not, the reason being that due to to nature of processes, usually everything is run in sequence.

Say that the game thread looks like this:

run () {
   while (game_is_running) {
      if smough_is_defeated then //this is special logic only used in this boss battle
        ornstein absorbs smough
      else if ornstein_is_defeated
        smough absorbs ornstein 

      do everything else
      game_logic //moving, collision detection, applying impulses
      render //that is, if they choose to render in the logic process
      let process sleep for 10 miliseconds 

The sequential nature of this means that even if they die in the same logic loop, one would still do the check before the other, meaning that the other one would not get the chance to perform that check, because it would be removed from the logic loop.

Naturally, they could have an other setup, they could have one process for every entity (player, enemy) that each run their own logic, and use a main process as a intermediary ground for race condition checks and what not (probably not because it's not like it improves performance, and it's FUCKING complicated! They do this kind of things for special cases, even so, if they are implementing proper race conditions checks, Ornstein should not be able to absorb Smough, while Smough is simultaneously checking the state of Ornstein)

The music in that boss battle is the best in the entire game (imo).

  • Not to mention that it might be really hard to get the 2 bosses down right at the same time.
    – Lyrion
    Commented Oct 5, 2012 at 11:05
  • why wouldn't the devs do if (smough_is_defeated && ornstien_is_alive)? seems like a simple enough edgecase.
    – Colin D
    Commented Oct 5, 2012 at 12:57
  • That makes sense. I still want to test. Unfortunately I just beat them so testing it means ng+ or starting a new character.
    – AdamP
    Commented Oct 5, 2012 at 15:21
  • Sure, the dev's could do something like: if (smough_is_defeated && ornstien_is_alive), but I would not put past them to fail this condition, actually. Many aspects of Dark Souls show poor workmanship, technology wise (even then, they used an existing engine Phyre). FFS From Software, I don't need you to render an enemy that barely renders to one pixel on my screen in Blighttown, just check the distance between my camera position and the monster, and if it is less than a certain value, render! Stuttering in Blighttown solved!
    – Apeforce
    Commented Oct 9, 2012 at 7:53

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .