Tout ça en 64 Ko ?

Aujourd’hui, nous allons parler d’une démo de 2000 du groupe farbrausch : fr-08 : .the.product.
Bon, une démo avec de la 3D, une musique sympa, qui dure quinze minutes, très bien, mais pourquoi parler de celle-là ? Car elle ne fait que… 64 Ko !

Comment ont-ils fait cela ?

En 2000, les PC sont déjà bien puissants et possèdent pas mal de mémoire. Les textures sont stockées sous forme d’images et les musiques en MP3 font leur apparition. Je me souviens qu’en 98, quand on lisait les premiers MP3, il ne fallait pas faire tourner d’autres applications en même temps, sinon ça ramait pas mal !
Donc à l’époque où les démos prenaient quelques méga-octets, les allemands de farbrausch sortent une démo de grande qualité en quelques dizaines de kilo-octets !

Une démo 3D, c’est du code, des données, des images et du son. Regardons en détail les différents éléments pour comprendre cet exploit.

Au niveau du code, l’avantage des démos PC, c’est qu’elles peuvent utiliser les librairies 3D du système, Direct X dans ce cas. Pas besoin de développer et d’inclure un moteur fait par ses soins (comme le faisaient les démos ST, Amiga, ou les premières démos de Future Crew).
C’est toujours cela de gagné, et on peut se concentrer sur les scènes. Ensuite, fabraush a amélioré un compresseur existant (UPX) pour réduire au maximum le programme.

Pour les données, il faut savoir que les objets 3D sont modélisés par des triangles appelés facettes. Chaque objet est composé de dizaines, voire de milliers de triangles. On stocke les coordonnées spatiales des 3 points du triangle, et cela peut représenter un gros volume d’information.
farbrausch a utilisé une autre approche : les scènes sont décrites par des objets géométriques simples (cubes, cylindres, cônes…) et le programme va créer à la volée toutes les facettes ! Pour les formes un peu plus sophistiquées (comme les monstres en cage ou les cornes à l’entrée du château), les formes simples sont déformées par des formules mathématiques.
Au final, 80 000 triangles sont générés, représentant 5.7 Mo de données !

Modélisation 3D

Modélisation 3D

Pour créer ces scènes, farbrausch a utilisé un outil spécial qu’ils ont développé : the generator.

Les textures prennent énormément de place. .the.product. utilise 66 textures en 256*256, ce qui représente 16 Mo de données décompressés. Toutes les textures sont générées au démarrage de la démo grâce à des algorithmes complexes et des formules mathématiques à base de fractales. Pour simplifier, on utilise ces fractales et des nombres aléatoires pour reconstituer des textures. Voici quelques exemples des textures utilisées dans .the.product.

02 07

08 12
Pas mal, non ?

Reste la musique. Un fichier MP3 aurait pris des méga-octets, alors farbrausch a fait le choix d’utiliser des fichiers au format MIDI. Avec une contrainte de taille : 16 ko maximum ! Alors ils ont développé un plug-in pour le séquenceur Logic Audio et on réussi leur pari.
Le principe de la musique MIDI est simple : au lieu de jouer des séquences musicales numérisées, on stocke des extraits sonores très courts (samples), et les notes (do, ré, mi,…), ce qui fait gagner beaucoup de place ! Au format WAV (non compressé), les 15 minutes de son représenteraient… 159 mo !

Présenté à The Party 2000, .the.product. a été un énorme succès. En 2004, ils ont réalisé un jeu en 96 Ko (.kkrieger), puis d’autres excellents démos (fr-019: Poem to a Horse, fr-030: Candytron, fr-025: The.Popular.Demo ou même .detuned sur PS3).

Voilà pour aujourd’hui ! La semaine prochaine, nous étudierons un classique de la fin des années 80 :  Le manoir de Mortevielle.


Mots-clés: , ,

1 commentaire

  1. Setzer octobre 16, 2014 8:51   Répondre

    Je pourrais rester des heures à regarder des démos… d’ailleurs c’est ce que je fais, je crois !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *