[v0.11.1-rc2] ZetaBot: The ZScript Bot

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.
User avatar
Gustavo6046
Posts: 136
Joined: Sat May 13, 2017 3:11 pm
Location: Brazil
Contact:

Re: [v0.9.0] ZetaBot: The ZScript Bot

Post by Gustavo6046 »

I just had a new idea.

What if we held a contest, where a WAD (or single map from a WAD) was chosen, and people had a deadline to make ZetaBot nodes for this WAD? Then, for each player's nods setup, four ZetaBots would be spawned (with coop respawn enabled) in the four player starts, and the nodes that led the bots to exit the level in the least amount of time would win.

This could encourage people to learn about bot pathing, as well as foster the ZetaBots themselves.

I will resume development on the ZetaBots. Just had to take a break. Sorry about that.
User avatar
Gustavo6046
Posts: 136
Joined: Sat May 13, 2017 3:11 pm
Location: Brazil
Contact:

Re: [v0.9.0] ZetaBot: The ZScript Bot

Post by Gustavo6046 »

It is in grief that I announce that the ZetaBot project is now unfortunately discontinued; while it was a good ZScript learning experience, it is clear that this is still only a child's sandbox compared to projects that concern the native C++ code of GZDoom. Therefore, even with ZScript's new capabilities, attempting to develop a bot in it is mostly a moot point, at least when it comes to the essence of the project itself. It was very nice to work with you, fellow ZDoom forum members. Thank you.

Update 04/25: Two significant releases have been out since this "discontinuation". Consider it... reverted!
Last edited by Gustavo6046 on Sat Apr 24, 2021 11:51 pm, edited 1 time in total.
User avatar
Gustavo6046
Posts: 136
Joined: Sat May 13, 2017 3:11 pm
Location: Brazil
Contact:

Re: [v0.10.0] ZetaBot: The ZScript Bot

Post by Gustavo6046 »

v0.10.0 is out; after a long hiatus and a very long time thinking about it, I feel like this still deserves to be at the very least ironed out and polished for you beautiful people to play with. It was not a pointless project after all, as it clearly had a bit of a legacy, inspiring at least one other bot mod to rise out of the starry abyssal crib. After all, this actually does work, unlike, you know ... thing. Nonetheless, I am ecstatic to announce that the ZetaBots are maintained once more! Awh yeah, baby, long term support, bet y'all love some too!

Just a word of caveat emptor. There have arose some strange performance bugs in the project lately. So, unlike the (outdated) screenshots suggest, spamming a bunch of ZetaBots might be kind of a bad idea.......for now! This project is now being maintained! Things will be fixed! Hooray!
User avatar
Gustavo6046
Posts: 136
Joined: Sat May 13, 2017 3:11 pm
Location: Brazil
Contact:

Re: [v0.10.0] ZetaBot: The ZScript Bot

Post by Gustavo6046 »

Screw this "preview" column in the subforum thing. I can''t post my logo because it needs transparency, which Imgur links can't have, and attachments apparently are skipped and can't be used as preview thumbnails either. I honestly don't know what to put there. This is just a bot! Maybe I should have made screenshots of the path network instead -- when the paths are shown they can be truly beautiful, especially in newer versions where I adjusted that.
User avatar
Gustavo6046
Posts: 136
Joined: Sat May 13, 2017 3:11 pm
Location: Brazil
Contact:

Re: [v0.11.0] ZetaBot: The ZScript Bot

Post by Gustavo6046 »

Let's play a game. Welcome to the...

Pretty Paths Compilation!

No, really. I'm gonna make a gallery with some of your submissions, but read on.

The most important pretext is that zt_showpaths allows one to dynamically visualize paths between nodes as the latter are plopped. Path nodes can easily be added from the game itself, and can also be saved and loaded (by default numpad 8 and 9, for saving and loading respectively).

Those paths can be gorgeous. This is your chance to show the world your paths.

So, create some paths! Here are some guidelines:

