Conceptually Simple Bobby AI Enhancement

    nightrune

    Wizard/Developer/Project Manager
    Joined
    May 11, 2015
    Messages
    1,324
    Reaction score
    577
    • Schine
    • Top Forum Contributor
    • Thinking Positive
    I really just want a recall feature for the AI and I know people have requested it. I've looked around a bit, and I haven't found many suggestions other then different types of AI. So I'll add my enhancement to the pool as well.

    I know Schine doesn't want to attempt 3D dynamic path finding, and I don't blame them. Especially at this stage in development, but I think the way I'm going to suggest is a way that's very much inline with the current Starmade way of doing things.

    Overview:
    I suggest the Bobby AI Controller block. You can slave a bobby AI to this block, as well as slave a rail section to the AI controller. Then add a Recall feature to the ship AI tab (I talk later about how this should be on the tool bar). If the Bobby AI is currently flying and Recall is pressed, The Bobby AI plots a course to the ship and attempts to find the rail block. If the slaved rail block isn't in line of sight or no rail block is slaved, the bobby AI then proceeds in a holding pattern over the ship. If it is line of sight it uses its rail docker (Most likely the first on on the tool bar) to dock to the rail.

    This allows ships to have a fleet of smaller ships without docking rails, with docking rails inside a hanger, or just docking rails on the outside.

    To extrapolate the different scenarios:
    1) No rails exposed on the ship when recall is initiated. Bobby AI ships plot a course back to the controller ship, they find no exposed slaved rails and initiate a holding pattern.

    2) Simple Rail is exposed: Bobby AI ships plot a course back to the controller ship and find a slaved rail and begin docking (Queueing here might be a bit hard to code but its solvable, and there's option to extend and make it fun).

    3) Hidden Rail/Hangar Deck: Bobby AI ships plot a course back to the controller ship and does not find an exposed rail. Ship captain opens hanger exposing a slaved rail segment, and re-initiates the Recall command. Ships now find an exposed slaved rail segment and begin the landing process.

    Extended:
    More advanced the Bobby AI Controller should be on the tool bar and other bobby AI controllers should be able to slave to that one, allowing squadron controls. On the tool bar the controller should be able to use the scrolling dynamic we already have with the wedge/tetra/block/hepta blocks. It could show the current action the Controller is attempting (Send/Recall).

    This avoids most of the bad pathing problems that you would need to fly into ships, but without giving up sweet hangers. The pathing is just defined by rails from the players. It also allows a small mining ship a way to have a patrol around them, and gives just enough control. Release/Recall. You might also add a neat combat feature where if you destroy the AI controller all the AI drop or change their behavior.

    Conclusion:
    Its powerful, simple, and not terribly hard to code (Not easy really either). Allows the AI dynamic most people have been wanting and is pretty useful for pirates and other in game AI still (As its still send/recall binary). Its much less complicated then 3D Dynamic Pathing through player created structures as cool as that would be.
     
    • Like
    Reactions: Malacodor