QW-Group/ktx

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

inf1niti opened this issue · 2 comments

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.

  • There's no documentation explaining how to use the editor (within ktx or elsewhere).
  • Many of the editor commands are unclear (ie using botcmd savemarker to select a marker to edit/work with).
  • Some features are supported only with map-specific logic (more on this below).

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

Improvements

  • A top level help command (botcmd help)

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.


  • Add details on individual commands; Rename commands and flags for clarity

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).


  • Automate setting values for rocket jump paths

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

  • select start marker -> set path to next marker -> rj from start to next (rjflags casually bprints to your screen) ->type setpathflag r on next -> type rjfields <bprint #s> on next (if you figured out to RJ to the next marker in the first place 🤦)

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.


  • Automate setting values for curl jump paths

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.


  • Genericize custom logic for doors/secrets, expose control to editor

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 🤞


  • Wiki page and/or video tutorial on using the bot editor

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


  • map support wishlist

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

  • catalyst
  • phantombase
  • katla
  • zeit/zite
  • travelert6
  • ?

support map end

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.