Dungeon Siege Wiki
Fellow adventurers!
This guide is a direct upload from the original author and is no longer supported by Microsoft or Gas Powered Games. It is also not supported by the wikia's administration or members. Any errors encountered are a result of the original publication.

Introduction[]

A Mood is a block of settings that control the fog near/far distances, the fog color, the music and how often it repeats, the ambient track and how often it repeats, the weather type and density, the wind speed and direction, the color of sunlight, EAX settings, and even (in some cases) the size of the frustum.

What You Need For This Tutorial[]

  • Dungeon Siege, updated to version 1.09B or later
  • A text editor

What This Tutorial Assumes You Have Already Learned[]

What This Tutorial Will Teach You[]

  • What Moods Are
  • What Each of the Blocks and Fields Are
  • When and How Moods are Used
  • Simple and Complex Examples of Moods
  • EAX Settings
  • Mood Tips

Overview of Moods[]

Mood Usage[]

Triggers are placed in the world that usually have bounding boxes or some other method of player detection. The action in the trigger is "mood_change", with a particular mood name specified. When a player walks into the bounding box, the game looks up all of the settings under that mood name and applies them to that character.

Mood Defaults[]

If you don't specify something in the mood, it will default to zero or off.

Frequency of Mood Changes[]

A new mood is used anytime that we want to change anything at all from a previous mood. For instance, if we want a new piece of music to begin playing when the player reaches a certain point in the game, then we would need to set up a trigger that would activate a mood with that piece of music specified under standard_track = "[music piece]". The next place that the music will change is when the player reaches another trigger that activates a mood with a different piece of music.

Anytime we want to change anything controlled by a mood, we have to have a new mood for it. For example, if we want the player to listen to different music at some point (while everything else stays the same), we would have to make a new mood that had everything defined the same as the previous mood except the music. So some regions have only one or two moods, while other regions have 10 or more. It depends on whether you want to change the different elements of a mood all at the same time or all at once. For example, a player could go from a grassy field in the middle of the day to a dark crypt. In this case, we would probably want to change the fog distance, the fog color, turn the wind and weather off, and change the EAX settings, the music and the ambient sounds. All of this could be done by changing to one new mood. However the player could also walk across a large field over the course of two minutes. Here we could be more subtle, changing to a mood with different wind and ambient track near the beginning, then a mood with different music and weather in the middle, and perhaps changing the fog color at the end. All of these changes would require different moods.

Location of Mood Definitions[]

The default location is My Documents\Dungeon Siege\Bits\World\global\moods\[map name]\[any name].gas

Any .gas file located underneath world\global\moods\ can define moods, but keeping mood files under a directory named after the map should help organization.

Mood Naming Conventions[]

Even though moods can be kept in different files, they are all global. This means that the game loads all moods in all mood files, and a side effect of that behavior is that no two moods can have the same name. Here are the guidelines that we came up with to keep our moods organized.

All mood names are prefixed by the map that they belong to. Even though this can make mood names longer, it will really help keep mood names unique. And since we created moods that are specific to each area on the world map, each mood will also be named after the region in which it first appears. After that, a number is used to differentiate between the different moods within a region, although it could just as easily be a descriptive word or two.

Example:[]

The map name is: Happyville.

The region name is: first_town.

Some possible mood names: Happyville_first_town_1, Happyville_first_town_2, Happyville_first_town_inn, Happyville_first_town_mayor_house.

A Couple of Simple Moods[]

Mood A[]

This mood is used in map_world (The Kingdom of Ehb), in the bear cave at the beginning of the game. It has its own music, no weather, black fog fairly far away from the camera, and a "cave" EAX setting.

[mood_setting*]
{
   mood_name = map_world_bc_r1_1;
   transition_time = 1.0f;
   interior = true;
   
   [fog]
   {
      fog_near_dist = 40.0f;
      fog_far_dist = 50.0f;
      fog_lowdetail_near_dist = 40.0f;
      fog_lowdetail_far_dist = 45.0f;
      fog_color = 0xFF000000;
      fog_density = 0.5f;
   }
   
   [music]
   {
      ambient_track = "";
      standard_repeat_delay = 10.0f;
      standard_track = "s_m_Farmhouse_03";
      room_type = rt_cave;
   }
}

