Skip to content

Bot enhancements#99

Merged
alcachofass merged 5 commits into
alcachofass:mainfrom
br33zy59:bot-enhancements
Jul 16, 2026
Merged

Bot enhancements#99
alcachofass merged 5 commits into
alcachofass:mainfrom
br33zy59:bot-enhancements

Conversation

@br33zy59

@br33zy59 br33zy59 commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

A progressive pile of changes to how enhanced bots run:

f29ef1d:

  • Upgrade combat dodging so it's an additive rather than determinant move pattern (will weave in with the bot's movement goal rather than replacing it)
  • Adjust look direction during movement so perceived direction of enemy takes precedence - Bot will hold aim towards areas/doorways/ledges it believes the opponent may appear from, and only fall back to 'look where you're going' when it has no other better option.
  • Added some post-respawn priority on securing a core weapon (LG or RL) if not obtained within about 30 seconds, and RG if not obtained after about a minute. Should help avoid the bots roaming for ages with podunk loadouts.
  • Stronger reaction to footsteps as proof of enemy location (was being largely ignored in favor of 'look where you're going' preference).

06c3f93:

  • Peek solve - Improvements to how bots try and look towards likely spots their opponent might re-appear at. Aims more into the gap in a doorway than at the edge of the doorway now. Not perfect, and still sometimes peeks towards weird spots, but closer to realistic.
  • Nav exile/stuck debug - This bug won't die, certain places on particular maps are like fly traps for bots and they get stuck looping inside them. Added more breakout routines to try and release them from these loops when they occur. Classic locations where this occurs are: Staircase between RA and PG on pro-q3dm6, back jumppad/staircase on ZTN that runs from LG up to YA/PG room.
  • Opponent sensory/vigilance look - Bots should attempt to keep their view towards where they believe their opponent to be in relation to them (incorporating the peek behavior)
  • Item abort reasons - Tweaked how bots abandon item goals and re-stack them to try and avoid looping situations (treating clusters of pickups as distinct goals etc.)
  • Rail hold-range - Bots now attempt to hold back on closing the distance when wielding the railgun rather than charging towards their opponent

33c8f45

  • Fixes ledge-jump pickup behavior by correcting the horizontal-range check in BotItems_LedgeJumpAtLip (use BOT_ITEMS_LJ_MAX_HORIZ and a > comparison so distant goals are rejected). Adjusts BotMove_SuppressEnhancedView to suppress the enhanced aim view while a ledge-jump pickup's injected jump is active (checks item_commit_active and item_lj_jump_until) and moves the enemy guard after this special-case handling.

68c65f3:

  • Implemented route for aiming at a more reasonable last-seen position for enemy. Bot should now target in a more human manner when opponent is out of view by aiming towards the nearest reasonable doorway/edge they might re-appear from, and not through geometry.
  • Pursuit-goal aim motor adjusted to blend between new aim and previous aim. Should smooth aim behavior without lagging behind on shots
  • Smoothed changes in aim direction between bot thinks, when the change is reasonable 9under 18 degrees in a single think). Should smooth aim a bit, but still allow fast jumps when target genuinely moved suddenly
  • Added some guarding/sanity against self-harm from splash damage
  • Bot will attempt suppressive fire when aiming at opponent's peek-point/doorway
  • Fixed bot firing prematurely when acquiring aim on a new enemy engagement (bot's reaction time and deliberate aim suppression timing were running concurrently, changed to be consecutive)
  • Aim harness jitter/noise is now probabilistically aligned with previous jitter value, so it's less likely to shake in the opposite direction to the last one (more humanistic aim)
  • More attempts to implement ledge-holding and harassment of opponent when bot has height advantage (still not behaving as well as I'd like)
  • Re-affirmed bot's health/armour seeking behaviors when their stack is lacking
  • Tightened up major goal-seeking priorities - MH and RA will now almost always take precedence over YA even if YA is up and MH/RA are a little way off spawning.
  • More attempts to fix short pathing loops by temporarily banning same-goal re-acquisition after it's been abandoned/stuck
  • Better fall/jump pad handling so bots avoid suicidal rides/falls more often, and factor in things like Lava/Slime/Void into fall avoidance/damage
  • Better tracking of opponent when fleeting, by registering sound events to detect current opponent location
  • Reduced frequency of bot's 'prefer higher ground' path-finding attempts to avoid causing loops (from 2.5 to 8s intervals)

br33zy59 added 5 commits July 13, 2026 14:51
Numerous small tweaks to enhanced bot behaviour:
- Implemented route for aiming at a more reasonable last-seen position for enemy. Bot should now target in a more human manner when opponent is out of view by aiming towards the nearest reasonable doorway/edge they might re-appear from, and not through geometry.
- Pursuit-goal aim motor adjusted to blend between new aim and previous aim. Should smooth aim behaviour without lagging behind on shots
- Smoothed changes in aim direction between bot thinks, when the change is reasonable 9under 18 degrees in a single think). Should smooth aim a bit, but still allow fast jumps when target genuinely moved suddenly
- Added some guarding/sanity against self-harm from splash damage
- Bot will attempt suppressive fire when aiming at opponent's peek-point/doorway
- Fixed bot firing prematurely when acquiring aim on a new enemy engagement (bot's reaction time and deliberate aim suppression timing were running concurrently, changed to be consecutive)
- Aim harness jitter/noise is now probabilistically aligned with previous jitter value, so it's less likely to shake in the opposite direction to the last one (more humanistic aim)
- More attempts to implement ledge-holding and harassment of opponent when bot has height advantage (still not behaving as well as I'd like)
- Re-affirmed bot's health/armour seeking behaviours when their stack is lacking
- Tightened up major goal-seeking priorities - MH and RA will now almost always take precedence over YA even if YA is up and MH/RA are a little way off spawning.
- More attempts to fix short pathing loops by temporarily banning same-goal re-acquisition after it's been abandoned/stuck
- Better fall/jump pad handling so bots avoid suicidal rides/falls more often, and factor in things like Lava/Slime/Void into fall avoidance/damage
- Better tracking of opponent when fleeting, by registering sound events to detect current opponent location
- Reduced frequency of bot's 'prefer higher ground' pathfinding attempts to avoid causing loops (from 2.5 to 8s intervals)
Fixes ledge-jump pickup behavior by correcting the horizontal-range check in BotItems_LedgeJumpAtLip (use BOT_ITEMS_LJ_MAX_HORIZ and a > comparison so distant goals are rejected). Adjusts BotMove_SuppressEnhancedView to suppress the enhanced aim view while a ledge-jump pickup's injected jump is active (checks item_commit_active and item_lj_jump_until) and moves the enemy guard after this special-case handling.
peek solve, nav exile/stuck debug, opponent sensory/vigilance look, item abort reasons, rail hold-range
- Removed WORKPLAN-BOT-ENHANCEMENTS.md, since now complete and obsolete
- Updated BOT-ENHANCED-ARCHITECTURE.md to be a more straightforward overview of how bot_enhanced hangs together
- Updated reference in BOT-CVARS.md
Refactor and enhance bot combat dodge into a continuous dodge-bias system (missile + fire-pressure), adding BotCombat_UpdateDodge, Blend/Apply helpers, wider intercept logic and state fields. Add move-time blending of dodge into MoveToGoal. Add post-spawn weapon arming (LG/RL then rail), empty-pad wait/penalty, travel caps and commit logic; expose BotItems_OnLifeStart. Improve opponent roaming/look: vigilance origin logic, enhanced roam view, noise handling and sensory timings. Tweak weapon selection with situational vertical/air penalties and range adjustments. Misc headers, constants and integration points updated.
@alcachofass
alcachofass merged commit f1f9bf8 into alcachofass:main Jul 16, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants