What will NPCs look like eventually?

I kinda want an X-COM style combat mode for that. Recently found out there’s an ASCII version of it anyway.

can you give details on ‘xcom’ style combat mode? if you have a detailed suggestion, make a thread in suggestions. its easier for the guys to find. give some details. do you mean xcom the paid game? I think there is an xcom roguelike.

I think that he wants an X-COM variant of handling his teammates. It’s a praised system I don’t know much of - but for starters, well, there could be just henchmen suited for a task or two with some sort of prize system, such as food, shelter and eventually equipment and ammo.

Oh, I see, you want to assemble a team of NPCs and do tactical combat like X-com (or more pertinently, Fallout Tactics <3 ).
Basically turn NPCs into multiple-PCs. That would be erm… REALLY hard, like harder than z-levels and the other stuff we’re doing. Basically most of the code has a hard assumption that there is one and only one PC, and the world turns around that PC. We’d have to rewrite pretty much all the rendering and map-drawing code to make that happen, and no telling how much else.
Once we have NPCs that work in general, we do want to add stuff to let you command a team, but that would consist of giving orders to the NPCs to coordinate their actions.

[quote=“Kevin Granade, post:4, topic:3066”]Oh, I see, you want to assemble a team of NPCs and do tactical combat like X-com (or more pertinently, Fallout Tactics <3 ).
Basically turn NPCs into multiple-PCs. That would be erm… REALLY hard, like harder than z-levels and the other stuff we’re doing. Basically most of the code has a hard assumption that there is one and only one PC, and the world turns around that PC. We’d have to rewrite pretty much all the rendering and map-drawing code to make that happen, and no telling how much else.
Once we have NPCs that work in general, we do want to add stuff to let you command a team, but that would consist of giving orders to the NPCs to coordinate their actions.[/quote]
It was just an idea, really, if they could keep the pace and not do stupid things, I’d be fine with them.

We just need to teach NPCs to use shrubs and wrecked cars to hit zombies and run away, I think if they were smart enough to do that and kite, that would basically be good enough.

I don’t think kiting is a tactic irl.

@kevin: put team combat on the list for the next kickstarter… sounds like we need to pay someone for that. its a good idea.

if you want ideas for roguelike squads check out elona. you can get up to 15 npc henchmen. they are not that smart, but you can make them ‘aggressive’, conservative, etc… it might be a good starter to get ideas.

I think there is a roguelike called X@com or something that is based on xcom. it may have some ideas for squad combat.

The big problem with X-COM style combat is that the amount of time IRL you have to spend directing your characters scales up linearly with your allies. This is fine if that is a central element to the game (like in X-COM). It can be a major gameplay pacing problem if not. In X-COM, battles are very “episodic” and tactical, so it works. Fights in Cataclysm are continuous and sometimes unexpected, so it would be non-stop micromanagement. Not to mention that “turns” in cataclysm are much more granular than turns in X-COM. If anyone has played the old flash game Caravaneer, toward the end of the game you have to manually control like 20 or 30 characters. The micromanagement (perhaps enjoyed by some) makes each turn take forever. Not to mention that having god-like control over multiple characters isn’t very realistic.

As an alternative, an approach for making allies better that I’ve seen implemented really well is the idea of “automatas,” which are a simple set of rules that you want your team member to follow. The Player doesn’t control allies directly. Instead, each turn the NPC goes down its list of directions in order to see if the given instruction should be followed. It’s essentially just a series of if statements, but it can provide a pretty deep strategic component without slowing down ongoing gameplay. It could be something like:

[ol][li]if my health is below 30% and a zombie is next to me, flee[/li]
[li]if my health is below 30%, try to use first aid or bandages[/li]
[li]if I have no ammo, reload[/li]
[li]shoot the enemy with the most health if I see an enemy[/li]
[li]bash the nearest enemy if I see an enemy[/li][/ol]

In this example, fleeing at low health is the highest priority since it is first. Line 2 just says to heal up if at low health (and there is not a zombie next to you), and ideally the game engine would ensure that we don’t waste a turn trying to do something we can’t do. So if our NPC was out of healing items, line 2 would always be ignored in favor of trying one of the next actions. What’s cool is that you can setup your allies to all have different roles this way. AND, once they’re setup, you don’t have to micromanage them. It’s also more realistic in the sense that survivors would communicate strategy guidelines about how to work together without actually controlling each other. The game engine could also “eat its own dogfood” and use this internally to express default NPC behavior. Also, if a player didn’t like this strategic component of the game, they could probably get by just letting NPCs use their default set of automatas and keep gameplay the same (or better) as it is now.

