NPC Ship Combat Behavior Options
Posted: Thu Aug 08, 2013 12:47 am
Reading Josh's August 6, 2013 devlog and samuelgreene's suggestions for using neural networks or genetic algorithms to test the efficacy of the abstracted simulation reminded me of a notion I came up with some time back: Breeding Better NPC Opponents (on my external blog).
The idea was that, rather than the developer needing to design and implement a mix of pre-defined NPC combat ship types, why not let the game itself "breed" better ships over many battles?
The guts of the idea are in the link above. What I'd like to consider here is just part of that idea, which is the possible range of behaviors that NPC ships could demonstrate in combat.
If fights are over in a trice, then "behaviors" is irrelevant. Boom, someone's dead. But if the typical fight lasts for a while (almost certainly true for fleet-sized engagements), then it might make sense to let NPC ships have a range of behaviors they can display beyond circle-strafe-and-fire-continuously. This would help keep combat interesting. (That's not meant to be a knock against the Limit Theory Prototype, incidentally.)
So, that said, here's the fairly generic list of behavior modes from my blog post. I'd be interested in hearing what others think about these. The "shields" bit might not apply, but what about the other decisions NPC ships might make in combat? Would choices like these work in LT, or is the whole concept of defining a range of possible NPC ship combat behaviors pointless in some way that I'm not seeing? If there's value in spelling out NPC combat ship behaviors like this, how could this list be improved?
Edit away!
The idea was that, rather than the developer needing to design and implement a mix of pre-defined NPC combat ship types, why not let the game itself "breed" better ships over many battles?
The guts of the idea are in the link above. What I'd like to consider here is just part of that idea, which is the possible range of behaviors that NPC ships could demonstrate in combat.
If fights are over in a trice, then "behaviors" is irrelevant. Boom, someone's dead. But if the typical fight lasts for a while (almost certainly true for fleet-sized engagements), then it might make sense to let NPC ships have a range of behaviors they can display beyond circle-strafe-and-fire-continuously. This would help keep combat interesting. (That's not meant to be a knock against the Limit Theory Prototype, incidentally.)
So, that said, here's the fairly generic list of behavior modes from my blog post. I'd be interested in hearing what others think about these. The "shields" bit might not apply, but what about the other decisions NPC ships might make in combat? Would choices like these work in LT, or is the whole concept of defining a range of possible NPC ship combat behaviors pointless in some way that I'm not seeing? If there's value in spelling out NPC combat ship behaviors like this, how could this list be improved?
Edit away!
- maneuver
- 1 = maintain close range
- 2 = kite (circle opponent at medium range)
- 3 = maintain long range
- 4 = hide behind cover between attacks
- 5 = randomly jink
- offense
- 1 = fire any weapon as soon as it's ready
- 2 = fire when 2 or more weapons are ready
- 3 = fire when 3 or more weapons are ready
- 4 = fire only when facing opponent's weakest shield
- 5 = fire only when facing opponent's strongest shield
- aggressiveness
- 1 = maximize power to life support
- 2 = maximize power to auxiliary systems
- 3 = maximize power to engines
- 4 = maximize power to shields
- 5 = maximize power to weapons
- mercy
- 1 = allow opponent to run away
- 2 = allow opponent to surrender
- 3 = no quarter asked or given - maneuver to remain engaged while checking self_preservation
- defensive_maneuver
- 1 = turn to keep all shields evenly charged
- 2 = turn to keep forward shield overcharged and facing strongest opponent
- 3 = turn to keep weakest shield away from strongest opponent
- targeting_focus
- 1 = personal_targeting only
- 2 = if grouped and internal damage = 0%, group_targeting, else personal_targeting
- 3 = if grouped and internal damage < 75%, group_targeting, else personal_targeting
- 4 = group_targeting only
- personal_targeting
- 1 = target strongest opponent
- 2 = target weakest opponent
- 3 = target nearest opponent
- group_targeting
- 1 = target same shield of same opponent targeted by nearest allied ship
- 2 = target weakest opponent firing at weakest group member
- 3 = target strongest opponent firing at weakest group member
- 4 = target nearest opponent firing at weakest group member
- targeting_focus_updates
- 1 = review targeting every ten seconds
- 2 = review targeting every thirty seconds
- 3 = review targeting every minute
- 4 = review targeting if internal damage > 25%
- 5 = never change active target
- self_preservation
- 1 = fight until internal damage > 25%, then take defensive_action
- 2 = fight until internal damage > 75%, then take defensive_action
- 3 = fight until victory or destruction
- defensive_action
- 1 = run
- 2 = surrender
- crew_morale (not really a gene... exactly)
- 1 = 25% bonus to effectiveness
- 2 = 50% bonus to effectiveness
- 3 = 75% bonus to effectiveness
- 4 = 100% bonus to effectiveness