Mood B[]

This mood is used in the forest just before the crypts (also near the beginning of the single-player campaign). The fog is dark green, and there is a little bit of wind. An ambient track with creaking trees is playing to help the player feel like they are in the woods, while creepy "crypt" music is playing.

[mood_setting*]
{
   mood_name = map_world_path2crypts_4;
   transition_time = 2.0f;
   interior = false;
   
   [fog]
   {
      fog_near_dist = 30.0f;
      fog_far_dist = 50.0f;
      fog_lowdetail_near_dist = 30.0f;
      fog_lowdetail_far_dist = 45.0f;
      fog_color = 0xFF1e281e;
      fog_density = 0.5f;
   }
   
   [wind]
   {
      wind_velocity = 0.5f;
      wind_direction = 0.0f;
   }
   
   [music]
   {
      ambient_track = "s_e_ambient_woods_01";
      standard_repeat_delay = 10.0f;
      standard_track = "s_m_Crypts_01";
      room_type = rt_generic;
   }
}

Block and Field Names[]

[mood_setting*] { … }[]

All moods begin with the [mood_setting*] block name and are enclosed in curly braces.

mood_name[]

All moods need a mood_name defined. All mood names must be unique. According to the naming guidelines above, since bc_r1 was our bear cave region in the map named map_world, map_world_bc_r1_1 is the first mood in that region.

transition_time[]

This is how long the mood will take before it completely switches to the new values. During the transition time, the old mood will be smoothly changing to the new mood.

Example: The current mood has white fog, music track #1 and no ambient track playing. The new mood will change to a black fog, music track #2, and ambient track #2. If the transition time is 4 seconds, then this would be the progression of the mood change:

  1. 0 seconds: fog is white (0% black), music track #1 at 100% volume.
  2. 1 second: fog is light gray (25% black), music track #1 at 75% volume, music track #2 and ambient track #2 at 25% volume.
  3. 2 seconds: fog is gray (50% black), music track #1 at 50% volume, music track #2 and ambient track #2 at 50% volume.
  4. 3 seconds: fog is dark gray (75% black), music track #1 at 25% volume, music track #2 and ambient track #2 at 75% volume.
  5. 4 seconds: fog is black (100% black), music track #2 and ambient track #2 at 100% volume. More on transition time under Appendix B: Tips.

interior[]

This is a true/false value that is used by the mood manager to control whether or not the fog will change color with the time of day. If interior = true, then the fog color will not change with the time of day. Further explanation is given under fog_color.

[fog] { ... }[]

This block contains settings that deal with fog color and distance.

fog_near_dist[]

This defines the distance from the camera (in meters) that the fog begins. You can still see past this point, usually up to the fog_far_dist, where the fog is 100% thick.

fog_far_dist[]

This is the distance from the camera (in meters) where the fog gets too thick to see through.

fog_lowdetail_near_dist[]

When users have their detail settings bar all the way to the left, this value will be the new fog_near_dist. If they have the slider at the halfway point, then the fog_near_dist will be the average of the original fog_near_dist and the fog_lowdetail_near_dist.

fog_lowdetail_far_dist[]

Same as above, except dealing with the fog_far_dist.

fog_color[]

The fog value is made up of four components: alpha, red, green, and blue. All of these values go from 0 - 255, but it's in hex. So that means that the scale is 0 - FF. The format for the color setting is 0xAARRGGBB, with AA = alpha, RR = red, GG = green, BB = blue. For those not familiar with hex, valid numbers in ascending order are 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F. Since alpha in fog can be treated quite differently depending on hardware and drivers, we finally ended up just setting all alpha values to maximum, so all of our fog settings have FF for the alpha. Here are some fog colors from different parts of the single player campaign:

  • Gray fog at the first farmhouse: 0xFF646464
  • Dark blue fog in the Arctic Caverns: 0xFF202028
  • Green fog in the first forest: 0xFF323F32
  • Smoky lava-lit fog in the Lava Caverns: 0xFF4F2800
  • Dusty orange fog near Fortress Kroth: 0xFFB49363
  • Sandy fog in the Desert Canyons: 0xFFB09070

