Situation-Dependent Music
Hypergrip
SuspectGermany Join Date: 2002-11-23 Member: 9689Members, NS1 Playtester, Contributor
<div class="IPBDescription">What, Why and How</div><!--coloro:#FFFFFF--><span style="color:#FFFFFF"><!--/coloro-->First of all I’d like to thank you guys for the positive feedback on Spirits of Sanjii here on the forums and the servers I play on. I wish I’d had a little more time, the track could have been a bit more dynamic... but it was only 2 days to halloween...<!--colorc--></span><!--/colorc-->
<!--coloro:#FFA500--><span style="color:#FFA500"><!--/coloro--><b>Situation-Dependent Music – What is it and why would we want it?</b><!--colorc--></span><!--/colorc-->
<!--coloro:#FFFFFF--><span style="color:#FFFFFF"><!--/coloro-->Sounds and music are means to support immersion. In order to work that way audio parts have to correspond to what you see/do in the game. e.g. you pull the trigger = you hear your weapon’s fiering sound (or the “click-click-of-death†<img src="style_emoticons/<#EMO_DIR#>/wink-fix.gif" style="vertical-align:middle" emoid=";)" border="0" alt="wink-fix.gif" />). While sounds are often triggered by events or user input in a lot of games music “is/was just thereâ€. For most games a fitting soundtrack works just fine, for some games I think it would be great to use a score.<!--colorc--></span><!--/colorc-->
<!--coloro:#C0C0C0--><span style="color:#C0C0C0"><!--/coloro--><!--coloro:#ADD8E6--><span style="color:#ADD8E6"><!--/coloro-->Definitions<!--colorc--></span><!--/colorc--> (the way I’ll use the words in this text):
Soundtrack = A complete piece of music that plays in the background.
Score = Backgournd music that interactively adepts to the situation.
(When you go and buy CDs you can sometimes find a CD with the Score and another one with the Soundtrack for a single movie. The Soundtrack is “commercial†music that is used in the movie while the score is music that has been written for the movie and often fits the scenes)<!--colorc--></span><!--/colorc-->
<!--coloro:#FFFFFF--><span style="color:#FFFFFF"><!--/coloro-->So why should NS2 use a Score instead of a soundtrack?
The NS gameplay (and I suppose the general “feeling†will be somewhat similar) consists of different “phasesâ€. Sometimes (I’ll use the Marine side in this example) you are sneaking around alone, trying to put up a ninja-PG, sometimes you’re capping RTs with teammates and quite a lot of times you’re fighting for your life. All those situations/â€phases†have a different pace and “tension levelâ€. A soundtrack – although fitting the overall atmosphere of the game – is a predefined sequence of different “moods†wich – murphy’s law – will often just not fit the situation the player is in.
Let’s take “Spirits of Sanjii†as example. It consists of 4 basic sequences: An “Intro†the “Theme†an “Interlude†and the “Theme†again. If you’re lucky the “Thema†part will play just at the time you’re actually advancing or fighting and the “Interlude†is playing while you sneak around. But it’s likely that it’ll be just the other way round.<!--colorc--></span><!--/colorc-->
<!--coloro:#FFA500--><span style="color:#FFA500"><!--/coloro--><b>Situation-Dependent Music – How can it be implemented?</b><!--colorc--></span><!--/colorc-->
<!--coloro:#C0C0C0--><span style="color:#C0C0C0"><!--/coloro--><!--coloro:#ADD8E6--><span style="color:#ADD8E6"><!--/coloro-->Definitions/Basics<!--colorc--></span><!--/colorc--> (musicology majors please don’t hit me for over-simplifying things <img src="style_emoticons/<#EMO_DIR#>/wink-fix.gif" style="vertical-align:middle" emoid=";)" border="0" alt="wink-fix.gif" />):
The speed of music can be meassured in BPM (beats per minute). A bar/meassure of music consists of a given number of beats. A score consists of different bars. So if we know the BPM of a score we know the time each bar takes to play; we know how many bars make up a sequence so we know how long a sequence is (very simple example: a sequence consists of 4 bars, a bar consists of 4 beats, the track is played at 60 BPM -> 1 beat = 1 second -> 1 bar = 4 seconds -> sequence lenght = 16 seconds).<!--colorc--></span><!--/colorc-->
<!--coloro:#FFFFFF--><span style="color:#FFFFFF"><!--/coloro-->Since where don’t have a predefined set of events we could create the score after (like composers for movies do) we have to have the music react dynamically to what happens to the player (meaning that each player has his own score of course). To achieve this we need to devide the gameplay into different “phasesâ€, create different sets of bars corresponding to each “phase†and have them put together “on the fly†during the game.<!--colorc--></span><!--/colorc-->
<!--coloro:#FFFFFF--><span style="color:#FFFFFF"><!--/coloro-->Basic phases and their characteristics/moods:
1.) Player spawns (not much to say there)
2.) Player is sneaking around/hiding alone somewhere (high tension, the fear to be spotted, ...).
3.) Player is moving with his teammates (pressure, advancing, teamwork, relative security, ...).
4.) Player is fighting (fast pace, agressive, danger, ...).
5.) Player dies (###### happens...).<!--colorc--></span><!--/colorc-->
<!--coloro:#FFFFFF--><span style="color:#FFFFFF"><!--/coloro-->So we’d need 5 sets of sequences (sets could consist of only one sequence but that would be boring, wouldn’t it?).<!--colorc--></span><!--/colorc-->
<!--coloro:#FFA500--><span style="color:#FFA500"><!--/coloro--><b>Implementation:</b><!--colorc--></span><!--/colorc-->
<!--coloro:#FFFFFF--><span style="color:#FFFFFF"><!--/coloro-->After we decided what the exact definitions for each phase are (for example does hurting oneself from falling trigger “fighting†or does one have to be in line of sight of teammates so it counts as not being alone, and so on...) the basic routine could look somewhat like this:<!--colorc--></span><!--/colorc-->
<img src="http://www.teleservice-koper.de/temp/ns2musicsystem01.jpg" border="0" class="linked-image" />
<!--coloro:#FFFFFF--><span style="color:#FFFFFF"><!--/coloro-->We basically have two “circles†and three “triggers†that manage how the score is put together / what sequences are played. The difference between a trigger and a “normal†decision is that the trigger will stop the score and play the new sequence right away while the decision is called after a sequence has played entirely (if you get jumped by a Skulk the fighting music should not take 4 seconds to start playing).<!--colorc--></span><!--/colorc-->
<!--coloro:#FFFFFF--><span style="color:#FFFFFF"><!--/coloro--><!--coloro:#ADD8E6--><span style="color:#ADD8E6"><!--/coloro-->Example:<!--colorc--></span><!--/colorc-->
You spawn. A short “Spawn†sequence could be played. Now the game checks if you have teammates around you. Let’s say you do – one of the “Teamwork†sequences is seamlessly playing now. After a while (several of the “Teamwork†sequences have already played) you get lost somewhere alone. When the current “Teamwork†sequence is finished playing the decision is called and judges that you are now alone and one of the “Alone†sequences starts playing. You have been sneaking around for some time now, the current “Alone†sequence (length = 16 seconds) has just started. Suddenly a Skulk jumps right in your face. Now the trigger kicks in, stops the “Alone†sequence that might have played for another 10 seconds and starts a “Fighting†sequence. You manage to fend off the first skulk but a second one kills you from behind. Again a trigger kicks in, stops the “Fighting†sequence and plays a short “Dying†sequence.<!--colorc--></span><!--/colorc-->
<!--coloro:#FFFFFF--><span style="color:#FFFFFF"><!--/coloro-->To make sure the music is not too repetative it could be a good idea to use longer sequences with “exit pointsâ€. For example you’d have a “Alone†sequence that consists of 32 bars in total. All 32 bars will be played before another “Alone†sequence is selected randomly and played, but every 8 bars the system would check is the “Alone†state is still active.<!--colorc--></span><!--/colorc-->
<!--coloro:#FFA500--><span style="color:#FFA500"><!--/coloro--><b>Demo:</b><!--colorc--></span><!--/colorc-->
<!--coloro:#FFFFFF--><span style="color:#FFFFFF"><!--/coloro-->I’ve not played around with Flash a lot lately and also lack the software for that on this machine. If anybody with decent flash skills things this is interesting and has some time, please contact me. I got a couple of small sound clips as sequences that I’d like to see in a interactive demo of this system (let the users set status to alone/teamwork, hit a fight-button, and stuff like that).<!--colorc--></span><!--/colorc-->
<!--coloro:#FFFFFF--><span style="color:#FFFFFF"><!--/coloro-->Regards
/Hyper<!--colorc--></span><!--/colorc-->
<!--coloro:#FFA500--><span style="color:#FFA500"><!--/coloro--><b>Situation-Dependent Music – What is it and why would we want it?</b><!--colorc--></span><!--/colorc-->
<!--coloro:#FFFFFF--><span style="color:#FFFFFF"><!--/coloro-->Sounds and music are means to support immersion. In order to work that way audio parts have to correspond to what you see/do in the game. e.g. you pull the trigger = you hear your weapon’s fiering sound (or the “click-click-of-death†<img src="style_emoticons/<#EMO_DIR#>/wink-fix.gif" style="vertical-align:middle" emoid=";)" border="0" alt="wink-fix.gif" />). While sounds are often triggered by events or user input in a lot of games music “is/was just thereâ€. For most games a fitting soundtrack works just fine, for some games I think it would be great to use a score.<!--colorc--></span><!--/colorc-->
<!--coloro:#C0C0C0--><span style="color:#C0C0C0"><!--/coloro--><!--coloro:#ADD8E6--><span style="color:#ADD8E6"><!--/coloro-->Definitions<!--colorc--></span><!--/colorc--> (the way I’ll use the words in this text):
Soundtrack = A complete piece of music that plays in the background.
Score = Backgournd music that interactively adepts to the situation.
(When you go and buy CDs you can sometimes find a CD with the Score and another one with the Soundtrack for a single movie. The Soundtrack is “commercial†music that is used in the movie while the score is music that has been written for the movie and often fits the scenes)<!--colorc--></span><!--/colorc-->
<!--coloro:#FFFFFF--><span style="color:#FFFFFF"><!--/coloro-->So why should NS2 use a Score instead of a soundtrack?
The NS gameplay (and I suppose the general “feeling†will be somewhat similar) consists of different “phasesâ€. Sometimes (I’ll use the Marine side in this example) you are sneaking around alone, trying to put up a ninja-PG, sometimes you’re capping RTs with teammates and quite a lot of times you’re fighting for your life. All those situations/â€phases†have a different pace and “tension levelâ€. A soundtrack – although fitting the overall atmosphere of the game – is a predefined sequence of different “moods†wich – murphy’s law – will often just not fit the situation the player is in.
Let’s take “Spirits of Sanjii†as example. It consists of 4 basic sequences: An “Intro†the “Theme†an “Interlude†and the “Theme†again. If you’re lucky the “Thema†part will play just at the time you’re actually advancing or fighting and the “Interlude†is playing while you sneak around. But it’s likely that it’ll be just the other way round.<!--colorc--></span><!--/colorc-->
<!--coloro:#FFA500--><span style="color:#FFA500"><!--/coloro--><b>Situation-Dependent Music – How can it be implemented?</b><!--colorc--></span><!--/colorc-->
<!--coloro:#C0C0C0--><span style="color:#C0C0C0"><!--/coloro--><!--coloro:#ADD8E6--><span style="color:#ADD8E6"><!--/coloro-->Definitions/Basics<!--colorc--></span><!--/colorc--> (musicology majors please don’t hit me for over-simplifying things <img src="style_emoticons/<#EMO_DIR#>/wink-fix.gif" style="vertical-align:middle" emoid=";)" border="0" alt="wink-fix.gif" />):
The speed of music can be meassured in BPM (beats per minute). A bar/meassure of music consists of a given number of beats. A score consists of different bars. So if we know the BPM of a score we know the time each bar takes to play; we know how many bars make up a sequence so we know how long a sequence is (very simple example: a sequence consists of 4 bars, a bar consists of 4 beats, the track is played at 60 BPM -> 1 beat = 1 second -> 1 bar = 4 seconds -> sequence lenght = 16 seconds).<!--colorc--></span><!--/colorc-->
<!--coloro:#FFFFFF--><span style="color:#FFFFFF"><!--/coloro-->Since where don’t have a predefined set of events we could create the score after (like composers for movies do) we have to have the music react dynamically to what happens to the player (meaning that each player has his own score of course). To achieve this we need to devide the gameplay into different “phasesâ€, create different sets of bars corresponding to each “phase†and have them put together “on the fly†during the game.<!--colorc--></span><!--/colorc-->
<!--coloro:#FFFFFF--><span style="color:#FFFFFF"><!--/coloro-->Basic phases and their characteristics/moods:
1.) Player spawns (not much to say there)
2.) Player is sneaking around/hiding alone somewhere (high tension, the fear to be spotted, ...).
3.) Player is moving with his teammates (pressure, advancing, teamwork, relative security, ...).
4.) Player is fighting (fast pace, agressive, danger, ...).
5.) Player dies (###### happens...).<!--colorc--></span><!--/colorc-->
<!--coloro:#FFFFFF--><span style="color:#FFFFFF"><!--/coloro-->So we’d need 5 sets of sequences (sets could consist of only one sequence but that would be boring, wouldn’t it?).<!--colorc--></span><!--/colorc-->
<!--coloro:#FFA500--><span style="color:#FFA500"><!--/coloro--><b>Implementation:</b><!--colorc--></span><!--/colorc-->
<!--coloro:#FFFFFF--><span style="color:#FFFFFF"><!--/coloro-->After we decided what the exact definitions for each phase are (for example does hurting oneself from falling trigger “fighting†or does one have to be in line of sight of teammates so it counts as not being alone, and so on...) the basic routine could look somewhat like this:<!--colorc--></span><!--/colorc-->
<img src="http://www.teleservice-koper.de/temp/ns2musicsystem01.jpg" border="0" class="linked-image" />
<!--coloro:#FFFFFF--><span style="color:#FFFFFF"><!--/coloro-->We basically have two “circles†and three “triggers†that manage how the score is put together / what sequences are played. The difference between a trigger and a “normal†decision is that the trigger will stop the score and play the new sequence right away while the decision is called after a sequence has played entirely (if you get jumped by a Skulk the fighting music should not take 4 seconds to start playing).<!--colorc--></span><!--/colorc-->
<!--coloro:#FFFFFF--><span style="color:#FFFFFF"><!--/coloro--><!--coloro:#ADD8E6--><span style="color:#ADD8E6"><!--/coloro-->Example:<!--colorc--></span><!--/colorc-->
You spawn. A short “Spawn†sequence could be played. Now the game checks if you have teammates around you. Let’s say you do – one of the “Teamwork†sequences is seamlessly playing now. After a while (several of the “Teamwork†sequences have already played) you get lost somewhere alone. When the current “Teamwork†sequence is finished playing the decision is called and judges that you are now alone and one of the “Alone†sequences starts playing. You have been sneaking around for some time now, the current “Alone†sequence (length = 16 seconds) has just started. Suddenly a Skulk jumps right in your face. Now the trigger kicks in, stops the “Alone†sequence that might have played for another 10 seconds and starts a “Fighting†sequence. You manage to fend off the first skulk but a second one kills you from behind. Again a trigger kicks in, stops the “Fighting†sequence and plays a short “Dying†sequence.<!--colorc--></span><!--/colorc-->
<!--coloro:#FFFFFF--><span style="color:#FFFFFF"><!--/coloro-->To make sure the music is not too repetative it could be a good idea to use longer sequences with “exit pointsâ€. For example you’d have a “Alone†sequence that consists of 32 bars in total. All 32 bars will be played before another “Alone†sequence is selected randomly and played, but every 8 bars the system would check is the “Alone†state is still active.<!--colorc--></span><!--/colorc-->
<!--coloro:#FFA500--><span style="color:#FFA500"><!--/coloro--><b>Demo:</b><!--colorc--></span><!--/colorc-->
<!--coloro:#FFFFFF--><span style="color:#FFFFFF"><!--/coloro-->I’ve not played around with Flash a lot lately and also lack the software for that on this machine. If anybody with decent flash skills things this is interesting and has some time, please contact me. I got a couple of small sound clips as sequences that I’d like to see in a interactive demo of this system (let the users set status to alone/teamwork, hit a fight-button, and stuff like that).<!--colorc--></span><!--/colorc-->
<!--coloro:#FFFFFF--><span style="color:#FFFFFF"><!--/coloro-->Regards
/Hyper<!--colorc--></span><!--/colorc-->
Comments
Many single-player games do this really well, but that's because the computer knows you're heading into trouble. How are you going to get that to work in a dynamic environment like NS2? L4D also cheats since the director gets to spawn all the zombies.
I can imagine small subtle things for location, like nearing Alien Hive, maybe the mapper adds an entity that says, this is creepy ambush room or something like that. However, starting it up during the fight might be foolish if the fight is over too quick, and you can't start while enemies are simply close by or it gives away the ambush.
The things that can work are death music, end of round music, triumphant music for big events (Hive dies! Hive built!). Maybe the sneaky versus pack as well. The battle music is as I mentioned above is very touchy.
More sounds from the surroundings and units might do the trick. Different footsteps and maybe even echoes could help a lot. For example on hive rush you could have mixed screams of both aliens and marines, gunfire sounds echoing in the room and even the hive making more sound than it is now. Also add some tense grin for the marines firing their guns and mix it up with some dramatic muzzle flash lighting up their face. That's how I'd build up the NS atmosphere.
<!--quoteo(post=1693996:date=Nov 21 2008, 05:32 AM:name=locallyunscene)--><div class='quotetop'>QUOTE(locallyunscene @ Nov 21 2008, 05:32 AM) <a href="index.php?act=findpost&pid=1693996"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->I'm curious how you plan on transitioning between the three major "moods". From a player perspective start too early and you give the player information(possibly false information), start to late and it loses it's effect. Abrupt transitions mess with the beat so I'm just curious if you have any ideas for handling the sudden transtitions.<!--QuoteEnd--></div><!--QuoteEEnd-->
As far as I understood it, the sequences are designed in a way to allow seamless transition between them so the player would possible not even hear that a new file is playing (he won't hear a gap or something, of course he'll notice the mood is different... but that's what it's all about right?).
If the composer has in mind that the tracks he creates have to fit after another in random orders I think it will work fine.
The Fighting sequenses are started by a trigger in the picture so yes, I think it will start right away and not care about the beat, but I think that this won't feel as arkward as you think, ocallyunscene. I don't know if anybody remembers "Total Annihilation", a very nice RTS game. IIRC it used different tracks for combat and non-combat phases. The combat tracks would start right away when your units were under attack or attacking something and it didn't feel wrong at all.
About the "giving the player (false) information, I think this part pretty much asks for some brainstorming on our side:
<!--quoteo--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--quotec-->After we decided what the exact definitions for each phase are (for example does hurting oneself from falling trigger “fighting†or does one have to be in line of sight of teammates so it counts as not being alone, and so on...)<!--QuoteEnd--></div><!--QuoteEEnd-->
Personally I think the combat sequences should start if:
- The player recieves a certain ammount of damage (not parasite but Gorge spit would do the trick)
- The player fires his weapon at an alien structure or lifeform that is in his line of sight (that would mean that throwing a handgrenade into a random vent accidently hurting a hiding skulk would not trigger the fighting sequence)
- There are 3 or more (non cloaked) alien lifeforms within a certain close-medium range AND in line of sight (wich means the player MUST have seen them if he's not blind and the combat music encourages him to take action... be it fight or escape. Also )
However those points are up for constructive discussion.
Of course I think payers should be able to turn off the music or use a "user radio station" (own MP3 randomly played from a specific folder) if they don't want to have the cinematic music.
Schnitzel
PS: Too bad i really suck at flash, I'd love to see/hear a little demo.
I personally thing NS2 should focus on....enviromental noises, engines running, water dripping, marine foot thumps, the faint flow of air from the AC/vents. This does sound cool, but harder than hell to implement without alot of little tid-bit bugs.
I turn off any music while playing NS, as it distracts me from listening to enviromental noises, like a skulk or marine.
Get my jist?
i VERY much like the idea of DOD:S if your online playing with 32 pers. on a server you can hear them all the time so ill explain;
i join the server and pick up an MG42 (deverstating weapon even if its ww2 in ns i would be same as cheating ^^ )
and if i pull the trigger there are 3 kinds of sounds that were played clientside
1. is close to me hearing the clear gunfire
2. is about 100ft away is hearing the gunfire not that clear and loud
3. is about 300ft away just hering the echos of the gunfire weaving through the enviroment
this is making a great effect if the server is full and you respawn, close to you everything is peacefull but you can hear the war screaming in the far the enviromental evect of this is very good !
and if you combine this with some kind of background music the game would get a lot more feeling!
If NS2 was a singleplayer, hell yes.
But it is a multiplayer, and music in general would be out of place during the game itself.
If NS2 was a singleplayer, hell yes.
But it is a multiplayer, and music in general would be out of place during the game itself.<!--QuoteEnd--></div><!--QuoteEEnd-->
I appreciate context-sensitive music and it's a feature that I am enjoying immensely in Left 4 Dead. It really adds to the immersion of the setting, but I do agree with having it be so loud that it will overpower the environmental sounds. However, dismissing this idea outright is a travesty.
About the "ambient" vs "music".. I don't think these exclude each other. The way I'm imagine it, the passages where you're alone will be similar to the abient we have in NS right now, while the music playing while in a group whill be a little moremusical/rythic.
Schnitzel
1. is close to me hearing the clear gunfire
2. is about 100ft away is hearing the gunfire not that clear and loud
3. is about 300ft away just hering the echos of the gunfire weaving through the enviroment
this is making a great effect if the server is full and you respawn, close to you everything is peacefull but you can hear the war screaming in the far the enviromental evect of this is very good !
and if you combine this with some kind of background music the game would get a lot more feeling!<!--QuoteEnd--></div><!--QuoteEEnd-->
<a href="http://www.unknownworlds.com/ns2/forums/index.php?showtopic=104528&st=0&p=1683213&#entry1683213" target="_blank">Volumetric Sound</a> would be even more pimp.
Let's stick to music for now. <img src="style_emoticons/<#EMO_DIR#>/nerd-fix.gif" style="vertical-align:middle" emoid="::nerdy::" border="0" alt="nerd-fix.gif" />
My questions about battle music haven't really been answered. It's one thing to say "it allows for seamless transition", but it's quite another to actually do it. The transition isn't the hard part, it's the "seamless".