View Issue Details

IDProjectCategoryView StatusLast Update
0004220The Dark ModAIpublic14.09.2017 03:57
Reportergrayman Assigned Tograyman  
PrioritynormalSeveritynormalReproducibilityhave not tried
Status resolvedResolutionfixed 
Product VersionTDM 2.03 
Target VersionTDM 2.04Fixed in VersionTDM 2.04 
Summary0004220: More active AI searches
DescriptionPer this thread:

http://forums.thedarkmod.com/topic/17398-ai-search-times/#entry377792

Can searching be changed so it's less boring for the player to watch? (More AI movement / less standing around.)

Can searching be expanded into neighboring areas w/o risking having the AI run far away like he used to many revs ago?
TagsNo tags attached.

Relationships

has duplicate 0004236 closedgrayman AI should be less boring when searching 
related to 0003702 closedgrayman Recalculate hiding spots when a light is relit or doused 
related to 0003044 closedgrayman Link areas together to provide AI with more realistic search behavior. 

Activities

grayman

grayman

24.10.2015 20:30

viewer   ~0007876

Add a cvar (tdm_ai_search_type) to control which search type should be used.

1 = use 2.03 search method
2 = use 2.03 search method, but walk to hiding spots instead of looking
3 = don’t use the hiding spot list, and create new search spots by expanding the search radius based on alert level (the higher the alert level, the longer the radius)
4 = same as 3, but expand the search radius based on time passed (increase radius as time passes)

Abandon the hiding spot method, which tended to provide a lot of standing around and staring. Replace it with an on-the-fly random location method that still considers lighting and produces more of a walkabout.

The AI are more likely to search the darker parts of the search area and avoid the well-lit areas.

The AI searches close to the alert spot initially, then moves farther and farther out as time goes by.

Allow a search to include neighboring rooms; more likely to happen when the search area expands enough to poke through a door.

Allow an AI to search near a search spot even if the search spot isn’t in an AAS area. A good example of this is the Guard Captain’s room in Collateral. If the player jumps up and down on the ceiling joists in 2.03, the Guard Captain in the next room becomes alerted but doesn’t come looking. He does with this change.

Change ProcessSearch() so it doesn’t run every frame. Run it every 2 seconds, which is good enough. This is the ‘think’ routine for the Search Manager, and it’s responsible for swapping AI roles and cleaning up the search list and search assignment lists.

Removed the requirement that active searchers needed to mill about before beginning their search. Just let them get to it.

Fixed a bug where the search list wasn’t being cleared if multiple missions were started during the same TDM run.

Changed InvestigateSpotTask() to be state-driven, to simplify it.
Expanded the conditions under which AI could exchange places during a search.

Gave the zombie with the included head an eye_offset. He was looking with his feet.

Gave the moor an explicit rank (0).

Rev. 6552:

SearchingState.cpp
SuspiciousState.cpp
State.cpp
InvestigateSpotTask.cpp
InvestigateSpotTask.h
Memory.cpp
Memory.h
SysCvar.cpp
SysCvar.h
darkmodHidingSpotTree.cpp
Game_local.cpp
SearchManager.cpp
SearchManager.h

Rev. 14410:

tdm_ai_undead_zombie.def

Rev. 14408:

tdm_ai_guard_moor.def
tels

tels

07.11.2015 08:09

reporter   ~0007886

Last edited: 07.11.2015 08:11

I'm not allowed to read/access the thread on the forum, so I can't leave feedback there nor know what others already wrote.

Problem to me seems to be the CVAR - players could totally change how a mission plays out by changing it and the mappers no longer has control, respectively he would need to test all scenarios to see which might break his mission?

Wouldn't this be exactly the reason not allow players control over this setting and instead create a "mix" that is either always the same (maybe random) strategy, or let only the mapper control it with an per-AI-spawnarg?

Otherwise this sounds like a lot of work went into it and it will be a nice change and improvement. Good work!

grayman

grayman

09.01.2016 00:19

viewer   ~0008012

If there are further changes, I'll make them during beta.

Issue History

Date Modified Username Field Change
23.09.2015 21:01 grayman New Issue
23.09.2015 21:01 grayman Status new => assigned
23.09.2015 21:01 grayman Assigned To => grayman
17.10.2015 18:29 grayman Relationship added has duplicate 0004236
24.10.2015 20:30 grayman Note Added: 0007876
24.10.2015 20:30 grayman Status assigned => feedback
24.10.2015 20:30 grayman Target Version => TDM 2.04
07.11.2015 08:09 tels Note Added: 0007886
07.11.2015 08:11 tels Note Edited: 0007886
09.01.2016 00:19 grayman Note Added: 0008012
09.01.2016 00:19 grayman Status feedback => assigned
09.01.2016 00:19 grayman Status assigned => resolved
09.01.2016 00:19 grayman Resolution open => fixed
09.01.2016 00:19 grayman Fixed in Version => TDM 2.04
14.09.2017 03:53 nbohr1more Relationship added related to 0003702
14.09.2017 03:57 nbohr1more Relationship added related to 0003044