QW-Group / ktx

KTX: a QuakeWorld server modification
GNU General Public License v2.0
55 stars 48 forks source link

RFC | KTX Bot (frogbot) editor & map support updates #329

Open inf1niti opened 11 months ago

inf1niti commented 11 months ago

This is a meta-issue, listing a whole bunch of wish-list improvements for KTX bots that would likely be completed over a number of PRs. If you'd like to help out with the implementation LMK.

KTX Bots are pretty easy to work with and extend. There's even a built in .bot file editor in the server mod! (k_fb_options 2) ...but there are a few shortcomings in the editor that make it difficult to work with.

These issues are preventing creators from adding support for new maps, or extending the bot-supported map pool.

Improvements

typing botcmd or botcmd help should provide basic starting information for admins/creators to be able to use the editor. There should also be descriptions for each sub-command, providing a high-level overview of the bot editor's use.


Descriptive console output when running bot commands is minimal or missing entirely. When a command is used without the appropriate parameters, clear details on it's use should be provided similar to other cvars/cmds in ezquake/ktx. Commands (and parameters) should also be renamed to relevant, human-readable input (they can still be stored/encoded as single letters in code).


Setting the appropriate parameters on a rocketjump path is kludgey. Currently the process is as follows:

Given we're already collecting the RJ information, we should be able to store it to a global in fb_globals and automatically apply the pathflag and rjfields with a single command without needing to read output from a bprint.


Anglehints for curljumps (pathflag = a) are similarly tricky to setup ... But in this case there's no output if you try completing the jump yourself, so you have to just kinda GUESS an angle with anglehint and trial/error/pray.

Hoping we can do something similar here to make this easier to work with.


Custom logic is in place for dm6 lg door (func_secret), and preventing the bots "desire" for armor when the doors are closed on povdmm4.

Ideally we should make these features generic, and expose their use more appropriately in the editor so they can be applied to any map. Maybe by adding generic editor support for secrets/doors, we can also make dm2 supportable 🤞


Some people will probably still need a bit more 🤝 hand holding to use the bot editor, let's more fully document & tutorialize it's use so creators can add support for ktx bots to their maps without too much trouble


What maps would we like to have supported by default that are not currently supported? E.g.

tarbugre commented 7 months ago

support map end

Any-other commented 4 months ago

I just figured out how to do this for my maps so I can get some games on them 😂. It was really frustrating trying to figure out and would be great if improved. I have it "working" on my map elektranarc17z on my servers. It was fun to do though and if easier I could see myself making them for a bunch more maps.