In IGS, we are fully aware of how essential AI companions (bots) are to the overall game experience.
Some squad games address this issue simply placing the responsibility either entirely on the player or on cooperation with multiple human players in co-op mode. Consequently, bots are, on the one hand, immortal (to prevent their death from frustrating players), but on the other hand, their ability to assist is very limited.
In Crime Boss, we have multiplayer co-op heists, but we let players play them offline with bots. You can choose what bots and how many of them.
Experienced players can play our roguelite single-player campaign. This mode is a bit complex as you need to manage the whole team, including their equipment and survival. This is an essential part of the roguelite mode economic loop. Taking bots or not is affecting the difficulty—a full team of capable heisters/bots can defend themselves well, even in situations where a lone player would struggle to survive. This serves as a clear motivation to save limited funds for hiring and equipping them.
By design, the loss of a heister during a mission can have a significant impact on the entire campaign. This reinforces the roguelite aspect of the game and increases gameplay tension (in a good way). For this reason, we chose a more challenging approach—making bots vulnerable and mortal while simultaneously enhancing their ability to assist, creating an alternative to human companions.
As a result, we occasionally receive negative reviews from players regarding AI quality. Yes, we hear you. And you are right. We understand that losing them due to AI imperfections can be frustrating for players. We could improve the bots by simply dumbing them down and making them invulnerable. “Those who do nothing make no mistakes.” But this wouldn’t be helpful for the game, given the above context. So instead, we take this feedback seriously and are tirelessly working on improving the artificial intelligence of both friendly and enemy characters.
AI of Bots
Creating “smart” companions is a challenging task for several reasons, often involving conflicting requirements. Let’s take a glimpse under the hood, to understand how the AI of the AI bots and enemies is done in Crime Boss.
Pathfinding
Spatial awareness, which comes naturally to humans, is a significant challenge for AI programmers. The fundamental requirement is a well-defined space that bots can navigate, avoid dangerous areas, and perform special actions (such as climbing or unlocking) to progress. This involves processing vast amounts of data to find the optimal path, which is computationally intensive, especially as the target distance increases. Now imagine that not only are multiple bots performing these calculations, but also numerous enemies, all in real-time. Additionally, paths may need recalculating due to in-game events (e.g., an exploding car blocking the way).
Enemy Awareness and Cover
To protect themselves effectively, bots must locate cover that shields them from all known enemies. With potentially dozens of cover options, the AI must evaluate and select the best one based on specific criteria. However, this is complicated by the dynamic nature of enemies—positions constantly change as enemies die or new one’s spawn from various directions.
“Task Competition”
Bots must balance multiple tasks: staying near the player, finding effective cover (which may be far away), collecting loot, engaging in combat, reviving teammates, and more. AI code must carefully evaluate and prioritize these tasks to ensure the overall behavior feels intelligent and helpful.
Bugs
Complex missions with intricate graphics also present pathfinding and cover-definition challenges. Issues may arise, such as bots failing to find paths or missing cover where it should exist. Such bugs can originate in the mission itself, the game code, or even the game engine. These errors are often dynamic and difficult to reproduce, making them tricky to resolve. Additionally, it can be challenging to distinguish whether an issue lies in a subsystem bug or overall, AI logic shortcomings.
Performance Impact
AI tasks “compete” with other game processes for CPU resources, impacting fps and overall game smoothness. Achieving intelligent AI behavior requires significant computational power, yet it’s crucial to minimize performance impact. Balancing these demands is inherently contradictory, underscoring the complexity of the task.
Update 14
In this update, we focused specifically on improving bot behavior, particularly their ability to survive in dangerous firefights.
Bot Survival
To enhance bot survivability, we introduced new behaviors and integrated them into the existing AI model:
• If a bot has sufficient health, it behaves as before—engaging enemies, looting, or transporting loot to designated areas.
• If a bot’s health drops below a certain threshold, it retreats to safe cover while continuing to fight during the retreat. Often, they either defeat the enemy or regenerate health during the move, then return to their original behavior.
• For critical cases, we defined “critical health” at approximately 30% of total health. For characters with low base health, this threshold is a fixed value to ensure timely activation of retreat behavior. At critical health, survival becomes the absolute priority. Bots sprint to cover and kneel to reduce their chances of being hit. They only return to normal behavior once fully regenerated. In our original design, bots prioritized combat—inflicting damage over self-preservation. Strict proximity limits to the player and other factors also hindered their ability to find effective cover when injured.
In the new update, we grant bots greater movement freedom and prioritize finding high-quality cover. Once fully healed, bots attempt to return to the player if they are too far away. If a cover is compromised (i.e., the bot takes additional damage), it is invalidated, and the bot immediately seeks new cover.
Cover Scoring
When searching for cover, we implemented a scoring system where each cover option is evaluated, and the highest-scoring cover is chosen. Scoring criteria include:
• The number of enemies blocking the path to the cover (ideally zero).
• How well the cover protects against known enemies’ fire.
• The distance from the nearest enemy (the greater, the better).
• The distance the bot must travel to reach the cover (shorter is better).
Each parameter has a specific weight, carefully balanced for optimal results. To ensure the best outcomes, bots will now know the positions of all living enemies purely for cover selection. Enemies are dynamic—new one’s spawn immediately as others die—so this prevents bots from being sent to unsafe locations, which players would find frustrating. In all other systems (e.g., target selection), bots rely only on information gathered during gameplay.
Conclusion
Overall, the game after Update 14 should have much smarter and efficient bots. Is the work on AI perfect and finished? No. We will keep testing and writing down problems. We will also listen to your feedback. Based on this, we will continue to improve specific problems and behaviors. We are also planning to investigate how bots behave in stealth. Right now, it’s safer to let them wait and act as a backup if alarm is triggered. But we would like to improve the follow mode in stealth, so bots can be more useful. We will see how it goes and keep you informed about future changes and fixes.
Thank you for reading and we look forward to your input. We are sure that this update will make for some engaging and dynamic combat experiences. Good luck and have fun!
Tomáš Stepanek
Principal Gameplay Designer