Historiks #06 : Ingrate attitude!

Historiks #06 : Ingrate attitude!

TL;DR

Cet article, dans la continuité du précédent, fait l'étude de "Memory Full", un livre qui prétend décrire l'histoire de la demoscene CPC.

L'auteur aurait pu se contenter dans son livre de décrire le résultat de ses investigations académiques sur certaines techniques utilisées dans les jeux.

Il va sans dire que ce travail aurait sans doute davantage eu sa place dans un livre entièrement consacré à l'histoire des jeux vidéos du CPC.

Si ce travail présentait un intérêt, l'auteur s'est malheureusement livré à des comparaisons douteuses entre les programmeurs de jeux et de démos en sous entendant que des demomakers ingrats ont repiqué des choses dans les jeux lorsqu'ils ne sont pas passé à côté de ces trésors et ils se sont montrés très ingrats...


Les ingrats du scrolling hardware !

L'auteur s'étonne de l'ingratitude des premiers demomakers :

💬
"Au total, c'est dans plus de 50 jeux que l'on pourra trouver des scrollings hardware avant que le premier n'apparaisse dans une démo courant 1988. Le plus étonnant reste l'absence de référence à ces prouesses hard dans les démos qui jouaient sur le même terrain, alors qu'il s'agissait souvent de jeux très connus". Memory Full, page 16

Histoire de saisir l'absurdité du propos, petit retour d'ascenseur...🛗

🤪
"Au total, c'est dans plus de 50 démos que l'on pourra trouver des scrollings hardware avant que le premier n'apparaisse dans une démo signée Vanity courant 2006. Le plus étonnant reste l'absence de référence à ces prouesses hard dans ses démos qui jouaient sur le même terrain, alors qu'il s'agissait souvent de démos très connues"

Des demomakers ingrats auraient il été jusqu'à voler des routines, comme certains le faisaient déjà pour les musiques ???

💬
"Alors pourquoi ne pas en profiter pour également y puiser quelques routines ? Si la pratique a peut-être existé, personne ne s'en est vanté, et dans tous les cas, ils ont manqué les techniques les plus impressionnantes !" Memory Full, page 16

Histoire de saisir l'absurdité du propos, retour d'ascenseur...🛗

