Welcome to the Alien Swarm Director Mod! ASDM is a single player Alien Swarm mod focusing on increasing replayability by creating a dynamic experience every time you play. The ASDM complements the default Alien Swarm AI and Director in two ways. First, ASDM enhances the TileGen map generator to automatically generate the map layout for missions 2-5 every time you play. The layout is impacted by player performance, so the better you perform on mission 1, the longer and more challenging mission 2 will be. ASDM modifies the in-mission experience as well. Based on your performance some doors may or may not open and the number and type of enemies you will fight will differ. Enjoy the Alien Swarm Director Mod!! Full Source: http: bit.ly/13h5Ga5

Post tutorial Report RSS Tweaking the ASDM Performance Algorithm

At the core of the Alien Swarm Director Mod is the performance algorithm. This measures player's performance in real-time to dynamically adjust game play and calculate a ranking for level generation. The tutorial below shows how you can tweak the algorithm without the need for modifying any game code. All you need is the developer console!

Posted by on - Basic Client Side Coding

The Alien Swam Director Mod makes heavy use of the Source developer console for configuring the performance algorithm. For a quick overview on the Source dev console and how to enable it, see the following article: Developer.valvesoftware.com.

Once you have the dev console enabled, the first step is to enable the in game performance algorithm debug screen by typing in the following command 'mod_player_performance_debug 1'. You should now see several lines of information in the top right. Your screen should look similar to this:
Moddb.com
The algorithm works by starting with a base line score. Then, a number of 'modifiers' asses different aspects of the player's performance and the end result is a 'total score' in the ballpark of between 0-100. The 'total score' is then converted into a 'weighted score' between 1 - 3. The 'weighted score' is what used to drive the dynamic aspects of play.

Here are a list of the 'modifiers' used in ASDM as of version 1.0:

  • Health - Penalty for current lost health.
  • Accuracy - Bonus if player accuracy is above a certain threshold. Penalty if player accuracy is below a different threshold.
  • DirectorStress - Peanlty if Director 'stress' is above a certain threshold. Penalty degrades when stress declines.
  • PlayTime - Bonus/Penlaty if the player completes a level under or over par.
  • AlienLifeTime - Penalty if the player allows aliens to live for too long (ie by running away from them)
  • FastReload - Bonus if player successfully performs a fast reload.
  • DodgeRanger - Bonus if player successfully dodges a Ranger's attack.
  • MeleeKills - Bonus if player uses a melee attack to kill an enemy.
  • BoomerKillEarly - Bonus if player kills a boomer before it swells and releases its attack.
  • RestartPenalty - Penalty if player has to restart a level. Degrades over time.
  • NewLevelModifier - Penalty / Bonus when player progresses to a new level. Bonus if player had a performance rating of 3 at the end of the last level. Penalty if the the player had a performance rating of 1. Degrades over time.
  • EnemyKillBonus - Bonus for each enemy killed.

When each 'modifier' kicks in and how much impact it has on the overall performance can be largely controlled via console commands. For example, the bonus a player receives for a melee kill can be set by using the mod_player_performance_meleekill_bonus command. For example setting it to 2.5 will award the player a bonus of 2.5 points for each melee kill.

Below is the full list of console variables that can be used to tweak the ASDM performance algorithm (sorry for the formatting, this wisiwig editor is a little limited):

"mod_player_performance_threshold_high" - "80" - "Player performance neccessary to achieve a performance ranking of '3' (high)."

"mod_player_performance_threshold_medium" - "60" - "Player performance neccessary to achieve a performance ranking of '2' (medium)."

"mod_player_performance_starting_value" - "79" - "The player performance at the beginning of a level."

"mod_player_performance_health_critical_threshold" - "40" - "This threshold indicates if health_normal_penalty or health_critical_penalty is used to calculate health penalty. Note: This is health lost, not health remaning"

"mod_player_performance_health_normal_penalty" - "0.4" - "The defualt performance penalty for lost health. This is multipled by each HP lost."

"mod_player_performance_health_critical_penalty" - "0.6" - "The critical performance penalty for lost health. This is multipled by each HP lost."

"mod_player_performance_accuracy_threshold" - "92" - "The threshold where a players accuracy has a positive or negative impact on performance. Above this threshold and performance gets a boost, below and there is a penalty."

"mod_player_performance_accuracy_floor" - "82" - "The floor for caculating an accuracy penalty. Ie, this is the lowest value that is used to assess a penalty."

"mod_player_performance_accuracy_performance_modifier" - "0.5" - "Multipled against the players weighted accuracy to get the performance modifier. Weighted accuracy is difference between accuracy threshold and actual accuracy."

"mod_player_performance_director_stress_threshold" - "9.5" - "The threshold when stress, as measured by the director, engenders a player performance penalty."

"mod_player_performance_director_stress_critical_threshold" - "17" - "The threshold when stress, as measured by the director, engenders an extra player performance penalty."

"mod_player_performance_director_stress_penalty" - "10" - "The one time penalty assesed when director stress threshold is reached.""mod_player_performance_director_stress_critical_penalty" - "20" - "The one time penalty assesed when critical director stress threshold is reached."

"mod_player_performance_director_stress_cooldown_time" - "20" - "The amount of time it takes for the director stress penalty to degrade.""mod_player_performance_playtime_par" - "270" - "The average amount of time a player is expected to complete a level."

"mod_player_performance_playtime_par_bonus" - "15" - "The boost to performance a player receives for completing a mission under par. For each '60' seconds under par, the player's performance is increased by 1 point."

"mod_player_performance_enemy_life_time_positive_threshold" - "4" - "If the average enemy life expectency is less than this, a bonus is awarded."

"mod_player_performance_enemy_life_time_positive_bonus" - "0.8" - "The bonus to award if enemy life expectency is less than the positive threshold."

"mod_player_performance_enemy_life_time_negative_threshold" - "15" - "If the average enemy life expectency is more than this, a penalty is assesed."

"mod_player_performance_enemy_life_time_negative_penalty" - "0.4" - "The penalty to asses if enemy life expectency is more than the negative threshold."

"mod_player_performance_enemy_life_time_negative_penalty_cap" - "-5" - "The maximum penalty that can be assesed for enemy life time."

"mod_player_performance_fastreload_bonus" - "2" - "The boost to performance a player receives for each fast reload."

"mod_player_performance_fastreload_bonus_cap" - "8" - "The maximum boost to performance a player can receive for fast reloads."

"mod_player_performance_dodgeranger_bonus" - "5" - "The boost to performance a player receives for dodging a ranger projectile."

"mod_player_performance_meleekill_bonus" - "0.7" - "The boost to performance a player receives for each melee kill."

"mod_player_performance_meleekill_bonus_cap" - "5" - "The maxium performance boost a player can receive for melee kills."

"mod_player_performance_boomer_kill_early_bonus" - "5" - "The boost to performance a player receives for killing a boomer before it explodes.""mod_player_performance_restart_penalty" - "35" - "The penalty assessed if the player restarts a level."

"mod_player_performance_restart_penalty_timelimit" - "50" - "The amount of time before the restart penalty is reduced to zero."

"mod_player_performance_new_level_modifier" - "7" - "The amount of the bonus/penalty asssesed on a new level based on players previous perforamnce. This is a bonus if perf was 3, nothing if 2, penalty if 1."

"mod_player_performance_new_level_modifier_timelimit" - "60" - "The amount of time before the new level modifier is reduced to zero.""mod_player_performance_enemy_killed_bonus" - "0.05" - "The bonus awarded to a player for each enemy kill."

Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: