mardi 26 janvier 2010

Haikai de code 2 - La scène démo 64K

La culture de la "démo" s'enracine très loin dans l'histoire de l'informatique personnelle. C'était les années 80 - donc à rebours c'était cool - et si tu voulais avoir un jeu piraté, tu devais connaître quelqu'un à l'école qui connaissait quelqu'un qui avait un cousin à Québec qui avait un grand frère à Montréal en informatique qui connaissait un gars dans ses cours qui se connectait par téléphone sur les BBS américains où il y avait du monde qui se branchaient en Hollande, en Finalnde ou au Danemark où, va savoir pourquoi, tous les jeux crackés avaient l'air de venir. Et puis là t'allais voir le gars à son casier un mardi matin et il sortait de son sac ta copie de la floppy 8 pouces de Barbarian sur Commodore 64. À la fin de la journée tu rentrais chez vous, t'enlevais même pas ton manteau, tu bootais le jeu et LÀ, juste avant que le jeu commence, l'équipe de hackers faisait sa fraîche avec des animations super cools ou super gossantes, c'était selon. Et voilà, cette petite animation, c'était ton premier contact avec la culture du démo. Celle-ci est apparue comme ça, comme signature pour des pirates qui, loin de se satisfaire de ce travail de contournement des mesures de sécurité des jeux les plus hots du moment, essayaient aussi de se dépasser en exploitant au maximum les ressources graphiques de la machine.

Mais la scène démo est rapidement devenue complètement indépendante de la scène du piratage de jeux pour s'engager dans une course à l'exploit technique, une compétition constante entre les groupes d'animateurs et de programmeurs. Une des disciplines de la scène démo consiste à en faire le plus possible avec le moins possible. Et le moins possible, sur cette scène, c'est une fichier de 64K.



