Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
KiiiYiiiKiiiA

Interesting archvile behavior.

Recommended Posts

So just an interesting piece of archvile behavior I noticed while playtesting a TNT2 map. Here is what happened:

1)I was killed by an archvile.
2)The arch, moments after my death, was hit by a mancubus that was shooting at my until-recently-living ass, and did what all self respecting archs do, which is to go kill the (now stationary) manc.
3)Once it had completed bouncing the manc around a few times, the manc died. And I expected the arch to become docile after the manc's death, but instead it rezzed a nearby imp, and then went into its docile state.

All this took place as my corpse watched events. I would have thought that the arch, once it had dealt with the manc, would take no further actions, but apparently this is not the case. Is this a common occurrence, is there stuff in the code that allows archs this extra move after everything is done? Could the arch potentially rezz more than one monster within reach even when it might usually go into its docile state? I was just curious as I had never seen this before.

Share this post


Link to post

Probably the imp had done something at that exact moment, e.g. it could have thrown a fireball at the manc too, but got the archvile instead right after it had finished with the manc, and so paid the price.

And no, there's nothing in the code which would allow such a behavior deliberately, not in vanilla Doom and Boom at least, except maybe by some extreme freaky pointer curruption, which could cause a dormant monster to go against a target out of the blue.

Share this post


Link to post
Maes said:

Probably the imp had done something at that exact moment, e.g. it could have thrown a fireball at the manc too, but got the archvile instead right after it had finished with the manc, and so paid the price.

And no, there's nothing in the code which would allow such a behavior deliberately, not in vanilla Doom and Boom at least, except maybe by some extreme freaky pointer curruption, which could cause a dormant monster to go against a target out of the blue.


But the vile resurrected the imp, it (the vile) didnt kill it (the imp)

Share this post


Link to post

The imp and the archvile made a pact in the wormhole on the way there: If either one of them should die, the other one would resurrect him after the marine was dead, under any circumstances. And damn it if he was going to back down on a promise to his friend.

Share this post


Link to post

The wormhole pact I can buy, but an imp resurrecting an Archvile? Seems a bit far fetched.

Unless the imp lied, which they are known to do.

Share this post


Link to post

Interesting question, and I'm glad to provide an answer to it!

Doom has an internal function called A_Chase. This is used by most monsters to control their behavior: it decides whether to do a melee attack, missile attack, whether to advance towards the target, etc. Here's an example of the frames associated with the zombiemen, see how most of them call A_Chase:

    {SPR_POSS,0,10,{A_Look},S_POSS_STND2,0,0},  // S_POSS_STND
    {SPR_POSS,1,10,{A_Look},S_POSS_STND,0,0},   // S_POSS_STND2
    {SPR_POSS,0,4,{A_Chase},S_POSS_RUN2,0,0},   // S_POSS_RUN1
    {SPR_POSS,0,4,{A_Chase},S_POSS_RUN3,0,0},   // S_POSS_RUN2
    {SPR_POSS,1,4,{A_Chase},S_POSS_RUN4,0,0},   // S_POSS_RUN3
    {SPR_POSS,1,4,{A_Chase},S_POSS_RUN5,0,0},   // S_POSS_RUN4
    {SPR_POSS,2,4,{A_Chase},S_POSS_RUN6,0,0},   // S_POSS_RUN5
    {SPR_POSS,2,4,{A_Chase},S_POSS_RUN7,0,0},   // S_POSS_RUN6
    {SPR_POSS,3,4,{A_Chase},S_POSS_RUN8,0,0},   // S_POSS_RUN7
    {SPR_POSS,3,4,{A_Chase},S_POSS_RUN1,0,0},   // S_POSS_RUN8
    {SPR_POSS,4,10,{A_FaceTarget},S_POSS_ATK2,0,0},     // S_POSS_ATK1
    {SPR_POSS,5,8,{A_PosAttack},S_POSS_ATK3,0,0},       // S_POSS_ATK2
    {SPR_POSS,4,8,{NULL},S_POSS_RUN1,0,0},      // S_POSS_ATK3
