Mr. Balthazar! I have a few questions for you about Tyranid and other NPC "AI" algorithms and procedural content. How difficult is it to program in the Tyranid AI and how varied will the Tyranid AI be compared to say a cultist or any other NPCs you will add in for the PVE side of things (Actual NPC class, race or faction is irrelevant)? I know it can't be easy but from another thread we got on the subject of difficulty for you guys to program in additional NPC races due to AI for something like the next expansion. Oh and not sure if it is too early to ask but your procedural tunnel system, if I remember correctly there are like dynamic spawn nodes for Tyranids to mix it up in the tunnels. Would it even be possible to use this existing tech to add in other "races" such as the players factions (Eldar, Ork, Chaos, Space Marine NPC enemies in the tunnels based on the faction entering the instance? All hypothetical to see the limitations on the procedural tech and AI not necessarily digging for nuggets on NPCs that will be in game...you can definitely use non 40k related examples in place of the race names lol. I am just curious now of the capability of the tech and your teams growing mastery over it.
In general, AI is AI - we are completely separating the behavior of the AI from the model and it's animations. There is a so called state machine behind it and the state machine is controlled by scripts that can be adjusted by designers. That way we can be flexible and give each npc a certain behavior, no matter who it is. Now for Nids ofc we have some scripts that give the general direction, but there is also a lot of "cooperation" work they do, Nids are hive controlled, that means there is some sort of "boss" that controlls other Nids behavior - which for non Nids is not needed. No, adding more races is more of a art/animation issue than a programming issue. Ofc there will be some race specifc stuff, but it's not the biggest part of it. Generally speaking - yes. But atm only Nids are confirmed as NPC race which can enter combat with players. (afaik) the procedural tech has nothing to do with the AI - the tricky part is going to be the AI to adapt to the players skills, so that they can be a challenge, while not making it impossible to defeat them! None wants to loose all the time, and also without loosing at all wins are not appreciated well I have some very strong programmers on my team, some with AI experience and some with general experience for characters and behavior - overall I don't see any problem there! the challenges are within the backend tech to support the AI and not the other way around
Interesting stuff. What would interest me is how you handle different weapons and modes of movement. Don't you have to make specific scripts for different NPC classes? For example, if you wanted to make an assault space marine NPC/bot, wouldn't that require substantial extra scripting for jetpacking/melee fighting?
yes that's where the scripting is coming in. though the scripting is more high level - imagine a "go from A to B", and then there is rules like "if enemy spotted: engage". this is all a lot simplified, there is book and tons of research papers written for this topic. All I am trying to say, yes there are "class" scripts, there are "equipment" scripts and there are "race" scripts. A good AI is aware of all that, even knows which class how to counter.
cool info few quick questions. do you still plane or our considering having NPC guards at bases? What about automatic defense like turrets and such
we are not sure yet if it will be NPCs, but automatic defense turrets of some sort are planned. Maybe they end up being stationary NPCs who don't walk/run much
I will wonder how exactly does the AI behave, and how well it resembles players. Something I will definitely try sometime is to freeze for a moment and then patrol in an orderly fashion to try mimic a base-defender bot and fool other players. "Ah, that is just an NPC. C'mon, lets deal with the players first!" "Not so fast!" *surprise attack* On the other hand, if I fight a bot and don't figure that it was one until it dies, I think I will get a little upset.