Return to “Suggestions”

Post

NPC Ship Combat Behavior Options

#1
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! :)
  • 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
Post

Re: NPC Ship Combat Behavior Options

#2
There's focus here on the available options but the crux is the implementation, even with 20x the options here if it's implemented simply the result will be a common homogeneous build. Of course it would be interesting to see what that behavioral conglomerate would end up looking like but I think "what shapes the choice of what genes are fittest" is a more important question than "what genes should we have".
woops, my bad, everything & anything actually means specific and conformed
Post

Re: NPC Ship Combat Behavior Options

#3
Well, but both those questions are interesting, I'd say -- just to different audiences.

To a designer, the fun bit is working out the hidden rules of the universe. As Ed Post wrote in the classic "Real Programmers Don't Use Pascal":
There are several Real Programmers building video games at Atari, for example. (But not playing them-- a Real Programmer knows how to beat the machine every time: no challenge in that.)
;)

Most gamers won't care about the behind-the-kimono stuff, though. (Other than the ones who only want it for the edge it might give them in "beating" the game.) They're interested in the externals, in how playing the game makes them feel.

So the question I'm asking here is not so much about using GA to breed new ships (although I'd be interested in a discussion like that on the design side), but rather what kinds of NPC ship behaviors would be fun to encounter in combat. That's more of a player-directed question.

Thanks for giving me the chance to clarify what I was trying to get at.
Post

Re: NPC Ship Combat Behavior Options

#5
Flatfingers wrote:Well, but both those questions are interesting, I'd say -- just to different audiences.

To a designer, the fun bit is working out the hidden rules of the universe. As Ed Post wrote in the classic "Real Programmers Don't Use Pascal":
There are several Real Programmers building video games at Atari, for example. (But not playing them-- a Real Programmer knows how to beat the machine every time: no challenge in that.)
;)

Most gamers won't care about the behind-the-kimono stuff, though. (Other than the ones who only want it for the edge it might give them in "beating" the game.) They're interested in the externals, in how playing the game makes them feel.

So the question I'm asking here is not so much about using GA to breed new ships (although I'd be interested in a discussion like that on the design side), but rather what kinds of NPC ship behaviors would be fun to encounter in combat. That's more of a player-directed question.

Thanks for giving me the chance to clarify what I was trying to get at.
...till you found a fitness function for fun.

Online Now

Users browsing this forum: No registered users and 9 guests

cron