| Home Page | Recent Changes

Bot Path Refactoring

Current Organization

This is the currently "refactored" organization of bot support.

This page has now been marked for deletion.

BUMP: Please delete this page. Thank you.




  • [Types Of Pathnode]? – marked for deletion, all is covered in Bot Pathing
  • [Building Paths]? – marked for deletion, all is covered in Bot Pathing
  • Bot Support (UT) – old, old hub (appears obsolete)
  • Bot Vision – modding bot perception (not related to stock bot support, related to Modding)

Discussion

Note: This is the original old discussion on bot path refactoring.

Suppose we begin with a blank slate and draw up a table of contents of what we should have...

  • A general introduction and quick overview of the topic of making computer-controlled pawns navigate maps. This will then have a table of content for this whole topic area. Title probably [Navigation AI]?, since this is what the UDN use. This is a sort of meta-hub for pathing & AI coding.
    • [Bot Navigation]? – hub page for pathing
      • a more in-depth page about how bots work: Bot Mind.
        • subpages to cover more complex strategy stuff like defense points etc. We could probably also cover programming bot brains for new gametypes here too.
      • an archive of UT-only stuff on how bots work
      • simple instructions on creating a network, building and testing it. (probably called Bot Pathing) This would then link to...
      • a set of specialized pages on pathing specific features. These should all have titles that fit in the same scheme. I suggest "Pathing Foo"

Please add any others, discuss ideas, suggest page titles.

Recondite: I think i'll update intelligence (starting in a couple hours, unless someone is working on it), doesnt seem to be any coder specific commentary anywhere. Just keep in mind it'll be noob commentary and scratchpad at first and not geared to mappers at all. As an FYI, I need to nav bots to a runtime generated objective that moves, so i've got to look at overriding behavior at the least. The current objective code calls native methods that seems to look at the map's compiled path information (and thus dont find my objective). It also expects objectives and not navpoints, so i cant trick it and pass the closest navpoint in (le sigh). I expect this not to be too painful, but it does require me to review a good bit of engine classes. BTW, If anyone knows how to add to the native path list at runtime, puhlease let me know so i can go ahead to beta :) If not, possible commentary includes team vs squad AI vs single AI, tellBotHowToDisable hooks, and my personal favorite code copy n paste vs subclassing and overriding.

Mychaeel: There's quite some information on coders linked from Bot Support (scroll down to "Classes"). However, feel free to add to it.

Recondite Looks good, i like the overview and the class info but i love impl examples too. what i'll probably do is create my own extension/example page first and then see if/where it makes sense to point between the two. Sort of a how to use the classes with a new gametype page (connecting the high and the low level). Or maybe just add a gametype extension example to the unrealscript lessons.

SuperApe: My $0.02: BotSupport *is* the basic overview page; linking to all others. A page on making computer controlled pawns that navigating maps seems slightly off-topic, as that's not pathing. BotSupport is a fine title (I suggested Botplay, but BotSupport has already been in use). UT-only stuff is already marked as "foo(UT)". The simple pathing tut described seems to have been done and re-done, I suggest compiling them all to the one specifically named. The idea of creating "pathing foo" pages seems to defeat the purpose of refactoring, doesn't it? There is already a page on Pathing Lifts, and pathing ramps is the same as pathing a flat floor. End my $0.02.

Tarquin: I had a brainwave today, so I made some big changes. Think of [Bot Navigation]? as the hub for mappers (title can always be changed if people hate it). By a hub I mean a relatively short page, with at most one line of description for each link. [Navigation AI]? is a sort of meta-hub that straddles pathing (for mappers) and coding AI (for coders). The old "Bot Support" page has in effect been split into three pages: making the network, how bots think, and testing the network. I think this is much easier to work with and I hope it will encourage some new material in future :)

Tarquin: I think I'm more or less finished. Some minor cleaning & link fixing to do here and there :)

Foogod: Ok, I'm just coming into this trying to get a grasp of where everything stands and what we're aiming for.. This is my understanding of the way things are headed.. is this correct?:

Obsolete pages:

