TDBots Mk2 - v1 (11/05/2022)

Projects that alter game functions but do not include new maps belong here.
Forum rules
The Projects forums are only for projects. If you are asking questions about a project, either find that project's thread, or start a thread in the General section instead.

Got a cool project idea but nothing else? Put it in the project ideas thread instead!

Projects for any Doom-based engine (especially 3DGE) are perfectly acceptable here too.

Please read the full rules for more details.
Post Reply
bumfight
Posts: 13
Joined: Tue Apr 07, 2020 7:10 am

Re: TDBots: The fast-performing bots v26b (16/4/2020)

Post by bumfight »

[/quote]
I'm actually not sure if this is at all possible, but I made the "bot teleport call" thing for this same reason. Just set the delay low and use the teleport call key when you need a bot near you.[/quote]
Would it be theoretically possible to automate this process? For exemple, make it time based, every 5 seconds the bot is teleported automaticallyto the player. To make this less obvious just remove the green portal effect and the sound when the bot teleports and you have an improvised leash.
User avatar
TDRR
Posts: 815
Joined: Sun Mar 11, 2018 4:15 pm
Preferred Pronouns: He/Him
Operating System Version (Optional): Debian 12/ Manjaro
Graphics Processor: nVidia with Vulkan support
Location: Venezuela

Re: TDBots: The fast-performing bots v26b (16/4/2020)

Post by TDRR »

bumfight wrote:Would it be theoretically possible to automate this process? For exemple, make it time based, every 5 seconds the bot is teleported automatically to the player. To make this less obvious just remove the green portal effect and the sound when the bot teleports and you have an improvised leash.
That sounds kinda undesirable a lot of the time though, but I'll add an option for this in the next version.
User avatar
TDRR
Posts: 815
Joined: Sun Mar 11, 2018 4:15 pm
Preferred Pronouns: He/Him
Operating System Version (Optional): Debian 12/ Manjaro
Graphics Processor: nVidia with Vulkan support
Location: Venezuela

Re: TDBots: The fast-performing bots v26c (23/4/2020)

Post by TDRR »

Updated! This is mostly a bugfix update.

Full changelog as follows:
-Map learning now works on all competitive gamemodes, instead of only Deathmatch (This was always the intention, but I messed up on a line of code).

-Fixed nodelist info being displayed multiple times in certain cases.

The "improvised leash" turned out to be much more problematic to implement than what I first thought, so it's getting delayed to v27.

Download link in the first post, as always!
User avatar
TheNightATK300
Posts: 193
Joined: Fri Oct 14, 2016 7:21 pm

Re: TDBots: The fast-performing bots v26c (23/4/2020)

Post by TheNightATK300 »

Is there something like a check when the bot is attacking at a specific distance, besides the melee option?
User avatar
TDRR
Posts: 815
Joined: Sun Mar 11, 2018 4:15 pm
Preferred Pronouns: He/Him
Operating System Version (Optional): Debian 12/ Manjaro
Graphics Processor: nVidia with Vulkan support
Location: Venezuela

Re: TDBots: The fast-performing bots v26c (23/4/2020)

Post by TDRR »

TheNightATK300 wrote:Is there something like a check when the bot is attacking at a specific distance, besides the melee option?
In a custom attack action, you can use A_JumpIfCloser to check if it's within a certain range from the target.

If you need to do this for one weapon only, make an inventory item, do it so that your weapon gives it in it's "Select" state, and take it on the "Deselect" state, and check for this item before doing any A_JumpIfCloser checks.

The flag BotCloseRange used to make the bots fight at close range but outside of melee range, however it's broken right now and I haven't been able to properly fix it.
User avatar
Ferretmanjcdenton
Posts: 355
Joined: Mon Mar 09, 2020 5:38 am
Graphics Processor: Not Listed
Location: Germany

Re: TDBots: The fast-performing bots v26c (23/4/2020)

Post by Ferretmanjcdenton »

Hi there ...I have a small question...

I want to use the bot in Metroid dreadnought mod ...
When I enter addbot a bot appears but he doesn't shoot...
What do I wrong?
bumfight
Posts: 13
Joined: Tue Apr 07, 2020 7:10 am

Re: TDBots: The fast-performing bots v26c (23/4/2020)

Post by bumfight »