a) No need to bring up an editor - this mod already adds key bindings to the controls menu for plopping down nodes and stuff.
b) Just normal nodes (numpad 2 by default) are enough (don't worry about the node types).
c) It doesn't have to be a big level. In fact, it doesn't have to be the whole level at all!
d) While you do it, use zt_showpaths to make sure all your nodes are connected nicely, and that hopefully all the important ground is covered. :)
e) If you do mess up, bind the key to delete the last plopped node, in the Controls submenu under ZetaBot Pathing. I personally use Backspace as I don't really use it for anything else in GZDoom/LZDoom, but you do you.

Once you're satisfied, take some screenshots of your paths while using zt_showpaths to display them. And then, post them here! All path net screenshots posted until May 1st will be added to a public gallery for all to see.

Here's an example of what I mean.



----

Psst, for the more codey ones out there, you may be delighted to know that priority queues since v0.11.0 now use a simple binary min-heap implementation. Slightly less crappy data structures! Woo! Totally meaningfully meaningless micro-optimizations for the win! \o/
User avatar
Gustavo6046
Posts: 136
Joined: Sat May 13, 2017 3:11 pm
Location: Brazil
Contact:

Re: [v0.11.1-rc2] ZetaBot: The ZScript Bot

Post by Gustavo6046 »

I think it is needless to say that the compilation was cancelled due to the lack of submission. Just wanted to formally declare that before anyone asks.
User avatar
TheRailgunner
Posts: 1555
Joined: Mon Jul 08, 2013 10:08 pm

Re: [v0.11.1-rc2] ZetaBot: The ZScript Bot

Post by TheRailgunner »

So...how exactly do I use ZetaBots? Do the bots draw paths on their own? Are they affected by player-centric ACS scripts?

Basically, I want to be able to adapt this to give Malice's Reinforcements more player-like qualities instead of a narrow range of monster-based behaviors, as well as give them objectively better pathfinding and teamwork abilities.
User avatar
Gustavo6046
Posts: 136
Joined: Sat May 13, 2017 3:11 pm
Location: Brazil
Contact:

Re: [v0.11.1-rc2] ZetaBot: The ZScript Bot

Post by Gustavo6046 »

TheRailgunner wrote:So...how exactly do I use ZetaBots? Do the bots draw paths on their own?
The ZetaBots can be spawned. The pathing is done manually; there is an option for bots to plop nodes automatically where they go (the CVar "zb_autonodes"), but those tend to be of poor quality. I recommend checking the keybinds that the mod adds to the controls menu.
TheRailgunner wrote: Are they affected by player-centric ACS scripts?
It depends. Bots probably can trigger ACS scripts if they activate lines that execute them, although I never verified, and I doubt player-centric scripts can affect bots, since bots are internally not playerpawns.
TheRailgunner wrote: Basically, I want to be able to adapt this to give Malice's Reinforcements more player-like qualities instead of a narrow range of monster-based behaviors, as well as give them objectively better pathfinding and teamwork abilities.
I can tell from experience that it is not at all easy to make an AI that feels player-like! You can definitely use the ZetaBot as a basis for your AI, although I'm not sure how adaptable it is as a general-purpose actor (it is kind of hardcoded to act more like conventional bots, spawning in predefined respawn-type pathnodes and kind of doing things on their own, at the moment).

As for the team-work, bots giving each other orders (as well as players themselves giving bots orders) has been in the works for a while, but I'm not quite satisfied with it yet, and it doesn't really seem to do much of anything right now. I do plan to add the ability for bots to request for their fellows' backup when under heavy attack, kind of like the bots in UT can. Some of the codebase is quite extensible, so you could subclass the bot order class (although ZScript.zsc is big and is still begging to be refactored).
User avatar
dawnbreez
Posts: 199
Joined: Wed Jul 08, 2015 12:29 pm

Re: [v0.11.1-rc2] ZetaBot: The ZScript Bot

Post by dawnbreez »

Is there a bare-minimum example of what's needed for a working module? I'm throwing together a deathmatch-focused weaponset on a lark, and want to test it without wrestling with GZDoom's existing network play system (or waiting for the host/join command PR to merge).
Post Reply

Return to “Gameplay Mods”