Dev Blog - Bots in 4.2

 

Heroes!

We hope you are all well in this new year! 

We are cracking on with work on Vermintide 2, which includes the upcoming Chaos Wastes and, of course, continuing filling those hourglasses on the character select screen with new careers for the heroes! But this dev blog is not about either of those things. We want to take a few paragraphs to talk about bots - specifically upcoming improvements to bot behaviors coming to PC in patch 4.2. 

Gameplay Programmer Ričardas will talk a bit about the improvements that he and the team have been working on in relation to some of the feedback you have given. 

decoration_2.png

New ranged combat behavior and tweaks:

One of the tools bots did not utilize very well that players do is ranged combat. Whilst ranged combat is not the focus of the Vermintide 2, it is still a very useful tool that helps to ensure the party survives against the bad guys - specials in particular.

Sure they know how to pull the trigger but ranged weapons, unlike their melee counterparts, are a lot more specialized and have a limited ammo supply. Wasting shots on poorly chosen targets is extra painful. So in Patch 4.2, we have added some ‘target categorizations’, which should make bots better at dealing with specials if they are equipped with snipe type weapons (eg. handguns, crossbows), select more fitting attack type if they have such available (eg. fireball staff, bolt staff). So for example they shouldn’t fire handguns at infantry, and won't try to kill special units with weapons like the Drakegun. 

BOT POSITIONING:

Good positioning is a hard thing to achieve since you need to take in a lot of information and make some predictions, too. For players we have a bunch of visual cues that help them identify danger like toxic clouds or streams of bullets, however, bots don't see the way we do. So the way we try to keep our bots out of trouble is split into two parts. 

Navigation Mesh Cost Weights are used to help bots navigate around fixed static dangers, such as globe gas or lamp oil fires. 

Emergency Threat Areas are employed by bots to move them out of more dynamic threats. They tell bots that something bad is about to happen in an area and should get out as fast as they can, such as a Chaos Warriors hulking great axe bearing down towards their face. 

We have made some changes here, as well as added and updated a bunch of those areas to help our fellow bots avoid and react more quickly to imminent threats. Also, we have tweaked the emergency threat response behavior to be less "panicky" which resulted in them sometimes slipping off cliffs.

BOT MELEE COMBAT TWEAKS:

Staying together is key to survival in Vermintide, making sure that bots stay close when a horde (or a patrol that someone just pulled) is approaching makes them more reliable at covering your flanks and saving you from a special. With that in mind, the higher the apparent threat on the battlefield, the more likely bots are to stand at your side, whilst favoring faster, sweepier attacks against infantry class enemies. 

As a bonus, it also reduces the amount of times bots charging forward into hordes and incidentally running into your crosshair, but that will still happen especially when there are less enemies around.

BOTS BEING TOO COMPETITIVE ON RESOURCES:

Bots are supposed to fill more of a support role and make sure the player gets to be the star of the show, so when a bot claims a resource, whether that’s ammo or a potion, it indirectly steals fun away from the player.

For a while now, bots have been quite hungry for resources. We’ve made some tweaks to that in 4.2, such as restricting them from picking up ammo bags if the player is missing any ammunition, and made some adjustments to their dependence and willingness to picking up and chugging potions. 

decoration_1.png

Patch 4.2 will be coming in the next few weeks, and with it are also some general bug fixes for bot behaviours, and with it we will compile patch notes that break down in a bit more detail the commentary above. 



 
Dev Blog, Game UpdateTuva J