La taille compte ?

La taille compte ?

Je pense pouvoir affirmer sans trop me tromper que Overflow a beaucoup apprécié le petit exercice proposé par Logiker fin 2023 avec le « Vintage Computing Christmas Challenge ».

Pour la petite histoire, lorsque les ordinateurs ont commencé à devenir assez puissants au milieu des années 90, les limites techniques n’ont plus vraiment eu de sens dans le monde de la démo. Des limites logiques ont alors été utilisées pour définir plusieurs catégories de démos.

Ce type de limitation est hérité de l’ère « oldschool », puisque déjà au début des années 80, il existait des concours en Basic de « 2 lignes maximum », notamment dans le journal Hebdogiciel: 

HEBDOGICIEL, les listings
les listings de la revue HEBDOGICIEL

La limite logique la plus commune consiste à limiter la taille autorisée du code pour créer un chef d’oeuvre impérissable. Plus la taille diminue, plus les choses deviennent complexes selon la plateforme et ce que l'on souhaite réaliser.

Il existe ainsi des catégories de démos de 16 octets et de nombreuses déclinaisons. Les plus réputées sont souvent des productions de 256 octets, de 4 kilo-octets et de 64 kilo-octets, mais les catégories sont déclinables à l’envi.

Plus la taille maximum autorisée descend, plus il devient difficile de proposer une production de qualité équivalente à une même production réalisée sans cette contrainte. En-dessous d’une certaine taille, il devient impossible de « feinter » en utilisant un compresseur de données. C'est vrai dès lors que l’espace occupé par la production et son décompresseur incorporé est à bilan nul. Pour calculer ce bilan, il ne s’agit pas seulement de comptabiliser la taille du code compressé + la taille du décompresseur, mais il faut tenir compte du code que prendrait la démo non compressée pour éparpiller des bouts de code dans la mémoire (ce que le décompresseur réalise implicitement).

Une démo emblématique est très certainement la démo « Elevated » (Windows) réalisée en 4 kilo-octets, et qui a provoqué un séisme lors de sa sortie en avril 2009 en popularisant cette catégorie de démo, même au-delà de la demoscene:

Demo Windows Elevated (4 k)

De nombreuses autres démos ont suivi, dont celle-ci en avril 2018 :

En dessous d’une certaine taille, et selon les plateformes utilisées, l’ajout de son ou d’une musique consomment les précieux octets nécessaires à la réalisation de l’effet graphique, mais des symbioses réussies existent.

Enfin, il existe également des catégories de production définies, comme la production d’une image fixe ou la production d’une musique seule.

Pour revenir au CPC, Overflow avait déjà excellé en 2012 dans le genre avec une production de 4k qui présentait un plasma de toute beauté. Le titre de cette démo ("Yet Another Plasma") indiquait déjà que c'est un effet dont les CPC-istes ne se lassent pas.

Yet Another Plasma! by Logon System
4k for Amstrad CPC, released in october 2012

Une démo de 256 octets sortira 1 mois après, en novembre 2012, avec un autre plasma. Décidément! Quelques personnes bienveillantes la commenteront sur le portail "Pouet" en parlant de "demo spirit" pour faire référence explicitement à la démo de Overflow. Sympathique ambiance !

Plasmaminus by Arkos
256b for Amstrad CPC, released in november 2012

La « Lovebyte » est un évènement célébrant ce type de défi et axé majoritairement sur les productions de 256 octets et moins. L’évènement est suivi sur la chaine « Twitch » par de nombreux passionnés.

Lovebyte 2024 - 9-11th February 2024 : Where size matters

En 2024, c’est durant le week-end du 9 au 11 février 2024 qu’ont été présentées les différentes productions. Sur CPC, il y a eu plusieurs productions de différentes taille et catégorie.

Je m'excuse par avance si j'en oublie sur CPC. Certaines sont passées vite et ne sont pas encore disponibles sur le portail "Pouet".

BSC (Beta Soft Cologne) a présenté une "256 bytes" musicale expérimentale nommée "Synfonee" que je trouve très intéressante et particulièrement étonnante pour le CPC. Il a également participé avec une "128 bytes" nommée "Pattern Mash" qui porte assez bien son nom.

Symfonee by Symbiosis & Godless Cracking Service
256b for Amstrad CPC, Lovebyte 2024
Pattern Mash by Symbiosis & Godless Cracking Service
128b for Amstrad CPC, Lovebyte 2024

Optimus a pour sa part présenté pas moins de 4 productions de différentes tailles. Une première de 32 octets nommée "Fizzy" qui m'a laissé un peu perplexe. Une seconde de 64 octets nommée "Sea Pyra" avec un paysage défilant qui tire davantage selon moi sur les pyramides que sur les vagues, une troisième de 128 octets nommée "Pond" qui montre une simulation animée et étonnante d'ondes concentriques, et enfin une 4ème de 256 octets nommée "Periergoid", qui présente plusieurs effets dont des fractales.

Sea Pyra by optimus
64b for Amstrad CPC, Lovebyte 2024
Pond by optimus
128b for Amstrad CPC, Lovebyte 2024
Periergoid by optimus
256b for Amstrad CPC, Lovebyte 2024

Madram a présenté une production de 256 octets nommée "Chernobyl Z86" qui présente un affichage de traits avec du color cycling à la façon de ce qu'on pouvait trouver sur un disque de démo qui était fourni avec le CPC lorsqu'il était commercialisé, et une autre de 1024 octets nommée "Conscience" que je n'ai pas encore vue.

Overflow a présenté 2 productions de 256 octets chacune, nommées respectivement "Logonite" et "Plasmine" :

Logonite by Logon System
256b for Amstrad CPC, Lovebyte 2024
Plasmine by Logon System
256b for Amstrad CPC, Lovebyte 2024

Le making-of de chaque production est disponible pour les plus curieux.

Le premier explique comment il s’y est pris pour arriver à loger une « mini-Logon’s run musicale » dans ces 256 octets. Musical est cependant un bien grand mot. Ce n’est pas Shap qui va me contredire !

Le second making-of explique la méthode utilisée pour revisiter un nouveau type de plasma assez sympathique à regarder sur CPC, et ce toujours en 256 octets.

Pour ceux qui souhaitent approfondir le sujet sur les optimisations, il existe des espaces de discussion sur ces sujets, notamment sur le discord « Sizecoding ». Le chapitre 23 du Compendium peut aussi être assez utile.

Lovebyte is in the air...

Bravo à tous les participants qui me liront !

Longshot / Logon System