Part of the logic of A_Chase is that if the monster doesn't have a target, it looks for a target, and if it can't find one it goes back into its original "spawn" state:
    if (!actor->target
        || !(actor->target->flags&MF_SHOOTABLE))
    {
        // look for a new target
        if (P_LookForPlayers(actor,true))
            return;     // got a new target
        
        P_SetMobjState (actor, actor->info->spawnstate);
        return;
    }
Here's what the Archvile's main frames look like instead:
    {SPR_VILE,0,10,{A_Look},S_VILE_STND2,0,0},  // S_VILE_STND
    {SPR_VILE,1,10,{A_Look},S_VILE_STND,0,0},   // S_VILE_STND2
    {SPR_VILE,0,2,{A_VileChase},S_VILE_RUN2,0,0},       // S_VILE_RUN1
    {SPR_VILE,0,2,{A_VileChase},S_VILE_RUN3,0,0},       // S_VILE_RUN2
    {SPR_VILE,1,2,{A_VileChase},S_VILE_RUN4,0,0},       // S_VILE_RUN3
    {SPR_VILE,1,2,{A_VileChase},S_VILE_RUN5,0,0},       // S_VILE_RUN4
    {SPR_VILE,2,2,{A_VileChase},S_VILE_RUN6,0,0},       // S_VILE_RUN5
    {SPR_VILE,2,2,{A_VileChase},S_VILE_RUN7,0,0},       // S_VILE_RUN6
    {SPR_VILE,3,2,{A_VileChase},S_VILE_RUN8,0,0},       // S_VILE_RUN7
    {SPR_VILE,3,2,{A_VileChase},S_VILE_RUN9,0,0},       // S_VILE_RUN8
    {SPR_VILE,4,2,{A_VileChase},S_VILE_RUN10,0,0},      // S_VILE_RUN9
    {SPR_VILE,4,2,{A_VileChase},S_VILE_RUN11,0,0},      // S_VILE_RUN10
    {SPR_VILE,5,2,{A_VileChase},S_VILE_RUN12,0,0},      // S_VILE_RUN11
    {SPR_VILE,5,2,{A_VileChase},S_VILE_RUN1,0,0},       // S_VILE_RUN12
A_VileChase is a "wrapper" around A_Chase: all it really does is look for nearby corpses to resurrect, resurrects them if it finds them, and otherwise just calls A_Chase like normal. So in your situation, the Archvile would have gone to sleep, but resurrecting nearby monsters takes precedence over sleeping.

Share this post


Link to post
Krispy said:

The imp and the archvile made a pact in the wormhole on the way there: If either one of them should die, the other one would resurrect him after the marine was dead, under any circumstances. And damn it if he was going to back down on a promise to his friend.


I like this explanation.

Share this post


Link to post

Heh I misintepretted "rezzed" as slang for "killed". My bad. As fraggle explained, the Archie constantly checks around if if there's anything to resurrect, even if it has nothing to hunt down.

Share this post


Link to post

Well, not constantly - only if it's already awake. Archviles won't wake up just to resurrect corpses, but if there are corpses left to raise, it's the last thing they'll do before going back to sleep.

Share this post


Link to post
fraggle said:

but if there are corpses left to raise, it's the last thing they'll do before going back to sleep.

Would be cool to have a comic of this done by that Asian lady.

Share this post


Link to post

Question is, what is the link, if any between the Arch Vile resurrection and the Revenant.

The Arch Vile resurrects dead demons, while the Revenant is a dead demon.

Does that mean that every time the Arch Vile resurrects a demon, that a Revenant somewhere just vanishes.

Or how come a resurrected Revenant doesn't change back into what it was originally.

Share this post


Link to post

^ I think the same concepts used in Dungeons and Dragons guides about the concepts of death/undeath and how healing/unhealing works apply (Libris Mortis). Something about positive energy healing living beings/damaging undead ones, and negative energy healing undead/damaging living beings or somesuch.

