SiN Episodes - The Dynamic Difficulty System

From Valve Developer Community
Revision as of 15:21, 31 May 2019 by Soer4769 (talk | contribs) (changed the page title)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
SiN Episodes Level Creation

What it does

Se1 dynamic difficulty.jpg

The Dynamic Difficulty system is one of the most interesting and complex aspects of the first SiN Episodes installment, Emergence. It constantly analyzes the player's performance and their actions, and adapts itself to their particular playing style. The system was designed to make sure that any player, no matter how good or bad they are at playing first-person shooters, will have a challenge custom built for them.

This challenge updates continuously, so as new players get better the game will start to throw more challenges at them. If a seasoned vet comes back and plays the game a second time and starts blowing through the enemies, they'll be in for some real surprises the second go around. The goal is that no one will find the game a walk in the park, but likewise no one should ever get stuck, unable to finish.

One of the strengths of the system is being able to make decisions fairly specific to player actions. Instead of just adjusting health, damage, or ammo amounts (like many games do), the dynamic adjustments can focus on whether you're accurate with your weapons, how you shoot, if you are cautious and avoid death and damage, or whether you take as much as you dish out. Ritual is trying to build a system that will prevent players from finding loopholes that encourage abuse.

In Ritual's own playtests, a player went through a section of the game and noticed the enemies were wearing helmets and fighting with secondary pistol fire. After dying, they reloaded from their last saved game and noticed that this time the number of enemies had changed, they were now using shotguns, and weren't wearing as many helmets. In both cases the challenge level was about the same, but the experience was quite a bit different. The system is truly dynamic, though many of the changes are subtle enough that only multiple play-throughs will show how things have changed.

How it works

The Dynamic Difficulty system basically works in cycles. The game watches how you are doing in combat, keeps statistics on everything you do, and attempts to change the game to reflect your play style. There are multiple advisors watching specific play parameters, and making recommendations on how to change the game. Each advisor can recommend a variety of changes to make the game easier or harder if need be. The decision maker picks a few of these and then monitors to see if the changes have an effect.

For example, if the system noticed that you were constantly low and health, and it decided to make the enemies drop more health packs, it will see if your average health improved. If it did, it will give itself a little bonus for the successful decision, increasing the chance of this decision being made again under similar circumstances. Conversely, if your health hasn't improved, it will try something else in order to help you, since the previous suggestion obviously didn't work out. Because the dynamic difficulty is constantly monitoring itself, if decisions aren't keeping the challenge level where we want it, the game will attempt to make different decisions. Some of the different aspects from which the difficulty system can be used and behaves:

Human NPC's

Mutant NPC's

  • Mutant NPC's cannot spawn up or down on their own. However, if you use the info_challenge entity, you can force that behavior.

NPC Spawns

  • By default, spawns linked to an npc_template_maker are going to use the dynamic difficulty system to modify the number of enemies created.
  • To disable that behavior, set the Don't use dynamic difficulty flag on the npc_template_maker. You should also set Don't Spawn While Visible.

Ammo Crates

  • The crates found throughout SiN Episodes are also hooked up to the Personal Challenge System. To use these crates in your levels, create item_item_crate entities in the appropriate locations.
  • By default, the crate that you create will spawn items of type item_dynamic_resupply, which is where the Personal Challenge System looks at what you need the most, and put that in the box when you break it. You can force a specific item to be in the crate by changing the Item Type keyvalue.


  • The info_challenge entity allows you to change the way the game plays based off of the initial challenge level selected by the player, the current challenge level, and the amount that the challenge has changed since the game started.
  • For single player, there are many possible ways that you can use the info_challenge entity in your favor. You can add or remove environmental obstacles, lengthen or shorten major encounters, and more.


As with everything in Ritual's episodic content, the team will continue to build and improve on this system. The goal is to challenge every level of gamer, and to ensure everyone can actually complete the game.With short development cycles, the team cannot afford to do months of playtesting and balancing, so they opted to create a more powerful dynamic system that should provide every gamer with a truly unique experience.