The brightness of the fog will change with the time of day. This is behavior defined in the mood manager. At night, the fog color will be 50% of the defined value, morning/evening 75%, day 100%, and mid-day (noon) 125%. Since the fog actually will get brighter than you define it, I recommend having none of your color values be over C0 (C0 and higher will all get translated to FF during the time when the fog is brightest) unless you prevent the fog from changing color by setting interior = true.

fog_density[]

Unfortunately, this is a mostly-useless setting. It is supposed to govern how thick the fog is between the near and far dist, but most video cards don't bother to use this information. This setting is still here for the video card and video driver combinations that support it. The scale is 0 -> 1.0, which is least thick -> most thick. You'll find that most of our moods have set this to 0.5.

[music] { ... }[]

This block contains all ambient track and standard track settings, and the EAX setting.

room_type[]

This is the EAX setting. EAX, when enabled on a soundcard that supports it, will filter many of the sounds in Dungeon Siege through reverb that you specify here. If you want to make it sound like the player is in a cave, set the room type to rt_cave. The default is rt_generic, which is a setting with no reverb. All possible settings can be found in Appendix A, as well as world\global\moods\default_moods.gas.

standard_track[]

This is the standard track, usually used for music. As long as a file is located in sound\Music, it can be specified here. You don't need to provide the extension of the file.

standard_repeat_delay[]

This value is the number of seconds of silence to have after the end of the track. After this silence, the music will play again. For any looping tracks, this should be 0.

standard_intro_delay[]

This value is the number of seconds of silence to have before the track plays for the first time. This can be useful if you are using a piece of music that starts with a sudden emphasis, but you are transitioning into the mood for several seconds. Without an intro delay, the music would begin playing right away, but it would start out very quiet. Putting in a standard intro delay that is equal to (or longer than) the transition time will guarantee that the music will start at full volume.

ambient_track[]

This is simply another track that will play at the same time as the music track. It is a great place to have a small looping track that plays creaking trees, or a gentle wind sound. The game doesn't really care what you put here - you could use this to play a second piece of music at the same time as the standard music track.

ambient_repeat_delay[]

This value is the number of seconds of silence to have after the end of the track. After this silence, the ambient track will play again. For any looping tracks, this should be 0.

ambient_intro_delay[]

This value is the number of seconds of silence to have before the track plays for the first time. If you want to use the ambient track to play a second piece of music, you can use this to stagger the two pieces of music, so that the ambient piece doesn't start until the standard piece is done.

battle_track, battle_repeat_delay, battle_intro_delay[]

Setting these values will have no effect unless you also modify mood_manager.skrit to actually play this track. This buried feature has a possible use for advanced modders. See Appendix B: Tips for further explanation of possible uses.

[sun] { ... }[]

If you want to override the default sunlight color table, then you will need to do it inside a [sun] block. The way this works is just the same as in the timeofday.gas file:

   [00h00m]{ color = 0xFFA4700F; }
   [01h00m]{ color = 0xFFA4700F; }
   [02h00m]{ color = 0xFFE0A54B; }
   // etc...

There is no limit to the number of time blocks as long as they fit the proper format. For example, XXhYYm, where XX is the hour between [0-23] and YY is the minute between [0-59]). The color of the sunlight will transition smoothly between these colors. Example:

   [05h00m]{ color = 0xFFFF0000; } // red
   [12h00m]{ color = 0xFF00FF00; } // green
   [19h00m]{ color = 0xFF0000FF; } // blue

At exactly 5am, the sunlight color would be a bright pure red. Immediately after this it will begin lessening the red and gaining more green until noon, when it will be completely green. Immediately after noon, it will begin gaining blue and lessening green until 7pm, when it will be pure blue. After 7pm, it will begin gaining red and lessening blue until 5am, when it will be pure red again.

We used [sun] blocks to override the color of sunlight in our snowy areas so that there wouldn't be yellow snow.

[rain] { ... }[]

Rain settings go inside a rain block.

rain_density[]

This is how thick the rain will be. Default is 0 (not raining). The maximum is defined in config\weather.gas (we set it to 300).

lightning[]

This can be set to either true or false. If true, then it uses settings in config\weather.gas to determine how often the lightning will flash and how long after the flash the thunder occurs.

[snow] { ... }[]

Snow settings go inside the [snow] block. snow_density is the only snow setting, currently.

snow_density[]

This is how thick the snow will be. Default is 0 (not snowing). The maximum is defined in config\weather.gas (we set it to 400).

[wind] { ... }[]

Wind settings to inside the [wind] block.

wind_velocity[]

Velocity of the wind, in meters per second. Default is 0. If you set this above 5, you may see very strange things happen with effects that are not wind immune, if you make any. In tests, monsters that breathed non-wind-immune fire had a lot of trouble hitting players right in front of them when the wind was set to 20+. We tend to leave the wind at 5 or less.

wind_direction[]

Direction of the wind, specified in radians angles from the north vector. So pi/2 would be east, pi would be south, etc.

Warning! Danger! Advanced stuff! Frustum settings are really powerful and dangerous!!

It is recommended that you do not change the frustum settings unless you really know what you're doing, or you don't mind experimenting with things that can seriously change the game (and its performance) at a fundamental level.

[frustum] { ... }[]

If you are going to set the frustum width and height, it needs to be inside of a frustum block.

frustum_width[]

Measurement is meters, recommended value is 45. We chose this number after carefully weighing world detail vs. system performance. This number is the radius of the frustum, where the player character is at the middle. That means that 45 meters out from the character in all directions, the world is loaded. If this number is changed to 55, you could push the fog out farther and you wouldn't see the edge of the world, because you have pushed back the edge of the world itself. The major downside of this is that you have dramatically increased the number of things that the game has to keep in memory and actively process.

frustum_height[]

Measurement is meters, default is 1000. We chose this number just because it was large enough that we wouldn't have to worry about it. This number was chosen before we came up with the crazy idea of really tall towers. When we came up with towers that would have bad guys on every floor, we suddenly had too many monsters in the frustum, so we changed the frustum height to 60. Even this is pretty large; it's very unlikely that you would ever notice in-game that the frustum isn't infinite in the vertical dimension.

This is an important quirk: if you switch to a mood that does not have a frustum measurement defined, then the current frustum size will be used. This is not usually a big deal, so here's an example of a (fairly odd) case where it would actually matter. Let's say that you have changed the current frustum width to be 5. Then the player walks through a trigger boundary and activates a mood with a frustum width of 45 and a transition time of 20 seconds. So far, so good...the frustum slowly grows out to 45 meters over 20 seconds. But the player walks across a new mood trigger after only 10 seconds. The new mood trigger has no frustum size defined, so it simply uses the current frustum size. Their current frustum size is 25 meters - halfway between 5 and 45 - and it's going to stay at 25 meters because there was no frustum width defined in the new mood. If the new mood didn't account for this, and has the fog pushed out to 45 or 55 meters, the player will easily see the edge of the world, and this is a bad thing. In one of our worlds, we changed the frustum size in a few moods, so we took the precaution of putting a [frustum] block in every mood, and explicitly setting the frustum width and height to the defaults. This way, we never run into the above case, and the player should never be able to see the edge of the world.

A Practical Exercise[]

This is an example of writing a new mood and setting a trigger to give the mood to the player.

