Jump to content

Dynamic Henchmen combat chatter


Fira

Recommended Posts

Hey, I'd like to share some thoughts and discuss - in the odd chance anyone cares about that.

 

Something I heard of a couple times a while back (and you might have too), that always appealed to me, was this story of someone that would have henchmen talk back-n-forth in scripted fashion over pretty long conversation scripts, using self loading binds to progress through. It sounds like a pretty cool way to make henchmen more dynamic and a bit more, uh, present and lively. But I figure it's still ultimately something pre-scripted and you get used to. Is it possible to do better than that ?

 

I previously set out to try and twist this idea onto some kind of dynamic combat feedback. Instead, you use /chatlog to dump combat logs, and an external app picks it up, parses it, aggregate recent data, and write bind files back to be used in-game. This would mean you can get your henchmen to react with snarky comments about combat situations (Ouch! You'll pay for that Paragon Protector Elite!) by periodically pressing the bound key.

 

This proved a bit challenging to put together in full and i still don't have a full prototype for that, but it definitely seems doable. However some tinkering yesterday brought me a different approach for which i managed to do something practical - and this is why I'm writing about it. I'm sure there's many more interesting things that can be done around this and it's a cool subject to bring up.

 

So instead, this one focused on a simpler aspect by using a bind you'd be constantly using anyway as mastermind: combat orders. Rather than just constantly going "By your command." couldn't these stupid robots be a bit more interesting ?

 

Idea was as follow: use a similar system of chain-loading bind files to go through a sequence. Sometimes the file's binds will just perform the order. Sometimes it will add extras. In extreme cases, it might just do something entirely different. Then it loads the next one. To bring a semblance of randomness, you have to generate a very long sequence (thousands) automatically.

 

In order to make the thing more interesting, i figured you could leverage the sequence to give the robots a bit more long-term life. So rather than just choosing from a single random pool of comments and edgy stupidities, you can split them up in, say, "moods", and have them transition from one to the other periodically. This can even be further exploited to introduce silliness such as malfunctioning robots that will do something else entirely.

 

A quick example of what this early proto looks like ingame as you give orders (with an occurrence chance like 30-40% of the time) - back to back without pressing anything else. Lines added to explicit the 'mood' changes:

 

[13:41] [Pet](Mekki)Vayu:  Ready.
[13:41] [Pet](Mekki)Sagi:  Attacking.
[13:41] [Pet](Mekki)Sagi:  Engaging designated target.
[13:41] [Pet](Mekki)Vayu:  Navigation target acquired.
[13:41] [Pet](Mekki)Sagi:  Target location acquired.
[13:41] [Pet](Mekki)Larry:  Holding position.
[13:41] [Pet](Mekki)Vayu:  On the move.
[13:42] [Pet](Mekki)Kirby:  Moving toward target.
[13:42] [Pet](Mekki)Sagi:  Ready.
[13:42] [Pet](Mekki)Kirby:  Terminating.
[13:42] [Pet](Mekki)Henry:  Moving to attack position.
---
[13:42] [Pet](Mekki)Henry:  Engaging target.
[13:42] [Pet](Mekki)Kirby:  Plotting new course.
[13:42] [Pet](Mekki)Henry:  General Navigation failure.
[13:42] [Pet](Mekki)Vayu:  Movement order confirmed.
[13:42] [Pet](Mekki)Marty:  On the move.
[13:42] [Pet](Mekki)Sagi:  Securing perimeter.
[13:42] [Pet](Mekki)Kirby:  Assessing nearby threats.
[13:42] [Pet](Mekki)Kirby:  Movement order overriden by safety systems.
[13:42] [Pet](Mekki)Sagi:  Attack order corrupted.
[13:42] [Pet](Mekki)Vayu:  Plotting new course.
[13:43] [Pet](Mekki)Sagi:  On the move.
[13:43] [Pet](Mekki)Henry:  On the move.
[13:43] [Pet](Mekki)Henry:  Plotting new course.
---
[13:43] [Pet](Mekki)Sagi:  Let em' come, i'm ready !
[13:43] [Pet](Mekki)Vayu:  Moving as ordered !
[13:43] [Pet](Mekki)Henry:  On the move !
[13:43] [Pet](Mekki)Marty:  I got your back.
[13:43] [Pet](Mekki)Marty:  They won't be a problem much longer !
[13:43] [Pet](Mekki)Kirby:  I'm on it !
[13:43] [Pet](Mekki)Kirby:  I'm on it !
[13:43] [Pet](Mekki)Sagi:  Engaging !

 

I'm sure there's many more cool things that can be done around this by playing with bind_load_file_silent. I figure some probably already have their own too. This is awful, awful early code, and not usable much, but still here's a quick look into the script/approach i used to generate bind files should anyone be interested into rolling similar things: https://github.com/fira/coh-moodbots

 

I'd very much love to hear more especially if others have been doing similar things or had such ideas, etc

  • Like 1
Link to comment
Share on other sites

I am fascinated by that. I suppose RPers would use it too.  And obviously different pets would need different responses.  Not sure about Beasts.

AE SFMA Arcs: The Meteors (Arc id 42079) Dark Deeds in Galaxy City: Part One. (Arc id 26756) X | Dark Deeds in Galaxy City: Part Two. (Arc id 26952) | Dark Deeds in Galaxy City: Part Three. (Arc id 27233) Darker Deeds: Part One (Arc id 28374) | Darker Deeds: Part Two. (Arc id 28536) | Darker Deeds: Part Three. (Arc id 29252) | Darkest Before Dawn: Part One (Arc id 29891) |

Darkest Before Dawn: Part Two (Arc id 30210) | Darkest Before Dawn: Part Three (Arc id 30560) |

 Bridge of Forever ( Arc id 36642) | The Cassini Division (Arc id 37104) X | The House of Gaunt Saints (Arc id 37489) X | The Spark of the Blind (Arc id 40403) | Damnatio Memoriae (Arc id 41140) X  The Eve of War (Arc id 41583) | Spirals: Part One. (Arc id 55109) |  Spirals: Part Two. (Arc id 55358) |  Spirals: Part Three. (Arc id 57197)

I Sing of Arms and the Man (Arc id 42617) | Three Sisters (Arc id 43013)

(Pre War Praetorian Loyalist.  Pre War Praetorian Resistance.  Pre ITF Cimerora.  Post ITF Cimerora. X = Dev Choice/Hall of Fame )

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...