This was implemented very well in a classic RPG Flash game I stumbled upon by Edgebee studios (link: http://www.edgebee.com/games?id=1). The interface there is nice, and I think it is possible to expose this kind of feature in a way that is intuitive to non-programmers and doesn’t just look like if statements (if statements are already intuitive to programmers, so that’s not an issue). I think Edgebee got the idea from one of the final fantasy games. I haven’t seen it implemented too many other places. I think it’s a brilliant way to add depth and strategy to an RPG without making things all about tactical micromanagement.

I would love to see something like that in the cards for NPCs.

man i loved that game… i still google caravaneer 2 every now and again to see what theyve done but looks like its moot

I google for it too. They at least had a kickstarter that got funded earlier this year. It’s a few months past the anticipated release date now, but hopefully it didn’t die.

[quote=“phaethon, post:10, topic:3066”]The big problem with X-COM style combat is that the amount of time IRL you have to spend directing your characters scales up linearly with your allies. This is fine if that is a central element to the game (like in X-COM). It can be a major gameplay pacing problem if not. In X-COM, battles are very “episodic” and tactical, so it works. Fights in Cataclysm are continuous and sometimes unexpected, so it would be non-stop micromanagement. Not to mention that “turns” in cataclysm are much more granular than turns in X-COM. If anyone has played the old flash game Caravaneer, toward the end of the game you have to manually control like 20 or 30 characters. The micromanagement (perhaps enjoyed by some) makes each turn take forever. Not to mention that having god-like control over multiple characters isn’t very realistic.

As an alternative, an approach for making allies better that I’ve seen implemented really well is the idea of “automatas,” which are a simple set of rules that you want your team member to follow. The Player doesn’t control allies directly. Instead, each turn the NPC goes down its list of directions in order to see if the given instruction should be followed. It’s essentially just a series of if statements, but it can provide a pretty deep strategic component without slowing down ongoing gameplay. It could be something like:

[ol][li]if my health is below 30% and a zombie is next to me, flee[/li]
[li]if my health is below 30%, try to use first aid or bandages[/li]
[li]if I have no ammo, reload[/li]
[li]shoot the enemy with the most health if I see an enemy[/li]
[li]bash the nearest enemy if I see an enemy[/li][/ol]

In this example, fleeing at low health is the highest priority since it is first. Line 2 just says to heal up if at low health (and there is not a zombie next to you), and ideally the game engine would ensure that we don’t waste a turn trying to do something we can’t do. So if our NPC was out of healing items, line 2 would always be ignored in favor of trying one of the next actions. What’s cool is that you can setup your allies to all have different roles this way. AND, once they’re setup, you don’t have to micromanage them. It’s also more realistic in the sense that survivors would communicate strategy guidelines about how to work together without actually controlling each other. The game engine could also “eat its own dogfood” and use this internally to express default NPC behavior. Also, if a player didn’t like this strategic component of the game, they could probably get by just letting NPCs use their default set of automatas and keep gameplay the same (or better) as it is now.

This was implemented very well in a classic RPG Flash game I stumbled upon by Edgebee studios (link: http://www.edgebee.com/games?id=1). The interface there is nice, and I think it is possible to expose this kind of feature in a way that is intuitive to non-programmers and doesn’t just look like if statements (if statements are already intuitive to programmers, so that’s not an issue). I think Edgebee got the idea from one of the final fantasy games. I haven’t seen it implemented too many other places. I think it’s a brilliant way to add depth and strategy to an RPG without making things all about tactical micromanagement.

I would love to see something like that in the cards for NPCs.[/quote]

Something like FF12’s gambit system comes to mind with this.
Just make sure the rules use 3 fields instead of 2:
status -> modifier -> action
health -> >50% -> use healing item

I liked FF12’s Gambit system and would support something similar to it for Cataclysm’s AI. I think that a Behavior Tree would work pretty well if the goal weights are worked on a bit. Staying alive should take priority, but would be modified by the entity’s morale or personal goals. IE: A suicidally depressed or Glory in Death focused NPC might charge headlong into a horde and drop a mininuke when they get hopelessly surrounded.

I’d really like to see a more tactical AI system put in place for NPCs. Grouping together, using their weapons effectively based on their current knowledge levels, and fleeing when the situation requires it, would be pretty awesome to see. Damn… now I wanna work on this >.< If NPCs haven’t gotten a good AI solution in place when I finally finish the KS stuff and other stuff I have planned for after the KS I’ll definitely be tearing into the AI systems.

[quote=“Kevin Granade, post:4, topic:3066”]Oh, I see, you want to assemble a team of NPCs and do tactical combat like X-com (or more pertinently, Fallout Tactics <3 ).
Basically turn NPCs into multiple-PCs. That would be erm… REALLY hard, like harder than z-levels and the other stuff we’re doing. Basically most of the code has a hard assumption that there is one and only one PC, and the world turns around that PC. We’d have to rewrite pretty much all the rendering and map-drawing code to make that happen, and no telling how much else.
Once we have NPCs that work in general, we do want to add stuff to let you command a team, but that would consist of giving orders to the NPCs to coordinate their actions.[/quote]
Maybe it could be possible to command NPC companions movement via the press of a button without having to turn them into PCs. Controlling their actions yourself will increase their survival in combat considerably. :stuck_out_tongue:

I like the idea of being able to give commands, but not having total control. Maybe something like NPCs have some sort of internal decision engine, and they have some sort of comparison where they check what they would have done against what you told them to do, and use certain factors to determine which one to do. Otherwise it just becomes NPC->SetBehaviorTemplate(“Mindless Killing Machine”). NPCs don’t need the player to tell them to bandage up when they’re hurt, they should know what they need to do. Each NPC would have a threshold for how hurt/hungry/thirsty/low on ammo they are before they heal/eat/drink/reload, so an accomplished nurse with poor aim might heal wounds right away and keep her gun fully loaded all the time, while the fat sniper might eat as soon as he is the slightest bit hungry, but doesn’t feel the need to reload until a group is nearby. A trust system and set of personality traits would help to flesh out the decision system when it comes to some things, like the nurse might not heal right away if you advise her differently and she trusts your judgement.

So say you just meet an NPC, and he agrees to travel with you. He just met you so he doesn’t really trust you yet. You give him an order to attack a zombie with you, and since it’s just one zombie and there’s two of you, he decides that’s a good idea and attacks since he agrees with you. Then suddenly a small group of 6 zombies approaches, and you order him to attack one. He thinks you are too outnumbered and refuses the order and attempts to flee. You clear out the zombies and find the NPC again. He is impressed at your ability to handle the group so easily, and puts more trust in you, and will now weight your orders even more when deciding what to do. Then you command him to attack a couple zombies in melee range, while you hang back with a gun. He gets wounded in the fight, and you are unhurt, and now he starts to question your judgement, lowering his trust.

A wide range of personality traits can come into play like loyalty/treachery, bravery/cowardice, etc. A treacherous NPC might never gain trust, and will find some way to stab you in the back as soon as you’re in a compromised position. There would be clues to that, like never following your orders, constantly arguing with you, and so on, so that you’re not just blasted in the face with a shotgun out of nowhere one day. Perhaps once factions are implemented, if you achieve a high rank in a faction, then you can have finer control over the behavior of your faction’s NPCs. I still think there should still always be the chance that they freak out and go AWOL if they think all hope is lost.

I like the idea of an NPC that doesn’t like to follow your orders, even if he agrees with them. Commanding him would end up as a kind of reverse psychology thing.

Another use of the trust system would be in which quests the NPCs offer. At low trust they could give basically a “fetch” quest, go out and bring me a ___. When you come back with it, their trust for you goes up. Then, after your trust goes up enough, the nature of the quests change, and you start getting quests like “Hey, I found this military ID card a while back. Help me find where it goes, and I’ll share what we get with you.”

What will the NPC’s look like? I would imagine they would look something like this:
[size=12pt]@[/size]

[size=1pt]Sorry couldn’t resist[/size]

[quote=“Caconym, post:19, topic:3066”][size=12pt]@[/size]
[size=1pt]Sorry couldn’t resist[/size][/quote]

Oh GOD, you’ve got a two-megabyte GIF for an avatar…