The first thing to do is create a new mood file, unless you already have one ready. For the purposes of our example, let's say your mod group is Dungeon Siege Fans (DSF), and your map name is LaserWorld. The mood that's needed is a dark blue fog for a futuristic indoor arena, along with some cool techno music (in a file that we'll assume you added into \sound\music\cool_techno.mp3). If you want to use a piece of music that actually exists, substitute s_m_maintheme_03 for cool_techno.

The new mood file would go in world\global\moods\LaserWorld\moods.gas. The filename can be anything, really, as long as it ends with .gas. You can have as many mood files in there as you want. Don't forget that file names cannot contain spaces.

Inside the new file will be your new mood. All of the mood settings will be inside a block that looks like this:

[mood_setting*]
{

}

First, we need a name. The name of your group is DSF, the map is LaserWorld, and the region is arena3 (let's say). Here's a good name for the mood:

mood_name = dsf_laserworld_arena3_1;

When the player arrives at the arena, we want the fog to turn blue pretty quickly. Use with a two-second transition and flag the arena as "interior":

transition_time	= 2.0f;
interior = true;

Let's set up the blue fog. Start the fog fairly far away from the player, and have a 10-meter distance from where the fog starts to where it's too thick to see through. Why? Well, it's nicer looking than having a sudden solid line of fog.

For the color, we want a dark blue fog. Use a small amount of red and green, with a larger amount of blue: 0xFF202030 will work. I pulled a value out of the air here...if you really cared about the color, it would be good to look at it in-game and adjust it as needed.

For fog_density, see the explanation in the field definitions above.

	[fog]
	{
		fog_near_dist = 40.0f;
		fog_far_dist = 50.0f;
		fog_lowdetail_near_dist	= 35.0f;
		fog_lowdetail_far_dist = 45.0f;
		fog_color = 0xFF202030;
		fog_density = 0.5f;
	}

Next...some music. We're going to use the music track "cool_techno.mp3", and it loops, so we will make sure to set the repeat delay to 0 (leaving the delay field out would do the same thing). The room type is a very large room, so an EAX value of "arena" seems like it would fit.

	[music]
	{
		standard_repeat_delay = 0.0f;
		standard_track = "cool_techno";
		room_type = rt_arena;
	}

Ta da! We now have a mood that looks like this:

[mood_setting*]
{
	mood_name = dsf_laserworld_arena3_1;
	transition_time	= 2.0f;
	interior = true;

	[fog]
	{
		fog_near_dist = 40.0f;
		fog_far_dist = 50.0f;
		fog_lowdetail_near_dist = 35.0f;
		fog_lowdetail_far_dist = 45.0f;
		fog_color = 0xFF202030;
		fog_density	= 0.5f;
	}

	[music]
	{
		standard_repeat_delay = 0.0f;
		standard_track = "cool_techno";
		room_type = rt_arena;
	}

}

The next step is to make a trigger that will give this mood to a player in the game. If you haven't read Siege U: 203A/B - Triggers I/II, then these instructions may not make sense to you - I recommend consulting that document!

Place a trigger_generic and add a spatial condition: party_member_within_bounding_box. Move the trigger around until the bounding box covers a section of the ground that the player can walk to. For the action, choose mood_change and specify dsf_laserworld_arena3_1 as the mood name. Save objects before you quit, otherwise your changes won't be saved.

Now you should be able to go into your test map, walk through the trigger, and see blue fog. Congratulations, you've made a new mood!

Four Complex Moods[]

Mood A[]

This mood is used just outside of the Utraean Peninsula's castle. It is rainy, with a moderately dark gray fog. Transition time is 6 seconds to make it start raining kind of suddenly, yet give the fog time to change without being too obvious. A [frustum] block is present, explicitly setting the frustum measurements to the defaults (not generally needed, see the above comments in the [frustum] section.

[mood_setting*]
{
   //outside the castle, rainy
   mood_name = multiplayer_world_castle_1;
   transition_time = 6.0f;
   interior = false;
   
   [fog]
   {
      fog_near_dist = 30.0f;
      fog_far_dist = 50.0f;
      fog_lowdetail_near_dist = 30.0f;
      fog_lowdetail_far_dist = 45.0f;
      fog_color = 0xFF505050;
      fog_density = 0.5f;
   }
   
   [frustum]
   {
      frustum_width = 45.0f;
      frustum_height = 60.0f;
   }
   
   [rain]
   {
      rain_density = 200.0f;
   }
   
   [music]
   {
      ambient_track = "";
      standard_intro_delay = 0.0f;
      standard_track = "s_m_CastleEhb_02";
      room_type = rt_generic;
   }
}

Mood B[]

This mood has darker fog, a little more rain, some wind, and lightning turned on. The transition time is short because none of the changes are very severe.

[mood_setting*]
{
   //outside the castle, stormy
   mood_name = multiplayer_world_castle_2;
   transition_time = 3.0f;
   interior = false;
   
   [fog]
   {
      fog_near_dist = 30.0f;
      fog_far_dist = 50.0f;
      fog_lowdetail_near_dist = 30.0f;
      fog_lowdetail_far_dist = 45.0f;
      fog_color = 0xFF404040;
      fog_density = 0.5f;
   }
   
   [frustum]
   {
      frustum_width = 45.0f;
      frustum_height = 60.0f;
   }
   
   [rain]
   {
      rain_density = 225.0f;
      lightning = true;
   }
   
   [wind]
   {
      wind_velocity = 0.5f;
      wind_direction = 0.0f;
   }
   
   [music]
   {
      ambient_track = "";
      standard_track = "s_m_CastleEhb_03"; 
      room_type = rt_generic;
   }
}

Mood C[]

This mood is used in an unusual place in the Utraean Peninsula. The player is ascending a mountain, and this is after they have climbed up out of a forest and they are about to go inside a cave. After going through the cave, they will come out in snowy terrain. So this mood has some wind and just a tiny bit of snow (there are also some snow decals on the ground in this area). The fog is dark gray, keeping nearly the same level of brightness as the previous fog, just getting rid of the forest green. The fog is also closer than normal. This is to create a feeling of being in a foggy bank at high altitude.

[mood_setting*]
{
   // This mood has a small amount of snow and gray fog
   // Music 3
   mood_name = multiplayer_world_df2ds_4;
   transition_time = 3.0f;
   interior = false;
   
   [frustum]
   {
      frustum_width = 45.0f;
      frustum_height = 60.0f;
   }
   
   [fog]
   {
      fog_near_dist = 25.0f;
      fog_far_dist = 45.0f;
      fog_lowdetail_near_dist = 25.0f;
      fog_lowdetail_far_dist = 40.0f;
      fog_color = 0xFF363636;
      fog_density = 0.6f;
   }
   
   [wind]
   {
      wind_velocity = 1.25f;
      wind_direction = 1.57f;
   }
   
   [snow]
   {
      snow_density = 30;
   }
   
   [rain] {} // empty [rain] block for lightning manipulation
   
   [music]
   {
      ambient_track = "s_e_ambient_woods_01";
      standard_repeat_delay = 10.0f;
      standard_track = "s_m_DarkForest_03";
      room_type = rt_generic;
   }
}

Mood D[]

This mood is on top of the mountain. It has the overridden [sun] block to prevent seeing yellow snow, and our brightest fog. There is wind, along with a wind sound in the ambient track. Note the extremely close neardist for the fog; this forces the player to view everything (including their own character) through fog, reinforcing the feeling of being of being in a foggy snowstorm. It is snowing, with moderately strong wind.

[mood_setting*]
{
   // Snowy, bright mood to be used near the top of the mountain
   mood_name = multiplayer_world_df2ds_7;
   transition_time = 5.0f;
   interior = false;
   
   [frustum]
   {
      frustum_width = 45.0f;
      frustum_height = 60.0f;
   }
   
   [sun]
   {
      00h00m:color = 0xFF000000;
      05h00m:color = 0xFF1A1A00;
      06h00m:color = 0xFF66330D;
      07h00m:color = 0xFFB39A40;
      08h00m:color = 0xFFB3B3B3;
      10h00m:color = 0xFFF0F0FF;
      12h00m:color = 0xFFFFFFFF;
      19h00m:color = 0xFFB39A9A;
      20h00m:color = 0xFF66334D;
      21h00m:color = 0xFF330D40;
      22h00m:color = 0xFF000000;
      23h00m:color = 0xFF000000;
   }
   
   [fog]
   {
      fog_near_dist = 5.0f;
      fog_far_dist = 40.0f;
      fog_lowdetail_near_dist = 5.0f;
      fog_lowdetail_far_dist = 35.0f;
      fog_color = 0xFFc0c0c8;
      fog_density = 0.6f;
   }
   
   [wind]
   {
      wind_velocity = 2.5f;
      wind_direction = 3.14f;
   }
   
   [snow]
   {
      snow_density = 200;
   }
   
   [rain] {} // empty [rain] block for lightning manipulation
   
   [music]
   {
      ambient_track = "s_e_ambient_wind_01b";
      standard_repeat_delay = 10.0f;
      standard_track = "s_m_Glacern_02";
      room_type = rt_generic;
   }
}

Conclusion[]

That concludes this Siege U section on Moods. We have covered the definition and composition of moods, where and when moods are used, and how often moods are updated. We have looked a several examples of simple and complex moods. As you can see, creating moods doesn't have to be hard. There are plenty already available, and if you want to make your own, cutting, pasting, and editing an existing mood is the easiest way to get started.

Have fun with moods and good luck!

Appendix A: EAX Settings[]

This is a list of all EAX settings. They are self-explanatory.

  • rt_alley
  • rt_arena
  • rt_auditorium
  • rt_bathroom
  • rt_carpetedhallway
  • rt_cave
  • rt_city
  • rt_concerthall
  • rt_dizzy
  • rt_drugged
  • rt_forest
  • rt_generic
  • rt_hallway
  • rt_hangar
  • rt_livingroom
  • rt_mountains
  • rt_paddedcell
  • rt_parkinglot
  • rt_plain
  • rt_psychotic
  • rt_quarry
  • rt_room
  • rt_sewerpipe
  • rt_stonecorridor
  • rt_stoneroom
  • rt_underwater

Appendix B: Tips[]

  • Transition time is really a powerful tool. You can make drastic changes in fog color much less noticeable by having them take 20 seconds. You can change music very suddenly to a loud battle song, or gently switch from one background piece to another. Anytime the player goes from inside to outside or vice versa, they will expect to see a very rapid change in the fog. Likewise, they won't be expecting any quick changes while they are marching through a forest or field. By working with these expectations you can keep mood transitions as invisible or obvious as you want.
  • Go ahead and go a little crazy with the fog colors. Black is usually required when in a dungeon, but when the player is outside, gray gets boring. If someone had told me near the beginning of the project that we would end up having red, orange, green, blue, purple, and gray fogs, I'm not sure I would have believed them. Gray works most of the time, but adding a little color to the fog can make the environments feel more realistic.
  • Sometimes, it's nice to have a lot of moods with subtle changes between them. You could use a whole series of moods with different levels of gray fog so that as the intrepid adventurer got closer to the Den of Evil, it gets darker, and darker, and darker... (This would also make it so that if they turned around and walked away, they would walk back through the mood triggers, making it lighter, and lighter...)
  • The battle_track is a third music track that can be used, but it will take a little extra work to get it to work, and you will have to deal with skrit. It was originally added so that the standard track could play while the player was exploring, and then the battle track would play while the player was fighting. Fighting is so common, however, that it became an annoyance to have two different tracks of music constantly starting up and then changing. So the battle track became an unused feature. The mood_manager.skrit doesn't even play this track...but it could. It is located at world\global\moods\mood_manager.skrit. Discussion of the mood manager is beyond the scope of this introduction to moods. If enough demand is there, a 300-level document may be called for and created.
  • The weather will have a chance of getting randomly more or less dense every 15 seconds. This behavior is defined in the mood manager. It will never go below 50% or above 150% of the value specified in the mood. The wind will also vary in speed and direction in a similar manner, never going more than +/- 50% velocity. If the rain goes over density 200 this way, lightning will be turned on. If the rain goes below density 200 this way, lightning will be turned off.