^Seems like the bots cant use custom weapons
User avatar
TDRR
Posts: 815
Joined: Sun Mar 11, 2018 4:15 pm
Preferred Pronouns: He/Him
Operating System Version (Optional): Debian 12/ Manjaro
Graphics Processor: nVidia with Vulkan support
Location: Venezuela

Re: TDBots: The fast-performing bots v26c (23/4/2020)

Post by TDRR »

Ferretmanjcdenton wrote:Hi there ...I have a small question...

I want to use the bot in Metroid dreadnought mod ...
When I enter addbot a bot appears but he doesn't shoot...
What do I wrong?
Weapon mods require compatibility patches, since it is simply not possible to make a weapon fire from ACS/DECORATE without lightly modifying the weapon. I'll look into making a compat. patch for Dreadnought. (Yeah, I know, I said waypoints in Zandronum were also impossible but I'm sure this one just can't be done)
bumfight wrote:^Seems like the bots cant use custom weapons
They can't use custom weapons without any previous modification, but custom weapon support can be easily implemented into the mod or as a compatibility patch.
User avatar
Ferretmanjcdenton
Posts: 355
Joined: Mon Mar 09, 2020 5:38 am
Graphics Processor: Not Listed
Location: Germany

Re: TDBots: The fast-performing bots v26c (23/4/2020)

Post by Ferretmanjcdenton »

Oh ok... would you consider doing a patch for Metroid dreadnought?
I have no idea.how ...
And it would be really nice to see something like that ...
User avatar
Josh_7774
Posts: 5
Joined: Wed Mar 25, 2020 7:55 pm

Re: TDBots: The fast-performing bots v26c (23/4/2020)

Post by Josh_7774 »

I'm a newcomer to the forums here, but just wanted to drop in and give my regards to TD for out-of-the-box thinking and conjuring up this project.

If I recall correctly, two to three months ago; I've made some very slight improvements to the bots themselves, and during the course of that time I've also added some additional features like key binding options for spying previous players (Spycam to the previous player rather than the next one), adding and removing one bot as well as the option to remove all bots, and even creating a multiplayer options menu for this, though it's unfinished.

ZDoom & GZDoom would benefit from having this menu since those ports do not include a multiplayer setup menu like Zandronum does (and thus, Zandronum doesn't require this implementation).

I'm undoubtedly content with sharing the changes that I've made to this if anyone wants to improve from it.







User avatar
TDRR
Posts: 815
Joined: Sun Mar 11, 2018 4:15 pm
Preferred Pronouns: He/Him
Operating System Version (Optional): Debian 12/ Manjaro
Graphics Processor: nVidia with Vulkan support
Location: Venezuela

Re: TDBots: The fast-performing bots v26c (23/4/2020)

Post by TDRR »

Josh_7774 wrote:I'm a newcomer to the forums here, but just wanted to drop in and give my regards to TD for out-of-the-box thinking and conjuring up this project.

If I recall correctly, two to three months ago; I've made some very slight improvements to the bots themselves, and during the course of that time I've also added some additional features like key binding options for spying previous players (Spycam to the previous player rather than the next one), adding and removing one bot as well as the option to remove all bots, and even creating a multiplayer options menu for this, though it's unfinished.

ZDoom & GZDoom would benefit from having this menu since those ports do not include a multiplayer setup menu like Zandronum does (and thus, Zandronum doesn't require this implementation).

I'm undoubtedly content with sharing the changes that I've made to this if anyone wants to improve from it.
Sounds interesting, definitely worth posting. I'll separate them into a patch and include them in the main post once that's done (The reason I won't just merge them into the TDBots main .pk3 is that it would just further complicate building for Zandronum and removes compatibility with ZDoom 2.8.1 in the case of the ZDoom version).

Thanks for your efforts, all improvements help and this is definitely one that looks pretty good. Curious, did you change any of the bot functionality itself? I would like to see what was changed there if so, they might be changes worth merging.
User avatar
Josh_7774
Posts: 5
Joined: Wed Mar 25, 2020 7:55 pm

Re: TDBots: The fast-performing bots v26c (23/4/2020)

Post by Josh_7774 »

TDRR: I'll separate them into a patch and include them in the main post once that's done (The reason I won't just merge them into the TDBots main .pk3 is that it would just further complicate building for Zandronum and removes compatibility with ZDoom 2.8.1 in the case of the ZDoom version).
That would be a better idea actually, to maintain compatibility with multiple source ports and let the multiplayer options menu be some sort of add-on for ports without an integrated multiplayer menu.

Fortunately I did some modifications last night and seperated the options into a WAD file which then can be loaded at will with something like Doom Explorer, granted the source port being used works with it.
TDRR: Curious, did you change any of the bot functionality itself? I would like to see what was changed there if so, they might be changes worth merging.
As I mentioned, I've made minimal changes to the scripting.

Within ACS, two changes were made:

1. Adding the SetPlayerProperty function in the TDBots_BotThink script and setting the PROP_TOTALLYFROZEN flag for the function to 1 (Quick and hacky method to freeze the ZCajun bot script so that it wouldn't interfere with the TDBot script, though I think it could still input left or right turning (Confirmation needed)).

2. Changing the bot recall time limit to 5 seconds (which is not of much use since this is already implemented in newer versions, and in addition to that you can set the time limit).



Within the DECORATE lump, three changes, two of them influence it's movement:

1. Using the A_Recoil function to have the TDBot move forwards and backwards more like a human player (Can only set forward(Negative values) or backwards(Positive values) movement, so left and right strafing movement unfortunately can't be set here).

2. Adding the SPF_INTERPOLATE flag to the A_SetAngle functions within the turning sections to have the bot turn direction more smoothly like a human player rather than instantaneously turn.

3. Adding the SetPlayerProperty function with the PROP_TOTALLYFROZEN flag to 1 to the BotFunc_StartUp function, to guarantee the ZCajun script wouldn't interfere with the scripting of the TDBot.



These are the changes that I can confirm after looking at them in SLADE. There are some other changes that I haven't listed here, but these are the more important ones.

And as always, feel free to take a closer look at the changes in my edited version because "A picture tells a thousand words". Will send you the file via PM or something like that along with the multi options menu add-on.
User avatar
TDRR
Posts: 815
Joined: Sun Mar 11, 2018 4:15 pm
Preferred Pronouns: He/Him
Operating System Version (Optional): Debian 12/ Manjaro
Graphics Processor: nVidia with Vulkan support
Location: Venezuela

Re: TDBots: The fast-performing bots v26c (23/4/2020)

Post by TDRR »

Josh_7774 wrote:As I mentioned, I've made minimal changes to the scripting.

Within ACS, two changes were made:

1. Adding the SetPlayerProperty function in the TDBots_BotThink script and setting the PROP_TOTALLYFROZEN flag for the function to 1 (Quick and hacky method to freeze the ZCajun bot script so that it wouldn't interfere with the TDBot script, though I think it could still input left or right turning (Confirmation needed)).
This is already done, just not in the script itself, it's instead set every time the Codepointer() function is called. And yes, the ZCajun bots will still change their angle, which is completely unavoidable as of the time of writing.
Josh_7774 wrote:Within the DECORATE lump, three changes, two of them influence it's movement:

1. Using the A_Recoil function to have the TDBot move forwards and backwards more like a human player (Can only set forward(Negative values) or backwards(Positive values) movement, so left and right strafing movement unfortunately can't be set here).
This is how earlier TDBots versions worked (Not sure when this changed, probably before v10, but I'm 100% sure v2 still was like this), but I always reset velocity, since the TDBots would randomly accelerate a lot in many situations otherwise, and strafing was a nightmare to add this way. BTW, using A_Recoil isn't necessary, just removing the CVF_REPLACE flag from A_ChangeVelocity calls would suffice.
What I mean is, it's a nice feature to have them move more like a human player, but it's definitely not worth the extra bugs and worse maintainability of the mod (Owing to the hacks I would need to do to fix the bugs, is what I mean)
Josh_7774 wrote:2. Adding the SPF_INTERPOLATE flag to the A_SetAngle functions within the turning sections to have the bot turn direction more smoothly like a human player rather than instantaneously turn.
Unfortunately, this one can't be added, as it breaks compatibility with the target sourceports (ZDoom 2.8.1, it's drfrag forks and Zandronum), and for fairly obvious reasons can't be put in a patch.
Josh_7774 wrote:3. Adding the SetPlayerProperty function with the PROP_TOTALLYFROZEN flag to 1 to the BotFunc_StartUp function, to guarantee the ZCajun script wouldn't interfere with the scripting of the TDBot.
I tested this one, and there's no difference at all. The ZCajun bots just do not check for the TOTALLYFROZEN flag before setting their angle, so they still interfere anyways.

I appreciate your help with the scripting, but it's unfortunate that for various reasons I can't implement your improvements. The menu is still really useful though, so that still would be really awesome to have.
User avatar
Josh_7774
Posts: 5
Joined: Wed Mar 25, 2020 7:55 pm

Re: TDBots: The fast-performing bots v26c (23/4/2020)

Post by Josh_7774 »

This is already done, just not in the script itself, it's instead set every time the Codepointer() function is called. And yes, the ZCajun bots will still change their angle, which is completely unavoidable as of the time of writing.
Figured that would be the case.

At least with Zandronum you can set a bot to have it do nothing by leaving it's script name in the BOTINFO lump blank, and then adding the scripting of the TDBot over it and let that do 100% of it's inputs.

I think this issue could probably be fixed in GZDoom and ZDoom if the developers of both ports added a CVAR to either enable or disable the ZCajun AI. But that would be a very low priority thing for them most likely, especially when there are way more important things to be done. Like improving the Vulkan renderer for example.
This is how earlier TDBots versions worked (Not sure when this changed, probably before v10, but I'm 100% sure v2 still was like this), but I always reset velocity, since the TDBots would randomly accelerate a lot in many situations otherwise, and strafing was a nightmare to add this way. BTW, using A_Recoil isn't necessary, just removing the CVF_REPLACE flag from A_ChangeVelocity calls would suffice.
What I mean is, it's a nice feature to have them move more like a human player, but it's definitely not worth the extra bugs and worse maintainability of the mod (Owing to the hacks I would need to do to fix the bugs, is what I mean)
Acknowledged. And I probably should have mentioned earlier that the changes I made to the script were a means of experimentation, by how I can get the bot to move as humanly as possible, turn as humanly as possible, and fire as humanly possible, so definitely by no stretch of the imagination can something like this be merged into the main file.
Unfortunately, this one can't be added, as it breaks compatibility with the target sourceports (ZDoom 2.8.1, it's drfrag forks and Zandronum), and for fairly obvious reasons can't be put in a patch.
That blows. I guess the only real way to simulate human turning without breaking compatibility with other ports is defining a long sequence of functions using A_SetAngle and A_JumpIf. Basically have it loop into a 1 degree turn (maybe more than 1) and go to A_JumpIf once it's facing it's target and initiate an action.
I tested this one, and there's no difference at all. The ZCajun bots just do not check for the TOTALLYFROZEN flag before setting their angle, so they still interfere anyways.
I'll wager the ZCajun bot code really is so ancient (If I recall, they were first created in the 2000s) that they don't take into account most newer ZDoom flags. Not to mention they haven't been updated ever since they stopped looking for items (a LONG time).
I appreciate your help with the scripting, but it's unfortunate that for various reasons I can't implement your improvements.
I understand completely. As I mentioned, my changes were purely a means of experimentation.
The menu is still really useful though, so that still would be really awesome to have.
I can send you the WAD file, but it would need to be through email or something like Google Drive or OneDrive since I currently cannot PM members of this forum due to still being new, nor can I send downloadable files.
User avatar
sebastianali
Posts: 20
Joined: Tue Mar 12, 2019 10:21 pm
Graphics Processor: Not Listed

Re: TDBots: The fast-performing bots v26c (23/4/2020)

Post by sebastianali »

Hello, im new in the forums and im impressed with this... Im a very fan of skulltag, and i wanted for a long time the bots... But there´s some problems that makes Skulltag bots (at least in deathmatch) better (Im test Doom 1 for now)
-For example, the bots in coop while first it seems to works fine in maps like Hangar for example the bots gets stuck shooting the enemies too far, and when the enemies died, for some reason it starts to shoot the barrels and suicides a lot of times. Sometimes the bots simply starts running in the same room and doesnt follow you, although this can be fixed if it was like Counter Strike (commands to the bots).
-In deathmatch however, the bots works very good, but for some reason sometimes stays in the same place, waiting for you to coming and has perfect aiming even in the easiest difficult, this Skulltag does a lot better.
-And another problem, (at least in Zdoom), is when you play coop or deathmatch, the game stays like this and you cannot play normal mode until you exit and restart the game.
-EDIT*: A new bug that i found is that for some reason a bot in coop start to shoot me, i doesnt damage me, but it ignores the monsters.... what? XD
Im not hating your mod or something like that, im only do you some hints that can make this mod a lot better to make our dreams real ;)
Post Reply

Return to “Gameplay Mods”