zmr-game icon indicating copy to clipboard operation
zmr-game copied to clipboard

Strange interactions between navmeshes and npc_enemyfinders

Open DevilMudger opened this issue 4 years ago • 3 comments

crazy

I swear to god I’m not crazy.

Navmeshes and npc_enemyfinders seems to have really strange and inconsistent interactions with each other. Depending on what map you use to test it, whether it’s a local or a dedicated server, and if the nav mesh is present or not, the enemyfinder will either work or not work.

The three maps I can think of off the top of my head that use enemy finders are zm_deep_b5, zm_frozenfinale_b4, and zmr_shadow-over-innsmouth_a4. The results of my testing to try and consistently reproduce this are below. I’d be interesting to see if anyone else gets the same results or if I really am crazy.

zm_deep_b5 Creating a local server starting on zm_deep_b5 with the navmesh present causes the camera trap to not follow the player. Creating a local server starting on zm_deep_b5 with the navmesh NOT present causes the camera trap to follow the player correctly. Running a dedicated server on zm_deep_b5 with the navmesh present causes the camera trap to follow the player correctly. Running a dedicated server on zm_deep_b5 with the navmesh NOT present causes the camera trap to follow the player correctly.

zm_frozenfinale_b4 Creating a local server starting on zm_frozenfinale_b4 with the navmesh present causes the final boss to not follow the player. Creating a local server starting on zm_frozenfinale_b4 with the navmesh NOT present causes the final boss to follow the player correctly. Running a dedicated server on zm_frozenfinale_b4 with the navmesh present causes the final boss to not follow the player. Running a dedicated server starting on zm_frozenfinale_b4 with the navmesh NOT present causes the final boss to follow the player correctly.

zmr_shadow-over-innsmouth_a4 Creating a local server starting on zmr_shadow-over-innsmouth_a4 with the navmesh present causes the final boss to not follow the player. Creating a local server starting on zmr_shadow-over-innsmouth_a4 with the navmesh NOT present causes the final boss to follow the player correctly. Creating a local server starting on zmr_shadow-over-innsmouth_a4 with the navmesh present AFTER having loaded the map at least once with the navmesh not present causes the final boss to follow the player correctly. Running a dedicated server on zmr_shadow-over-innsmouth_a4 with the navmesh present causes the final boss to not follow the player. Running a dedicated server starting on zmr_shadow-over-innsmouth_a4 with the navmesh NOT present causes the final boss to follow the player correctly. Running a dedicated server on zmr_shadow-over-innsmouth_a4 with the navmesh present AFTER having loaded the map at least once with the navmesh not present causes the final boss to follow the player correctly.

So on a local server the behaviours of deep and frozenfinale are consistent with eachother but not with innsmouth. On a dedicated server all three maps show different behaviour. Frozenfinale and innsmouth have the same behaviour on local and dedicated. Deep shows different behaviour on local and dedicated.

Here is a handy table summarising the npc_enemyfinder behaviour described above:

Local Server
Without navmesh

Local Server
With navmesh

Dedicated Server
Without navmesh

Dedicated Server
With navmesh

zm_deep_b5 Works Broken Works Works
zm_frozenfinale_b4 Works Broken Works Broken
zm_shadow-over-innmouth_a4 Works Works only if the map has been loaded at least once without a navmesh. Otherwise broken. Works Works only if the map has been loaded at least once without a navmesh. Otherwise broken.

It’s the behaviour of innsmouth that’s really fucking with my head.

Any explanation of how this is happening would be appreciated, along with either a fix to the mod to produce consistent (working) behaviour, or advice for mappers on how the avoid the problem.

DevilMudger avatar Oct 17 '20 10:10 DevilMudger