- Joined
- Jan 16, 2014
- Messages
- 1,114
- Reaction score
- 310
Thinking of the insatiable derpyness of AI, and thinking fondly of the days of CS server-bots, I had an epiphany. The LUA stuff gave me an idea of the way development seems to be planned.
What if The Ai not-oly had a default set of scripted actions, they could be over-ridden by an active bobbyAI block connected to a display module?
I thought of a few benefits like:
I'd expect a few things to be scriptable at that point.
What if The Ai not-oly had a default set of scripted actions, they could be over-ridden by an active bobbyAI block connected to a display module?
I thought of a few benefits like:
- Script can change from logic blocks re-writing the display being called to, to change aggression/maneuvering/etc based on current system status and author design
- adapts as game evolves though community/author management. eg, power changes, range changes, etc
- Majority of scripting and block information function is already freely available in current display implementation.
- Resource for developers to complete their own AI/Bot functionality. Improved defaults mined from a mob are always nice, right?
- takes the load off purly-logic system solves in the more "interesting" player builds. Eg a high speed clock checking shield status and flipping passives. Which can get quite load-y in larger numbers. Vs the AI naturally doing it on the available server cycles.
- closing distance, speed
- target distance,
- waypoint distance
- states like {fleet rank, XYZ formation, mother/flagship y/n} fleet order {mining/patrol/defend/attack/move/idle}
- {define variable}, to let you interact with things like specific sensor blocks, or inner-ship remotes. Maybe work off of block position? copy-paste&tweak the inner-ship code?
- {orbit speed} and {orbit distance} from {waypoint entity} bounding box
- weapons fire priority, or rotation, based on events. EG {target shields} > {1%} use {computer IDyaddayadda} ; {target shields} = 0% use {computer IDyaddayiddish}
- passive system activate/deactivate, based on events EG {own Shields} > {0%) {on} {IoncomputerIDblahblah} , {off} {piercingComputerIDargnumbers} ; {own shields} = {0%} {off} {IoncomputerIDblahblah} , {on} {piercingComputerIDargnumbers}
- {parent's target} {target friend-or-foe} {target distance} {targetXYZhp} for turret-things like astrotech, salvage, momentum(towing), fighterdefence etc. EG an anti-fighter turret could be set to only fire on targets with less than some absolute system hp, and anti-capitol ones only on targets of higher than some absolute value, or by some other available situation variable.
- set-state on all computers of entity in general, {scanner} {jammer} and whatnot included.
I'd expect a few things to be scriptable at that point.
- Spooling of jump drives while power is not otherwise being used, or in combat (civvies can run from hostiles), or activation of interdiction, or stuck
- appropriate stand-off distance / avoid / engage behavior from attack/defence/scavenger/civilian in loaded sectors
- more dynamic encounters in general. cloaked raiders/pirates surprising you at knife range,
- functional and variable warhead torpedos, more predictable fleet actions.