🤪
(en référence aux démos de l'auteur) "Alors pourquoi ne pas en profiter pour également y puiser quelques routines ? Si la pratique a peut-être existé, personne ne s'en est vanté, et dans tous les cas, Shap avait déjà tout expliqué en détail"

L'auteur aurait peut-être pu vérifier les similarités dans le code avant de suspecter un "puisage" de routines dans les si riches nappes phréatiques des jeux vidéos.

De manière récurrente, il s'étonne que des demomakers se soient attribués le mérite des scrollings hardware sans "citer" les jeux dans lesquels ils avaient trouvé ces "routines".

Quelle bande de gougnafiers !

Du coup, il est "étonnant" que les démos Vanity ne fassent pas référence à ces "prouesses" en remerciant les "inventeurs 🤪" de techniques comme la RLAL ou la RVI ? Je rassure l'auteur, on n'a rien demandé !

De nos jours, il est plus facile de citer ses sources. Le Compendium apporte aujourd'hui une connaissance technique sur le CPC qui va bien au-delà de quelques articles dans le magazine Amstrad 100% entre 1990 et 1993.

Pourtant, des personnes qui prétendent être objectives ou avoir une approche journalistique l'ont passé sous silence au mieux, moqué au pire. De là à imaginer que certains pourraient avoir "puisé" des informations sans s'en "vanter". Je vous invite à relire ce billet.

Enfin, j'ai cherché, toutefois sans en trouver trace, une référence à Rhino lorsque la démo "Vanity" OSC #2 a repris une technique imaginée par ce dernier dans sa démo Batman Forever ...

⚠️
Pour les techniciens, la technique en quesion consiste à faire du yoyo avec le registre 2 du CRTC afin d'augmenter la précision de positionnement horizontal des pixels du mode graphique 0 du CPC, permettant ainsi de "créer" une précision "sub pixel" entre 2 lignes.

Les ingrats de la rupture (épisode 1)

💬
"Comparativement, dans le monde de la démo, il faudra attendre juin 1988 pour voir apparaître la première rupture dans Final Creation de NWC, puis une seconde fois dans Longshot Demo en juillet 1989." Memory Full page 15

Comme on l'a vu précédemment l'auteur "suspecte" que des demomakers ont pu se "servir" dans les jeux sans y faire référence et piquer des routines sans s'en vanter lorsqu'il évoque les scrollings hardware.

Les 4 premiers codeurs concernés par ces remarques sont donc NWC, JLCS, Damir Petkovic et moi-même.

Il sait pourtant très bien que NWC et JLCS ont trouvé la technique de la rupture dans le jeu Génocide et que je l'ai trouvé dans le jeu Skateball.

Pourtant, cet aspect des choses aurait mérité un réel travail d'investigation honnête plutôt que de faire ce type d'insinuation douteuse et péjorative.

En janvier 1988, le journal ACU expliquait quelques principes de la technique de rupture en utilisant en partie des vecteurs du firmware, tout en détaillant le principe de l'overflow R7 :

Amstrad User Janvier 1988

L'ingrat du splitraster !

Après les ruptures, l'auteur s'attaque aux split-rasters...

💬
"Et après les rasters, les split rasters, eux aussi diffusés pour la première fois dans un jeu alors que, pendant des années, la Longshot Demo (juillet 1989) passait pour le premier programme à introduire cette technique. Quelle surprise, donc, de découvrir dans le menu de The Munsters (avril 1989), un jeu plutôt quelconque, des split rasters qui défilent dans un scrolling en fullscreen horizontal au bas de l'écran ! Un effet plutôt discret, et qu'avec un peu d'astuce on aurait pu reproduire avec un color cycling puisqu'il est appliqué sur une zone mode 0, mais qui est bien là." Memory Full page 10

Un peu d'astuce et du "Color Cycling" ? 😂

"Mais qui est bien là" / " passait pour..." !! 😂

Une petite tisane s'impose...

💬
"Les split rasters sont quant à eux incontestablement les premiers à être diffusés dans une démo, même si le jeu The Munsters en affichait déjà en avril 1989" Memory Full, page 52

Les lecteurs n'avaient sans doute pas déjà compris en page 10... 🙄

Pour résumer le propos, il semble donc que la "Longshot Demo" usurpait aussi le mérite de la technique de splitraster car elle existait déjà dans un jeu.

Vraiment "élogieux", ce bouquin...


Les ingrats de la rupture (épisode 2)

L'auteur semble s'agacer spécifiquement sur la "Longshot demo":

💬
"Si les scrollings hardware étaient assez fréquents dans les jeux, c'est en revanche le premier [Demo Remix-I] à apparaître dans une démo, avant la CPC Demo de Damir Petkovic, et en tout cas plus d'un an avant celui de la Longshot Demo. Cette dernière, datée de juillet 1989, mixera ce type de scrolling avec du page flipping afin de faire défiler son texte à l'octet." Memory Full, page 33

"et en tout cas" ? 😮

L'auteur s'offusque ici que la paternité (et le mérite) des scrollings hardware ait injustement été associée à ma démo plutôt qu'à celle de NWC...

Quelque chose me dit que je vais bientôt me faire accuser ! 🙄

L'auteur a pourtant écrit que les codeurs de jeux étaient les premiers demomakers (qui s'ignoraient) car certains réalisaient des ruptures avec des scrollings hardware, et que nous étions des ingrats.

Sur ce sujet, un commentateur grossier (dont on taira le nom) a fait la promotion de l'ouvrage en racontant publiquement que certains ont "tiré de façon plus ou moins grossière la couverture à eux". 🤪

La vérité et la justice semblent rétablis sur l'autel de la méritocratie.