Le petit film qu'on peut voir ici n'a pas été construit avec des logiciels de 3D. Il est le résultat d'un script uniquement fait de lignes de codes dans lesquelles sont définis un à un chacun des paramètres vidéo et audio, chacune des textures, chacun des mouvements, chacune des séquences, chacune des notes, timbres et structures de la pièce musicale. Et ce script, c'est ici qu'il convient de tomber en bas de sa chaise, ne fait que 64K. À des fins de comparaison, la capture vidéo en basse résolution de l'exécution de ce script en basse qualité qu'on peut voir sur Youtube fait, elle, 9331K. Ça veut dire qu'un fichier de code de taille équivalente pourrait contenir le script de 146 vidéos de longueur équivalente, soit la durée d'un rave d'à peu près 10 heures (oui, car l'esthétique est pas mal souvent techno 90s).

Pour comprendre le degré de pureté et d'inventivité dans l'écriture du code que demande un demo de 64K, il faut prendre un autre petit détour de conversion. 64 kilobytes, c'est l'équivalent de 65 536 caractères en ASCII, espaces compris, soit à peu près 17 pages de texte à simple interligne en Times 12.

Premier niveau de difficulté. En 17 pages, on peut dire beaucoup de choses, mais il faut imaginer aussi que ces pages doivent contenir toute l'information technique sur la manière dont on doit lire le texte, à quoi il renvoie, où il commence, où il finit, à quelle vitesse on doit le lire, sur quel ton. En fait comme si ce texte était lu par quelqu'un qui sait lire sans posséder aucune intuition, aucun jugement, aucun souvenir de n'avoir jamais lu de texte. Ce lecteur autiste, c'est l'environnement DirectX qu'exploite la scène Demo 64K, une collection d'applications qui assurent le lien entre des directives multimedia de toutes sortes et son affichage en temps réel sur une interface vidéo.

Deuxième niveau de difficulté. DirectX est bon mais il est prompt. Il n'improvise pas, alors il faut pratiquement tout lui expliquer de A à Z. Pour comprendre toute la complexité de ces directives, il faudrait imaginer quelqu'un qui décrirait un film exactement dans ses moindres détails, les mouvements de caméra, les personnages, comment ils sont habillés, quels sont leurs mouvements exacts, quelles notes exactes sont jouées durant chacune des scène par chacun des instruments, etc. Et tout ça, toujours, en 17 pages.

Comment s'y prennent les programmeurs de Demo? Ils ont développé tout un ensemble de raccourcis à peine croyables dans leur élégance et leur efficacité. Pour la musique comme pour les images, la répétition de motifs est utilisée au maximum mais masquée par l'introduction d'indications qui les font tellement varier qu'elles n'apparaissent plus comme telle. De la même manière, le matériau brut d'une séquence musicale peut être récupéré pour faire varier une texture en arrière-plan, etc. (S'il y a des informaticiens qui lisent, est-ce qu'ils pourraient me dire si je me fourre complètement là-dessus?)

Restez syntonisés pour la suite et la fin de la série "Haikai de code".

8 commentaires:

  1. Merci Doctorak pour ces éloquentes évocations de notre enfance geek pré-internet. En 1989 (j'avais 10 ans) je faisais partie d'un « club informatique », c'est-à-dire que 2 gars du secondaire avaient installés un commodore 64 dans le sous-sol du presbytère de Port-Cartier, et j'avais payé 10$ pour être « membre » de leur club, ce qui voulait dire que je pouvais copier des jeux tant que je voulais. Realm of Impossibility, Defender of the crown, Conan, The Goonies, Zorro, Below the root, Boulder Dash, Drol, Maniac Mansion, Zak McKracken, Cauldron II, Aztec Challenge, Spy VS Spy, etc, etc. Je me souviens bien des demos de pirates...

    (Peut-être que tu souviens de moi - j'avais autrefois un blogue - Darnziak)...

    RépondreSupprimer
  2. Hé Darnziak! Ça fait longtemps!
    Nous on avait des Apple IIe dans le local. Quelqu'un avait un jeu copié qui marchait mais ça prenait toute l'heure de dîner à charger. Alors on aimait mieux changer le moniteur de poste pour mettre les pierrafeu et on se trouvait ben drôles d'écouter ça à l'école.

    RépondreSupprimer
  3. Ah oui, la belle époque où les ordis pouvaient être branchés sur des télés! Je n'ai jamais de Apple IIe mais mes cousins avaient des TRS-80 (connus aussi sous le joli nom de Coco 3) et des Vic-20... Une fois avec un ami dans un marché-au-puce de Montréal on avait trouvé des Commodore 16, aussi (?!?)

    RépondreSupprimer
  4. Ahhh, le bon vieux temps où les nerds utilisaient l'assembleur à Go-go plutôt que de se tourner vers le C++, beaucoup plus long mais ohhh quelle économie de place, la beauté dans toute sa simplicité, épurée jusqu'au dernier caractère.

    RépondreSupprimer
  5. J'avais un Amiga 500 et je piratais à fond la caisse, jusqu'à avoir 1500 jeux. J'en ai passé des jours ensoleillés dans le sous-sol des Saules... :)

    TV Sports Football, Barbarian, Shadow of the Beast, Leisure Suit Larry et autres Quest s'ajoutèrent aux Defender of the Crown et Spy vs Spy de ce monde.

    Capcha : soless

    RépondreSupprimer
  6. Patrick: Shadow of the Beast, mets-en! Et Gods! Populous II! Future Wars! Moonstone! Pinball Dreams! Stunt Car Racer! Castle Master! Lemmings! Speedball 2! "Ice cream! Ice cream"!

    RépondreSupprimer
  7. Bordel, j'oubliais Stunt Car Racer (maudit que j'en ai flambé du temps là-dessus) et Lemmings! Et Populous, de Bullfrog...

    Y'avait quelque chose dans tout ça qui ressemblait à un grand fixe de romans de chevalerie, sous forme d'extrait substantifique à haute densité.

    RépondreSupprimer
  8. Fuck, vous venez de me rappeler Stunt Car Racer! Je viens de checker un clip sur Youtube et j'ai eu l'étrange feeling d'avoir joué hier. Genre hier.

    RépondreSupprimer