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

[HERETIC] Flying monsters stuck in vanilla - any hints from Heretic mappers?

Recommended Posts

Hi,

I'm finishing my Heretic map and the bug causing flying mosnters to stuck in other monsters completely ruins my (semi)final encounter... As you can see it on of the screenshots, the Maulotaur just turned his ass on me and doesn't want to fight.

 

Is there a way to prevent this other than removing the flying creatures?

 

heretic_stuck_monsters.png.f5cd7172bbd231a754677638beb8509d.png

 

heretic_stuck_monsters_1.png.a17421dcdf065b3db20637126f809276.png

Share this post


Link to post

Monster blocking lines separating areas with ground monsters and areas with flying monsters?

 

There's certainly no mapping trick that would get rid of the bug itself.

Share this post


Link to post

OK, thanks.

I'll remove flying creatures from the area then.

 

But, out of curiosity... Doom handles the flying creatures correctly, so what did the guys from Raven break while creating Heretic?

Share this post


Link to post

more or less doom doesn't handle them at all. Normal interactions between two objects (projectiles are the only exception here in Doom) are done in two dimensions, so effectively all monsters are infinitely tall. Flying monsters can't fly above any other monster. Raven attempted to change this for Heretic, but there are some bugs in their implementation.

Share this post


Link to post
37 minutes ago, InsanityBringer said:

interactions between two objects (projectiles are the only exception here in Doom) are done in two dimensions,

 

Effectively, the engine has two separate ways of checking collisions between objects - a 2D one and a 3D one. The 2D one is used to prevent solid objects from moving into other solid objects. The 3D one is used to detect when a projectile hits something or when a pickup was run over by the player.

 

37 minutes ago, InsanityBringer said:

Raven attempted to change this for Heretic, but there are some bugs in their implementation.

 

I guess that the code that makes flying monsters ascend/descend to match their target's height level doesn't check for collisions with solid things at all. Such a check never existed in Doom in the first place.

Share this post


Link to post

I want to know more about this. What are the conditions for getting stuck exactly? I don't remember it happening in Heretic at all.

Share this post


Link to post

If my previous guess was right (I don't know if it is, but it's the only explanation I can come up with), then the conditions for getting stuck would be: A flying monster gets close enough to its target while still being far enough above its height level and, at the same time, there is some solid thing right below the monster, such that the vertical distance between their hitboxes is less than one auto-leveling step. Possibly (just guessing again, trying to explain why it doesn't happen too often), this solid thing needs to be something different than the monster's target itself, and the top of the thing's hitbox has to be strictly higher than the top of the target's hitbox.

Edited by scifista42

Share this post


Link to post
17 hours ago, Memfis said:

I don't remember it happening in Heretic at all

 

Are you sure? I didn't play Heretic that much in the past to notice it, but in that particular location of my new level this happens literally every single time I test the map. It seems that if you give the flying creatures enough time, they will always find a way to block the walking ones. Monsters in this room are activated by the first shot you make and then just keep moving around until the final encounter several minutes later.

 

There is also one other place when I observd such behavior. I have a monster closed as depicted in the attachment. In the first version there were no Golems but Gargoyles and guess what - the first Iron Lich barely ever managed to teleport to the main map area, because it's been blocked by Gargoyle. Again, the creatures spent a lot of time "together" which probably increased the chances of being stuck. So I lowered the ceiling and replaced Gargoyles with Golems, just to be on the safe side.

 

So maybe there is also some kind of fallback mechanism implemented that blocks the vertical descent of a created but only until some edge condition is met. For example, the request to descend down is blocked, let's say, 100 times in a row and then eventually the engine allows the move, assuming that there is something fundamentally incorrect with the level geometry or item placement. Don't know... Just a guess :)

closet.png

Share this post


Link to post
On 9/18/2018 at 5:30 AM, mgr_inz_rafal said:

Monsters in this room are activated by the first shot you make and then just keep moving around until the final encounter several minutes later.

Is that your intended behavior, though?  Because if not, the way to fix it, I've found, is to make sure your map gets a proper REJECT map built.  Modern node builders are often flaky about this since some modern ports don't bother handling the REJECT map (but those ports also fix the bug in question, so it's a bit of a moot point for non-vanilla maps, but still important if you want your map to be vanilla-compatible).

 

I used to think that the monsters waking up prematurely in vanilla Heretic bug was a sound-related one, and it frustrated me to no end until I discovered that it's actually a sight-related one--under some circumstances they can see through walls and a good REJECT lump will generally prevent that by doing a better job of determining which sectors shouldn't actually be visible from which others.  More/thicker walls between earlier areas and the problem ones can also help in some instances but I don't understand the exact triggering of the bug enough to say what the optimal way to do that is, and building a REJECT won't require altering your layout.

 

The monsters sticking together bug seems (just based on my experience) to be made more likely by monsters getting bunched up against walls/doors in the process of trying to chase the player, so it makes sense to keep them in their guard positions until fight time unless you intend for them to be wandering the map to reach the player via connected passages rather than just waiting in a closed area.

Share this post


Link to post

I remember in vanilla Heretic gargs can randomly stuck inside each other in front of windows.

Edited by riderr3

Share this post


Link to post

@ETTiNGRiNDER

Yes, it is my intended behavior. The point is that as you progress through the level you can peek into the final area from a few different parts of the map and see what scary creatures await there, making you mentally prepared for a fight :) So the premature wake-up is not an issue in my case.

 

I need to double check but you may actually be right about the walls being involved in the bug.

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
×