On peut sans doute considérer (sans recevoir de tomates 🍅) que la "Longshot démo" a finalement introduit la technique de rupture, les split-rasters et un scroll hardware ralenti au quart de word (et non à l'octet) dans la démoscène française...

Est-il utile que je précise que je ne connaissais pas du tout le jeu "The Munsters" sans risquer une nouvelle suspicion de plagiat ? 😨


Diffusion et propagation...

L'auteur finit quand même par se poser la question de la propagation de quelques techniques dans la scène démo (par les ingrats)...

💬
"Or, il est probable que même si chronologiquement NWC fut le premier demomaker à diffuser une rupture, c'est par la Longshot Demo que la technique se propagea réellement sur la scène car la démo fut mieux distribuée." Memory Full, page 52

Si la technique de rupture s'est propagée sur la scène, c'est d'une part car la démo "Final Creation" de NWC a été "diffusée" en France en 1990, puisque la scène française a commencé à exister fin 1989.

Et d'autre part, c'est surtout car j'ai expliqué la méthode assez rapidement à tous mes contacts afin que de plus en plus de démos l'exploitent. Et c'est donc pour cette raison que tout le monde appelle ça "Rupture" aujourd'hui.

Exemple avec l'extrait d'un courrier de réponse que JLCS (Danemark) m'adressait en février 1990 avec lequel j'échangeais sur le sujet:

Extrait courrier JLCS / 22.02.1990 (un autre ingrat selon Hicks)

Un an plus tard, j'utilisais encore cette terminologie dans l'article paru dans le magazine Amstrad 100% de avril 1991.

Amstrad 100% N°36, Avril 1991

Quitte à pointer des trucs pas très propres dans l'ouvrage:

Les images ont été réalisées à partir d'une vieille version de l'émulateur Winape (2.0 beta 1). Cette version étant buggée, les couleurs sont décentrées sur CPC old. La démo CPC+ de GPA présentée est juste totalement ravagée.


Les aveugles de Trailblazzer !

Vraiment que des ingrats, ces demomakers....

💬
"Cette fois encore, il est amusant de constater que cette technique ne semble pas avoir tout de suite été identifiée par les demomakers, puisqu'il faudra attendre Pict et son fameux "3D scroll" , dans The Demo en 1991 pour en avoir une nouvelle et brillante exploitation. D'ailleurs, le parallèle entre le '3D scroll' de Pict et Trailblazer ne sembla pas s'imposer immédiatement, puisque les demomakers évoqueront souvent le premier sans référence au second." Memory Full page 10

L'auteur évoque ici une méthode qui consiste à changer les couleurs de plusieurs stylos à chaque ligne. Rien d'extraordinaire techniquement.

Il semble s'amuser de beaucoup de choses et "excuse" les demomakers CPC de ne pas avoir rendu au jeu "Trailblazzer" son mérite car personne n'avait été capable de voir que ce jeu utilisait cette technique fabuleuse.

Ces jeunes demomakers n'ont même pas eu l'idée de se rendre sur le portail CPC-Power pour utiliser son moteur de recherche, ou de lire le Compendium...🙄

Il aurait été plus intéressant et honnête d'apprendre que même si The Demo est sortie en janvier 1991, Pict (Logon System) a réalisé cette partie en octobre 1989. Il en avait eu l'idée en voyant cet effet nommé "The Highway of B0d0" dans une démo Amiga.

Par contre, il parait qu'il a trouvé la technique de rupture dans une boite de Corn Flakes. C'est un petit ingrat car il n'a jamais cité Kellogg's dans ses scrollings...


Les ingrats de la 3D !

NWC, Longshot, Pict, ...

Au tour de Face Hugger et de tous ces demomakers aveugles :

💬
"On pourra enfin observer des moteurs 3D assez élaborés dans des jeux plus tardifs comme Hard Drivin' (1990) ou Fighter Bomber (1990), tous les deux très lents. Il faudra ensuite attendre la Ultimate MegaDemo pour que les amateurs de 3D sur CPC soient de nouveau en émoi, avec une amnésie relative eu égard à tout ce qui précède, qui ne sera jamais cité dans aucun scrolling de démo." Memory Full, page 22
💬
"Pourtant, comme on l'a vu, des jeux comme Starstrike II proposaient depuis des années des routines de 3D flat d'une assez bonne fluidité, mais il n'en est jamais fait mention, comme si rien n'avait existé avant Face Hugger", Memory Full, page 111

Comme pour les autres démos, l'auteur s'étonne de ces demomakers qui sont en "émoi" devant une démo 3D en oubliant tous ces "demomakers qui s'ignoraient".

Sauf erreur de ma part, l'auteur n'a jamais cité de jeux dans ses propres démos. Il est donc plutôt "cocasse" (dixit) que l'auteur ironise en reprochant un manque de citation de ses sources et inspirations, alors qu'il n'en a pas fait de même. Sans doute cela sera t il indiqué dans le tome 2 autobiographique...

Encore de nos jours, lorsque des scrollings texte sont présents dans une démo, le contenu des textes est principalement axé sur les relations entre les demomakers, et jamais pour parler de jeux.

La culture démo n'est pas la culture jeu !

Une démo n'est pas un jeu !

A l'époque, la plupart des démos étaient réalisées assez rapidement, surtout si on considère que ce n'était ni une activité à plein temps, ni une activité lucrative, et que cela ne présentait pas de gros enjeux.

Réaliser un jeu était largement bien plus difficile, complexe et long à réaliser qu'une démo, même si certains en doutent encore...

D'ailleurs, la conception d'un bon jeu n'a que peu de rapport avec la conception d'une bonne démo, car on ne parle pas de la même chose.

Plusieurs demomakers connaissaient bien des jeux 3D mais également des démos 3D sur d'autres plateformes. C'est la production d'une démo avec de la 3D par un autodidacte au sein d'une nouvelle (et petite) communauté qui avait de l'importance. Ce n'est pas différent de nos jours d'ailleurs !

Concernant le sujet spécifique de la 3D sur CPC, très peu de jeux avaient un framerate décent. Pour beaucoup de demomakers, ces jeux n'étaient donc pas des références. Le graal en démo restait de pouvoir gérer des effets 3D au frame, ce qui s'avère assez difficile, même de nos jours.

La 3D sur Amiga ou Atari était agréable visuellement car elle était fluide. Même chose pour de nombreux effets softs comme les scrollings virevoltants qu'on pouvait admirer sur Atari ST et qui demandaient beaucoup de ressource CPU.

La démo Ultimate Megademo, aussi excellente et révolutionnaire était-elle, n'échappait pas à ce problème de framerate sur CPC. Face Hugger avait d'ailleurs prévu des touches pour supprimer les reflets ou même réaliser les effets 3D sans musique afin de gagner un peu de vitesse.

Evidemment, l'auteur ne peut pas savoir grand chose sur ce sujet car il ne correspondait pas avec Face Hugger (il ne savait pas encore lire à l'époque).

