LO's Sharp Devs

C# , XNA Game Development Blog. Intentionally more than only for game authors but for C# programmers in general.

Moje zdjęcie
Nazwa:
Lokalizacja: Poland

środa, 19 listopada 2008

[Game - Audio] Dynamic Music

Yes, today it is time for well known subject, that various developers tried to beat many times already. Dynamically changing music. Thing simple as an idea but very hard to implement.

I will just run through various attempts or ideas I've seen or thought about and in the end propose my own idea, that is obviously some kind of compilation of best solutions :)

In most cases there are just two (sometimes more) types of music in ordinary game: "normal" music that goes through most of the time and "dynamic" one appearing during fight or something. There sometimes appears "special" music connected to particular event or location. Typical game may contain several tracks of each type picked randomly and in line with current game situation.

In old days there were just midi tracks, that were swapped, eventually swapped channel by channel to receive "smoother" transition. This was quite simple to implement and resulted with nice transition. Now, even in era of advanced sound cards (X-Fi?) midi is simply too poor and simple, and of course sounds very poor on weaker cards.

Similar results could be obtained using mods, where samples of instruments (or even voices) were digitalized, not synthesized in real time. This improves quality on low-end cards, but still is no good quality.

Then designers started using music on CD or MP3 (and similar formats). The quality can be very high but is has real drawback in smooth transition - most of the time developers rely on external libraries that have to buffer tracks before play, can play only one track at the moment etc. This gives no way for nice transitions - (like in Morrowind / Oblivion where game frozen for second or two, then another track started from the beginning), or when this is fluent - one can easily determine where one track ends and another starts - what is big clue of being attacked, or even tracked by the enemy - what shall not happen in horrors and similar games. This is bad also for themes that have to warm up first - so are silent in the beginning etc.

My proposal is to develop own replay library that can buffer several tracks and then design GROUP of tracks that are connected by some "theme" and then prepare special matrix (for example with accuracy of 5 seconds) which points into which second of track of other type to jump when being in particular place in current track. Of course such places in tracks shall be first composed by musician, but having that in mind - themed groups can be doable.

It can be even upgraded, so particular transition may be done in several ways, of one will be picked randomly, giving feeling of variability. Or also may be programatically changed from "rapid" change in violent situations into fluent change (jumping into warm-up section?) in more "thrilling" moments. This matrix may also contain information of conditional loops in one track to avoid "repetition" feeling (hearing warm-up section is quite significant in my opinion) in selected situations.

Of course that requires careful music design - so all track types in one theme group
have several ways of jumping from one to another. One may even design special themed "jingles" (short pieces of sound) that would help in jumping from one tension to another (sudden chord that matches following battle music or in the opposite - fading ending of rush music) or just build bigger diversity in transitions. But this is also a great benefit itself - having music themed and dynamically changing inside one theme adds to the game movie soundtrack feeling, where music is written up to accompany current scene. This shall add great value to the game immersion.

Comments? You are welcome.

Komentarze (0):

Prześlij komentarz

Subskrybuj Komentarze do posta [Atom]

<< Strona główna