TDBots: The fast-performing bots v9 (14/5/2019)

Maps, modifications, add-ons, projects, and other releases for Zandronum. Also includes announcers.
Post Reply
TDRR
 
Posts: 24
Joined: Thu Jun 28, 2018 9:13 pm

TDBots: The fast-performing bots v9 (14/5/2019)

#1

Post by TDRR » Thu May 02, 2019 7:51 am

TDBots are another bot mod that puts a computer-controlled opponent/friend into ZDoom, GZDoom, QZDoom and Zandronum
Written for Vault, yet completely open-source and free-to-use! (with proper credit, of course) It's going to be up in GitHub when i get the chance to upload it.

DOWNLOAD! (ZDoom, GZDoom and QZDoom version)

DOWNLOAD! (Zandronum version)
(Note: the Zandronum version can't seek items yet, due to the unimplemented A_CheckProximity codepointer)

Bot config file (REQUIRED): UNZIP DIRECTLY INTO YOUR (G)ZDOOM DIRECTORY (Not necessary for Zandronum)
DOWNLOAD BOT CONFIG!

But, why? ZetaBots already exist, and ZDoom has it's own bots!
Well, this bot is actually quite different and is useful in it's own way compared to them, check out the features list!
Spoiler: Features (Open)
-They can chat! (Don't worry, it can be toggled via tdbots_chat 0)
-Are about as skillful and machine-like as the ZDoomBots
-Has an easy mode for beginners (tdbots_easymode 1 to enable it)
-Can play Doom, Heretic and Hexen!
-They search the map for any helpful pickups they can find (Y'know, like the ZCajun bots did before they broke)
-Isn't a modified monster, but really a player!
-All of the behavior is identical to a real player (Except for movement, aiming and some input handling)
-Can open doors, hit switches, action lifts, exit levels, activate walkover lines and get teleported by player-activated lines! Except in Zandronum :(
-Picks up any item, even weapons (But weapons need a minimal bit of editing to work)
-Extremely easy to make compatible with any mod
-Compatible out-of-the-box with all playerclasses
-Can use skins and custom colors
-Can play Cooperative, Deathmatch and Team Deathmatch (And any gamemode but not as well)
-Roams around maps better than the ZCajun bots
-Doesn't shoot at walls (Unless the weapon fires very slowly, in which case it could possibly shoot at a wall)
-Is freaking fast! (Way faster in performance than the Zandronum bots, and a little faster than the ZetaBots)
Spoiler: Bad stuff (Open)
-Doesn't have walking animations (I only did this for easy playerclass compatibility though, you can probably add them without issue)
-Isn't affected by the frozen player properties (Because they are always activated on them)
-Has a shaky camera view (Only really matters when spectating them)
-Oftentimes falls in the frustrating inescapable slime pits™
Spoiler: Changelog (Open)
Date format is DD/MM/YYYY
v9 (14/5/2019) THE HEY, NOT TOO ROUGH UPDATE
-Added easy mode, which worsens the bot's aim a bit (CVAR: tdbots_easymode)
-Re-enabled tdbots_buff CVAR, which now works in Doom, Heretic and Hexen (This is forced on for Zandronum)
-Fixed a crashing issue related to multiple targets (Mostly a Zandronum crash, but it sometimes happened in ZDoom)
-Finally an update for Zandronum too!

v8 (9/5/2019) THE RAVEN UPDATE
-Now compatible with Heretic and Hexen
-Bots will only search for health pickups if they are under 70% health
-Reordered bot item priorities, which goes like this: Weapons, Ammo, Misc. Items, Armor
-Bots will now wait 6 seconds after picking up an item to pick another one again
-CVAR tdbots_enable now works properly, for quick switching between the TDBots and ZCajun bots without restarting ZDoom.

v7 (8/5/2019) THE IMPROVEMENT UPDATE
-Bots have MUCH, MUCH better reaction time
-Bots now have a cooldown period before they can look for items again
-Bots will now strafe while firing in a less stupid way
-Bots will not avoid firing explosive weapons anymore and just back out always
-Added a 100% chance of getting your ass kicked
-Officially dropped Zandronum support (sorry, but i'm not going to hold back the possibilities just for Zandronum)

v6 (4/5/2019) THE SCAVENGER UPDATE
-Bots will now actively search for health, weapons and ammo (may not work with very old/hacky mods)
-Bots orient themselves better on big maps but may prefer item stashes on smaller ones
-Bots are less hesitant to fire rocket launchers on close quarters and will now back out 100% of the time
-Fixed melee weapon handling
HOTFIX: fixes the bot's twitchy aim introduced in this update

v5 (3/5/2019) THE BIT SKILLFUL UPDATE
-Reverted code changes from v4
-Bots now have better aim and reaction time
-Bots will now navigate corridors much more consistently
-Bugfix related to animation that i honestly can't remember

v4 (3/5/2019) THE NOT QUITE THERE UPDATE
THIS UPDATE IS OPTIONAL, BUT ANYONE WHO WANTS TO HELP
ME PINPOINT THE CAUSE OF THE REGRESSION MENTIONED BELOW CAN
TEST AND SEND ME INFO OF ANY CASES WHERE IT OCCURS

-Shortened main bot think loop
-Bots won't stop firing until their target is dead or out of their field of view
-Fixed a couple bugs
-A regression that i can't seem to fix or find the reason to has been introduced.
Basically, the bot will occasionally aim off-target and for some reason all LOS checks still are on target
But the bullets and camera view definitely are off target and shaking.
You will know when this happens because the bot quickly flickers between two angles and misses most of it's bullets/projectiles
-Bots are more forgetful about their target, which actually doubles as an advantage as they will get out of
their range faster, increasing chances of survival. (Only like 70% of the time though)

v3 (2/5/2019) THE FRIENDS UPDATE
-Bots no longer shoot their friends in co-op or Team DM
-Owing to this change, Bots on the same team occasionally attack cooperatively
-Also owing to this change, Bots will no longer push their friends into danger
-Bots now handle dangerous situations with explosive weapons better
-Code is better commented now, for easier understanding
-Started very preliminary work on waypoints, disabled due to problems
-Bots can now drop down from ledges up to 1024 units high, so as to be able to follow you through Plutonia MAP02.
-Bugfixes

v2 (2/5/2019) THE SMART UPDATE
-Now licensed under the MIT license
-Bots now have much better navigation that is a bit less RNG-based
-Bots now mix up their dodging while attacking a lot more
-Bots can now drop down from any height (Still falls into inescapable pits but at least it doesn't get stuck on a ledge)
-Bots have better aim
-Bots have less shaky camera view
-Bots now have their view re-centered after killing an enemy, for easier spectating
-Updated the bot config, now Crash and Illucia aren't erroneously mentioned as male
-Added a few more chat lines, suggestions welcome!
-Added flag: BotExplosiveWeapon (Makes bot back out of explosion range while firing)
-Added flag: BotMeleeWeapon (Makes bot aggressively close in to it's target while firing)
-Fixed the bots displaying the walk animation while dead very rarely
-Added CVAR: tdbots_enable (Let's you choose between ZCajun bots, when set to zero/false, and TDBots when set to one/true)
-Added CVAR: tdbots_buff (Gives bots ammunition and armor every 5 seconds, but they are better off without it anyways)
-Added CVAR: tdbots_playerbot (Makes the viewing player also a bot, useful for 8-bot matches in ZDoom)
-Added command: tdbots_oldschooldm (Sets up all gameplay and compatibility options to behave close to doom2.exe in Deathmatch, except for item respawns?)
Spoiler: How do i make my mod compatible? (Open)
It's so easy, even a caveman could do it! All you got to do is:
Put the following DECORATE line in every weapon's ready state, right after or before the A_WeaponReady call:

Code: Select all

TNT1 A 0 A_JumpIfInventory("BotAttack", 1, "Fire")
Also put it right before any A_Refire calls (Remember to change the "Fire" part to the state A_Refire was set to!)
For example: just A_Refire means there's nothing to change, but if it's something like A_Refire("KeepFiring")
you would change "BotAttack", 1, "Fire") to "BotAttack", 1, "KeepFiring")

In weapons that are explosive (And can harm the user with the explosion), use the following in their select state:

Code: Select all

TNT1 A 0 A_GiveInventory("BotExplosiveWeapon")
And the following in it's deselect state:

Code: Select all

TNT1 A 0 A_TakeInventory("BotExplosiveWeapon")
In melee weapons (Chainsaws, Fists, etc.), use the following in their select state:

Code: Select all

TNT1 A 0 A_GiveInventory("BotMeleeWeapon")
And the following in their deselect state:

Code: Select all

TNT1 A 0 A_TakeInventory("BotMeleeWeapon")
And that's it, yes it's really that easy!
Spoiler: Mod compatibility patches (Open)
You can request a mod to make a patch for, and i will do it ONLY IF THE MOD ISN'T RECIEVING UPDATES ANYMORE.
Make sure to load TDBots first, then the mod, then the compatiblity patch for best results. (Use a launcher or a command line to specify an order)

Death Foretold / D4T
Last edited by TDRR on Tue May 14, 2019 9:26 pm, edited 7 times in total.

User avatar
Doomenator
Forum Regular
Posts: 280
Joined: Wed Apr 01, 2015 4:27 am

Re: TDBots: The fast-performing bots v2 (2/5/2019)

#2

Post by Doomenator » Thu May 02, 2019 1:12 pm

I tested it on the map 07 Doom2 (deathmatch mode).
-Bots don't push buttons, as you say.
-Bots very poor dodge the shots.
-Bots do not react to each other when they are see a player.
As a result to kill them much easier than those are built into Zandronum. :cool:

TDRR
 
Posts: 24
Joined: Thu Jun 28, 2018 9:13 pm

Re: TDBots: The fast-performing bots v2 (2/5/2019)

#3

Post by TDRR » Thu May 02, 2019 9:53 pm

Doomenator wrote:
Thu May 02, 2019 1:12 pm
I tested it on the map 07 Doom2 (deathmatch mode).
-Bots don't push buttons, as you say.
-Bots very poor dodge the shots.
-Bots do not react to each other when they are see a player.
As a result to kill them much easier than those are built into Zandronum. :cool:
Well, what do you expect? The current version is the work of just 2 days. With such short dev time it is expected to see some buggy behavior.

-Bots do push buttons in ZDoom, but apparently Zandronum bots have a different way of activating switches, i'm going to see if i can fix it.
-Bots are technically blind, and can't see any projectiles headed their way, if they don't dodge them, it's just bad RNG, but if they do, it's good RNG.
-Bots will change target if anything retailates against them, and will change target to the closest enemy before attacking.
-Don't forget that the bots will play co-op with you! That's definitely something the Zandronum bots can't do.

I recommend testing them in ZDoom to see if you encounter the same issues.
Also recommended is playing Duel maps, where these bots perform the best.

Please don't be so harsh, i'm trying my best to improve the bots with every update.

User avatar
Doomenator
Forum Regular
Posts: 280
Joined: Wed Apr 01, 2015 4:27 am

Re: TDBots: The fast-performing bots v2 (2/5/2019)

#4

Post by Doomenator » Fri May 03, 2019 11:50 am

TDRR wrote:
Thu May 02, 2019 9:53 pm
Well, what do you expect?
I didn't expect anything special. I use bots only for one purpose, to train aiming. Therefore, I tested it based on my own needs and gave the appropriate feedback. If these bots are oriented to co-op gameplay only, then they are not much interest to me.

And I tested them in GZDoom. :biggrin:
Spoiler: (Open)
phpBB [media]

TDRR
 
Posts: 24
Joined: Thu Jun 28, 2018 9:13 pm

Re: TDBots: The fast-performing bots v2 (2/5/2019)

#5

Post by TDRR » Fri May 03, 2019 6:55 pm

Doomenator wrote:
Fri May 03, 2019 11:50 am
TDRR wrote:
Thu May 02, 2019 9:53 pm
Well, what do you expect?
I didn't expect anything special. I use bots only for one purpose, to train aiming. Therefore, I tested it based on my own needs and gave the appropriate feedback. If these bots are oriented to co-op gameplay only, then they are not much interest to me.

And I tested them in GZDoom. :biggrin:
Spoiler: (Open)
phpBB [media]
Well, got work to do! I'm going to make sure i make them as good as possible (within the limits of Zandronum scripting of course) Next update, V5, now has better aiming, checks if it can actually hit the target from it's current viewpoint, overall better navigation and W.I.P projectile dodging. Also will add an RNG-based projectile weapon prediction.

After some testing, the bots seem to completely break Zandronum's bot system, causing all sorts of issues. I don't think this is an issue with my mod, though, as i'm just moving bots around and not really touching any of their internal handling. Sometimes the bots die and never respawn, and other times the internal bot nodes start showing up for some reason. Will report this as a bug.

TDRR
 
Posts: 24
Joined: Thu Jun 28, 2018 9:13 pm

Re: TDBots: The fast-performing bots v6b (4/5/2019)

#6

Post by TDRR » Sun May 05, 2019 4:09 am

Updated! Bots now search for items around the map, and they navigate a bit better.
This update is the start of the search for more realistic behavior, so the goal is that they will rely less on just having perfect aim and more like taking advantageous positions and dodging when possible, and probably more.

Still to do: fix that nasty bug that makes Zandronum bot nodes display, maybe engine-side issue?

Download link in the OP!

TDRR
 
Posts: 24
Joined: Thu Jun 28, 2018 9:13 pm

Re: TDBots: The fast-performing bots v6b (4/5/2019)

#7

Post by TDRR » Mon May 06, 2019 7:28 pm

TDBots will not be compatible with Zandronum anymore for the following reasons:

The bots are agurably worse than the ones that come with Zandronum

Even though i can make the navigation way better than the bots that come with Zandro, there's no way to do it in the current version (Without A_CheckProximity)

For some reason these bots completely break Zandro's bot system, leading to stuff like their permanent per-map deaths and weird multicolored nodes showing up. None of this happens in ZDoom.

TDRR
 
Posts: 24
Joined: Thu Jun 28, 2018 9:13 pm

Re: TDBots: The fast-performing bots v9 (14/5/2019)

#8

Post by TDRR » Tue May 14, 2019 9:20 pm

Finally updated for Zandronum! Coming from v6 to here has given us a bunch of great improvements and bugfixes.

Download link in the OP!

Post Reply