Il a par ailleurs écrit en page 111 que nous avions insulté Face Hugger. 🧻

J'avais abordé précisément avec lui ce sujet du framerate, comme on peut le voir sur ce courrier ou figurent certaines caractéristiques des objets 3D animés :

Face Hugger / Ultimate MegaDemo Framerate / 15.09.1992
Face Hugger / Ultimate MegaDemo Framerate / 15.09.1992

Face Hugger avait une conception des démos assez similaire à la mienne.

Contrairement à ce que peut affirmer l'auteur au début de son ouvrage pour qualifier l'esprit "démo", ce dernier ne voyait pas la demoscène comme un champ de bataille ou tout n'est qu'une question de compétition féroce.


Une histoire de rupture!

Une histoire que vous ne trouverez pas dans le roman...

Début 1988, j'ai travaillé pour UBI SOFT dans le cadre de mon stage de fin d'études. Je travaillais sur la version PC du jeu SKATEBALL.

A l'époque, il fallait se démerder avec ce qu'on avait. Lorsque j'ai débarqué dans les locaux de Créteil, Yves GUILLEMOT, le big boss de UBI, se trouvait déjà au C.E.S de Las Vegas pour rencontrer le patron de la société EPYX, spécialisée dans les jeux de sports.

UBI SOFT devait démontrer sa capacité à produire une sélection de jeux, dont SKATEBALL. Dès le jour de mon arrivée, j'ai donc du fournir très rapidement un code capable d'afficher un scrolling avec une animation de joueur qui marquait un but, pour que tout ça soit envoyé en express aux Etats-Unis par le premier avion ! 😬

J'ai donc créé en quelques heures un "clip" animé en Turbo Pascal truffé d'Inline assembleur pour réaliser un scrolling software sur lequel j'animais 2 sprites à la truelle sur les zones neutres de l'écran. Le résultat était assez terrible, mais l'animation a du convaincre le patron de la société EPYX car je me suis retrouvé en charge du jeu. 😬😬😬

Quelques jours après, j'étais "expédié" avec une petite troupe de développeurs et de graphistes dans un studio de développement situé dans le Château de la Grée de Callac, situé près du fief d'origine de la famille GUILLEMOT.

Le château d’Ubi Soft

Les scrollings hardware étant classiques pour le CPC, j'avais déjà expérimenté le sujet, et j'ai donc décidé d'opter pour la même méthode sur PC, puisque le CPC utilise quelques circuits communs (CRTC 6845, PPI 8255, FDC 765).

