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)

That makes sense. I still want to test. Unfortunately I just beat them so testing it means ng+ or starting a new character.
–
AdamPOct 5 '12 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!
–
ApeforceOct 9 '12 at 7:53