Accueil
 


cadre_haut01

The Document of Metal Gear Solid 2

Programmes

 

Vous aurez ici le droit a une description des quelques programmes utilisés dans MGS2. En voila quelques-uns.

 

System Structure

La structure systeme de Metal Gear Solid 2 peut etre divisée en plusieurs parties que voici :

  • USER
    - Programmes du joueur, soldats ennemis, portes et effets.

  • JEU
    - Un groupe de programmes et de fonctions utilisés pour etablir la progression du jeu, incluant les synchonisations des autre modules.

  • SYSTEME
    - Script (conversations)
    - Fichiers / Libraries systemes
    - Collisions
    - Affichage de l'image a l'ecran
    - Librarie de l'animation
    - Calculs multiples divers
    - Organisation de la memoire

  • KERNEL
    - Utilisation du son
    - Reconnaissance du CD et DVD.

Chaque programme "User" est ecrit entierement. Le tout est controlé par notre script appellé CGL. Chaque programmeur travaille sur son porojet. Ensuite en fonction des programmes utilisés, nous utilisons la methode de "Debuggage" afin de voir la vitesse d'execution de ceux-ci. Si ils sont longs c'est qu'ils pesent trop lourd. Le tout est ecrit a partir du C et d'un Assembleur pour certaines zones. Le fichier source est managé par le CVS et la compilation par Linux. Il y a donc 2600 fichiers sources pour un total de 1.15 millions de lignes de code.

 

Memory Data

La Playstation 2 possede 32MB de memoire. C'est l'Emotion Engine. Chaque jeu ne peut utiliser que 32MB. Metal Gear Solid 2 a classé ses données de cette façon :

  • 4M : Programmes necessaires a la PS2.
  • 7M : Données permanentes.
  • 15M : La partie qui travaille (Models, données, stages etc...)
  • 4M : Pour le DMA (qui gere le dessin de l'image a l'ecran)
  • 512K : Le travail qui gere le temps reel.
  • 512K : Données diverses.

Ces données sont permanentes pendant le jeu et ne sont diminuées que lors de l'apparition de stages qui font baisser la mémoire. C'est pour cela qu'il est utile d'inscrire des temps de chargements.

 

Les données : Script

Le CGL (Game Command Language) est un script designé pour MGS2. Il peut etre divisé en deux parties : "program startup" qui gere toutes les données avant d'entrer dans un niveau et "event setting" qui applique les données du "program startup". Grace a ce script vous pourrez par exemple placer une porte dans un stage ou un ennemi, et la faire inter-agir avec le personnage. Par exemple le "program startup" sera programmé pour placer une sentinelle et le "program startup" reagira de la maniere suivante "Si le heros est reperé par la sentinelle alors declencher l'alerte". Bien sûr c'est beaucoup plus technique :)

 

Système de Collision

Les collisions ici, sont bien sur les murs, sols et plafonds. Les systemes de collisions permettent de dire si l'ennemi peut voir a travers un mur, que le heros peut se coller au mur, que celui-ci fera tel ou tel bruit si une balle est tirée dessus, ou encore quels types d'impacts laissera la balle si elle est tirée. De plus depuis l'apparition de la vue a la premiere personne, il a fallut faire un programme beaucoup plus abouti pour gerer les degats absolument partout. Les systemes de collisions servent aussi a delimiter les endroits ou la zone se termine ou l'angle de camera, les routes de patrouilles etc... Quand au radar situé au dessus c'est juste dessiné.

 

Les textures

La PS2 a 4MB dediée au textures.

  • Frame Buffer : 2MB
  • Z buffer : 1MB
  • Cache texture : 1MB

Dans MGS2, les modeles ont directement leur textures. La plupart des models peuvent atteindre 1MB (bien que la plupart en ont a peine la moitié). Cependant pour eviter que ça ne rame trop, vous remarquerez que tous les objets ne sont pas voyants (les toilettes sont cachées par une porte et la porte par le mur). Une salle a souvent plus de 10Mb de textures.

 

Le systeme STREAM

Ce systeme permet de lire un petit paquet de données sans avoir a passer un temps de chargement. Dans MGS2, ils sont utilisés pour le son, les videos en MPEG2, les textures compressées, les sous-titrages ou encore les expressions faciales de personnages dasn les phases Codec.

Ce système lit les 1.2 gigabytes de sons, dialogues (580 Minutes) et les videos de 1.7 gigas (170 minutes). A l'origine, ce programme devait etre utilisé pour Policenauts.