[ Déplacer 16 kilo-octets avec un 8088 à 8 Mhz sur une carte CGA en ISA était à l'époque plus lent que la même action effectuée sur un CPC ! ]

A l'époque, les développeurs étaient pour la plupart des autodidactes. Il n'y avait aucune structure de "management", de gestion de projet ou même de cahier des charges. On était "super agile" en face d'une maitrise d'ouvrage en roue libre totale.

C'est pourquoi, en cours de portage, de nombreuses demandes d'évolutions ont eu lieu sans la moindre considération des conséquences en terme de délais et de charge de travail.

L'une de ces demandes consistait en l'ajout d'une zone fixe en bas de l'écran 😬 (un HUD dans le jargon ludique). Ce choix avait surtout été "décrété" par Hervé DUDOGNON, le programmeur de la version ATARI ST "refondue" à partir de la version originale en STOS BASIC.

Hervé, aidé de l'excellent graphiste Orou MAMA, avait pris le "lead" de la direction artistique du jeu. Il cherchait un moyen de "réduire" l'énorme quantité de mémoire à déplacer pour réaliser le scrolling horizontal du terrain, et ainsi améliorer le "framerate" de la version ATARI ST. Et d'une pierre deux coup, cela permettait également de créer une équipe de joueurs.

Eric Cubizolle (Titan), également un excellent graphiste sur CPC a fait un article sur le sujet de ce HUD pour ceux qui veulent en savoir un peu plus :

AmstradMuseum TITAN : SkateBall

Cette redéfinition du cahier des charges a été plus ou moins bien accueillie selon les plateformes. Si un ZX SPECTRUM profitait, au même titre que l'ATARI ST, de la réduction de la zone de scrolling, il fallait sur les autres plateformes utilisant du "scrolling hardware" sur la totalité de l'écran de disposer d'une technique complémentaire de rupture pour ne pas avoir à tout réécrire en "soft".

Sur PC, les cartes CGA étaient dotées de 16 kilo-octets de mémoire vidéo en tout et pour tout (contre 64 kilo-octets pour un CPC). En dehors de cet espace mémoire, c'était le vide intersidéral.

Sur la carte CGA, j'ai contourné le problème de mémoire en "déplaçant" le HUD de manière software et synchronisée avec le balayage pendant le scrolling hardware pour donner l'illusion qu'il ne bouge pas, mais cela imposait que le jeu reste constamment au frame à 60Hz :

Skateball PC CGA - Scrolling hardware multidirectionnel (c'est le HUD en bas qui bouge)

Les cartes EGA, dotées de plus de mémoire vidéo, permettent de réaliser nativement de la rupture, du redimensionnement de ligne et du retard vidéo pour ralentir les scrollings horizontaux :

Prototype Scroll avec Rupture sur PC EGA - Le HUD est au début de la ram vidéo

La version CPC du jeu a été développée bien après les autres, au point que la photo d'écran présentée sur la jaquette de certaines versions CPC est celle du PC.

C'est en juillet 1989 que UBI SOFT m'a envoyé cette version pour que j'en teste la protection. A cette époque, j'ai fait la connaissance de RUBI, qui avait vendu la protection de la version française du jeu à UBI SOFT.

Par curiosité, j'ai donc regardé comment Jon MENZIES avait réglé le problème du HUD et j'ai rapidement vu qu'il avait réussi à créer une rupture sur le CRTC 6845.

Ayant été confronté de près au sujet, j'ai rapidement vu que le scroll n'était pas software, mais que Jon avait cependant réussi à modifier l'adresse en cours de balayage.

On voit avec cet exemple qu'il n'était pas forcément évident d'identifier l'utilisation d'une technique donnée dans un jeu, contrairement à ce que l'auteur du roman essaie de faire croire avec 30 ans de recul.

Sans avoir été impliqué dans le développement de ce jeu, je n'aurais certainement jamais cherché à jouer à ce jeu, dont je trouve personnellement l'intérêt assez moyen, et je n'aurais donc pas pointé cette technique.

Jon MENZIES, qui gérait son scrolling dynamiquement, avait du régler le problème de vitesse excessive du scrolling et avait opté pour la solution R3. Dans un jeu occupant 64k il était en effet impensable de gérer le ralentissement en consommant 16 k de plus.

Même en masquant habilement le décalage, la méthode provoquait un petit tremblement sur les CTM (notamment sur CRTC 1) et pire sur d'autres moniteurs, comme le mien à l'époque. Pour cette raison, je n'ai jamais utilisé cette méthode dans mes démos.

Si on résume cette petite histoire, c'est quand même à cause du framerate pourri de l'ATARI ST que les ruptures ont débarqué dans la demoscene CPC française à partir de 1989. 😁


Si certains pensaient qu'il n'y avait ni potins ou ragots diffamatoires dans cet ouvrage, je les invite à lire mes prochains billets !

Longshot / Logon System