Technically speaking, even zombies are dead, and yet they are "resurrected" by the archvile as well (unless they are not really zombies, but more like infested/mind controlled yet still alive). Most monsters however are obviously alive in a common biological sense, or use another kind of lifeforce, e.g. demonic or golem-like. I think the Revenant is halfway between undead and cybernetic being, and it might actually be animated more like a Golem, than a "true" undead, despite what the name might imply.

In any case, Archviles seem to be flexible healers, being able to handle at least positive and negative life energy, and to a limited degree, demonic or animated constructs. However, it appears to be limited by large size and/or cybernetic biology, that's why it can't deal with cyberdemons or spider masterminds. Arachnotrons are smaller and/or their cybernetic parts get damaged less by their deaths. OTOH Masterminds literally crumble to junk and Cyberdemons are practically pulverized.

The Archvile's own lifeforce must also be different, in order to be able to channel so many different ones, so it also cannot successfully heal its own kind.

Share this post


Link to post
Maes said:

The Archvile's own lifeforce must also be different, in order to be able to channel so many different ones, so it also cannot successfully heal its own kind.

In ZDoom, a Stealth Archvile can be resurrected by normal Archviles. Pretty silly, isn't it?
Not like anyone uses stealth monsters anymore but it kinda reminded me of something funny I saw happen a bunch of years ago.

Share this post


Link to post

@Fraggle. Thank you for the explanation. I am not much of a coder, but that all made sense to me.

So in effect the archvile in the situation I described above would remain stationary once it killed the mancubus, but would resurrect any and all monsters within reach of its stationary position, as its check for corpses would loop until none remain in the vicinity.

Vermil said:

Question is, what is the link, if any between the Arch Vile resurrection and the Revenant.

The Arch Vile resurrects dead demons, while the Revenant is a dead demon.

Does that mean that every time the Arch Vile resurrects a demon, that a Revenant somewhere just vanishes.

Or how come a resurrected Revenant doesn't change back into what it was originally.


Or possibly the Revenant is just a rotting corpse possessed by a demon and the physical shell is not the demon itself. So the arch, in resurrecting the revenant is simply summoning another demon to take over the shell.

Share this post


Link to post
Avoozl said:

Doctors don't resurrect dead people so they're more like necromancers.


Hell's concept of healing is to resurrect bodies

Share this post


Link to post

I was hoping to find a really strange trick in here that I could exploit in a map :/

Share this post


Link to post

Well, if you have invulnerability and there are enough archviles around, you can use their attacks to literally fly and stay constantly airborne for large distances. That's one of the ways to complete NUTS.WAD, BTW.

Share this post


Link to post
Maes said:

Technically speaking, even zombies are dead, and yet they are "resurrected" by the archvile as well (unless they are not really zombies, but more like infested/mind controlled yet still alive).

They're merely supposed to be possessed. Hence their code and sprite name (POSS, SPOS, CPOS). Those people who were asleep when the demon invasion started were possessed, those who were awake were killed. (So I guess the zombies are all in their jammies.)

Yes, each of these grunts you kill just to grab some ammo still has a human consciousness inside, prisoner of a body controlled by a demonic spirit, helplessly watching as they attack -- and get killed by -- you.

Share this post


Link to post

Great to see that the Archvile is such a caring fellow - instead of calling it a day, or game cycle, he's handing out a second chance ticket.

Share this post


Link to post

I actually think 'reanimate' is a better word for what the archvile does than 'resurrect.' Reanimate implies that the arch is pouring some sort of life force, (possibly its own,) into the monsters it brings back, which is possibly a better explanation than having to work out the details of how an arch resurrects demonic entities or undead zombies.

Share this post


Link to post
fraggle said:

CODE EVERYWHERE.


I can't believe I ACTUALLY understood that. Wow I really do learn new stuff at 12 in the morning when I have nothing better to do while I download 20GB games. Fraggle is probably the best dude on this forum ever.

Share this post


Link to post

Easy answer!!!

THE IMP WAS AN ASSASSIAN TO KILL ARCHIE. ARCHIE FINDS OUT AND KILLS IMP, ENDING THE ASSASSIANS LIFE... UNTIL YOU RESPAWN!!

*The trial from CT begins...*

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×