La problématique

La musique dans les jeux vidéo a considérablement évolué ces 15 dernières années. L'augmentation des espaces de stockage et l'utilisation généralisée de format type mp3/ogg a permis d'utiliser dans les jeux des musiques de très bonne qualité, comparables à ce que l'on trouve au cinéma.

Pourtant, il existe une différence de taille : au cinéma, tout est prévu à l'avance et la musique peut être précalculée, pour correspondre précisément à l'image. Dans un jeu vidéo, le joueur a un certain contrôle sur l'histoire ; il n'est donc pas possible, dans le cas général, de prévoir ses actions. On ne sait pas non plus quelle sera la vitesse de sa progression.

Le problème est donc : comment faire évoluer interactivement la musique d'un jeu, en fonction des actions du joueur ? Une solution simple est de créer une playlist de musiques, chacune associée à une scène, et d'effectuer des fondus quand il le faut. D'un point de vue musical, le fondu est une transition bien trop pauvre et coupe l'enchainement. Comment faire quelque chose de satisfaisant, à la fois sur le plan de la qualité du son et au niveau de l'enchainement sonore ?

Comme souvent en informatique, il est nécessaire de trouver un compromis. Il faut limiter la taille des musiques sur le disque dur, il faut aussi limiter l'utilisation du CPU et ne pas faire trop de calculs... Il faut également que ce ne soit pas trop complexe à réaliser, tant au niveau programmation, qu'au niveau composition de la musique. Enfin, en plus de toutes ces contraintes, on veut une bonne qualité de son et une flexibilité de la musique. Évidemment, il n'y a pas de solution miracle. De plus, la « meilleure » solution va dépendre des priorités et du type de jeu choisi.

Dans le prochain billet, je détaillerai une solution extrêmement puissante et flexible. Cela se fera au détriment soit d'une qualité de son moyenne, soit d'un surcoût au niveau CPU ou mémoire sur le disque. De plus, elle posera certaines contraintes sur la conception de la musique.