Some questions:

  • Should we turn Pathing Kickers into a UT-only page and replace the UT2003/UT2004 part of it with something like Create a Jump Pad instead, a nice page which is much more detailed (and doesn't talk about Kickers which is a red-herring for UT200x)?
  • Where does Bot Support (UT) go? Should this be linked from [Bot Navigation]? too? (that's the best place I can see for it)
  • Bot Vision doesn't appear to be obsolete (tho it does need a bit of cleanup), but doesn't seem to be linked in anywhere obvious. Should this be linked from [Navigation AI]??
  • Do we have a more general-purpose "AI" topic page for coding-related bot-mind stuff? It really seems to me that's where most of the links which are currently on [Navigation AI]? belong, because they aren't really about navigation, and that's also presumably where somebody should be if they go to Artificial Intelligence. Should we change the Artificial Intelligence page into a real page (instead of a redirect) to contain AI-related materials, and link to [Navigation AI]? (and Bot Vision, etc) from there? That would make the most sense to me.

(For what it's worth, I have to agree with Tarquin that things should be separated between mapping and coding, and that "Navigation AI" is a better name for a coding-related bot-navigation hub than "Bot Support", which doesn't imply coding at all ("AI" is at least a fairly technical term which usually involves code). I like the idea of having "Bot Navigation" be everything-for-mappers and "Navigation AI" be everything-for-coders.)

Tarquin: that seems about right. I thought I'd more or less cleaned this up, but it keeps coming back for more... :( "Navigation AI" is (currently) the all-round hub because the UDN uses that title, so I figured we should try to be consistent with them.

Foogod: Well, to be honest, I don't think [Navigation AI]? should be the top level hub, regardless of what UDN does (howabout we just put a link on it saying basically "if you're looking for the hub, go here"? That seems enough to keep a basic consistency for anybody who actually cares, without misnaming all our stuff because UDN chose bad names (there's a lot more to AI than just navigation, and there's more to navigation than AI, so a lot of things just don't belong under something called "Navigation AI").) Personally, I think the best approach would be to have two top-level hubs (mapping vs. coding) which cross-link each other ([Bot Navigation]? and Artificial Intelligence would be my vote). Anything else is going to be confusing/annoying for mappers or coders or both.

I'm willing to help with some of the remaining cleanup of things, but before I jumped in and started changing things I wanted to make sure I understood what people have been working toward so far.. If what I've outlined here seems reasonable, then I'll look into fixing some of the pages that don't currently fit.

Tarquin: My original idea was to have a 'super hub' above the mapping and coding hubs, but I now think it doesn't serve very much of a purpose other than an extra click.

SuperApe: I'm not going to refactor this again, but note that if we think it's done, then we should take this page down. We should also remove all the Help Needed links to this page (like from Recent Changes). *That's* why this keeps cropping back up and it keeps getting changed. Personally, I'd like to see it organized more-or-less how it was when I finished, but I'm not holding my breath. BotSupport used to be the hub, branching off to Navigation, AIScripts, BotMind, Pathing issues, etc. and linked as a side note to custom AI projects and issues.


SuperApe: I know. I swore I wouldn't refactor this again for fear of it getting ripped apart again. But... "Current Organization" replaces "Pages Concerned" with an up to date outline of the structure including descriptions. For the love of God, please just make comments here instead of ripping the structure apart again. It's almost a helpful reference again.

The subject of bot support encompasses navigation, that's true. But if the hub of this subject is called "Bot Navigation" or "Navigation AI", you'd think that's all there is. Bot Support also encompasses Defensive Scripts for GameObjectives, Sniping Volumes, handling trigger systems, etc. Even without Modding or custom coding, there is a lot that bots can be made to do besides navigation. Bots, however are a separate entity from Monsters and NPCs. Bot Support is an essential component of mapping, monsters and NPCs are not. I believe the new structure should be like this:

NOTE: It might be okay to combine Monster Support with NPC Support, although two things come to mind: a) Monsters are meant to attack, NPCs can be used in Single Player mods for other (more complicated) things. b) Monsters (even the ones in UT2004 Invasion) are primarily UT entities and we should think broader to encompass UT200x NPC AI constructs. (Like my [ROOs])

This looks much more like a workable reference for mappers and AI programmers alike. It doesn't ignore the other things bots can be set up to do with stock techiniques, besides navigate. At the top of the heirarchy, the custom monsters and NPCs are given their own structure, separate from the much more common task of implementing bot support.

Tarquin: Whoever you are, please sign in so your name shows on Recent Changes and you can sign your comments. Tx.

SuperApe: It's [me], Tarquin. I have been signing my comments, they're just long and I like to format them so they're legible. I have also been making my updates known on Recent Changes by putting my name in the summary, but I will attempt to Log In in the future.

Tarquin: Oh right. I thought there were several IPs having a conversation :)

SuperApe: So, how can we remove the pages that are noted as obsolete? How can we fix the Artificial Intelligence redirect to make it a page again?

Tarquin: 1) move useful content and tag with "delete me" 2) done :)

SuperApe: Great. Thanks for the REDIRECT help too. :)

Tarquin: np :) Oh, and 1b) find all links to the page and remove or change them.

SuperApe: Good point. :) np


SuperApe: Done. Current Organization edited. All links updated.


Delete Me – All has been refactored and reorganized to a logical and workable system. (see above)

The Unreal Engine Documentation Site

Wiki Community

Topic Categories

Recent Changes

Offline Wiki

Unreal Engine

Console Commands

Terminology

FAQs

Help Desk

Mapping Topics

Mapping Lessons

UnrealEd Interface

UnrealScript Topics

UnrealScript Lessons

Making Mods

Class Tree

Modeling Topics

Chongqing Page

Log In