16 Couleurs

16 Couleurs – graphisme & jeu vidéo


1 commentaire

Les flyers de la LTP 1998 et LTP 1999

En fouillant dans mes archives (imaginez un entrepôt de plusieurs centaines de mètres carrés à température et humidité contrôlées, protégé par un système de sécurité dernier cri. La conservation des catalogues de DP Tool Club est à ce prix !) j’ai pu remettre la main sur les flyers réalisés pour les demoparties LTP 1998 et LTP 1999. Les deux disposent d’illustrations de Made dans un style très différent mais toujours percutant. On peut juste regretter l’excès de texte et son manque de mise en forme sur le flyer de l’édition 1998.

Quand je trouve le temps, je numérise ce genre de documents pour les faire parvenir au projet Got Papers?, qui se dédie à la préservation des productions de la demoscene exclusivement sur support papier : flyers, magazines, lettres, autocollants, pochettes de disquettes 5 pouces un quart, etc. On y trouve beaucoup d’artefacts intéressants sur le plan culturel ou artistique et je ne peux que vous conseiller de jeter un œil (voire deux) au site.


Poster un commentaire

« Stuck on You » pour la Bally Astrocade

La Bally Astrocade (ou Bally Arcade, Bally Professional Arcade) est une console qui est à peu près inconnue en France du fait de sa commercialisation uniquement sur le marché américain, et en faibles quantités en plus.

Sa carrière commerciale fut en effet assez compliquée. Initialement lancée peu de temps après l’Atari 2600 fin 1977, elle ne sera réellement disponible qu’en 1978 pour ne rencontrer qu’un succès modeste jusqu’en 1983 où elle cesse d’être commercialisée. Les raisons de cet échec sont probablement à chercher du côté d’un prix élevé, du manque de jeux, de l’absence des grosses licences de l’époque (Pac-Man, Space Invaders…), et plus généralement de la stratégie peu claire de Bally qui ne supportera la console que du bout des lèvres avant de tout arrêter via une vente de la division quelques années plus tard. Difficile dans ces conditions de concurrencer Atari qui était alors 100% dédié à la réussite de la VCS. Dans la série « le monde est petit » : l’architecture de la console fut conçue par Nutting Associates, qui employa Nolan Bushnell et Ted Dabney pendant quelques années avant qu’ils ne démissionnent pour fonder Atari.

Si on passe outre sa maigre logithèque de 28 jeux officiels seulement, l’Astrocade est néanmoins une machine intéressante du fait de sa puissance graphique comparée à la 2600 (elle-même beaucoup plus abordable, certes), mais aussi du fait de l’existence de l’extension ZGRASS, même s’il n’est pas très clair dans quelle mesure elle fut réellement commercialisée… Cette extension qui se plaçait sous la console permettait de transformer l’Astrocade en un véritable ordinateur avec un clavier, un coprocesseur mathématique, des ports pour un lecteur de cassette ou de disquette, une extension de RAM et une ROM comprenant le langage de programmation GRASS, un dérivé du BASIC dédié à la création d’animations (dont certaines pour les premiers Star Wars) dans l’esprit de ce que sera Processing bien des années plus tard.

La console propose une résolution de 160×102 (comme la Lynx d’Atari d’ailleurs) en seulement 4 couleurs choisies parmi une palette de 256, mais il existe une fonction originale qui permet de diviser l’écran en deux colonnes de taille libre. Dans ce cas, chaque côté possède sa propre palette de 4 couleurs, ce qui amène le total à 8, du grand luxe en 1977 ! J’ai utilisé cette fonction de manière assez évidente dans mon image, Stuck on You, présentée à la @Party 2019 et je pense la toute première release sur Astrocade dans le contexte de la demoscène.

Exocet – Stuck On You (Bally Astrocade)

Pour réaliser cette image, j’ai utilisé AstroPaint, un programme de dessin en ligne spécialement dédié à l’Astrocade qui permet d’exporter l’image en assembleur Z80, ce qui est pratique pour qui veut développer pour la console. AstroPaint est utilisable mais tellement basique (un seul outil, pas d’undo…) que je ne saurais réellement le recommander.

Stuck On You sur Demozoo


5 Commentaires

Making of de Red Eyes sur Sega Mega Drive

Crédit photo : @marexpo

En janvier 2019, Remute, musicien électro basé à Hambourg, annonçait la sortie au mois de mars de Technoptimistic, un album pour la Mega Drive exclusivement disponible en édition physique, une bonne vieille cartouche donc. Outre les pistes de musique elles-mêmes, on y trouverait une interface de type music-disk et un clip vidéo pour le morceau Red Eyes qui tournerait en temps réel sur la console. Pour cela, un an auparavant il avait fait appel à Kabuto (le programmeur derrière la majorité du code de la très impressionnante démo de Titan pour la Mega Drive, Overdrive 2) et à moi-même pour la partie graphique. Difficile de refuser ce genre d’opportunité !

Graphismes 2D

Je commence par la partie la plus classique où il s’est surtout agit de garder en tête les capacités graphiques de la 16 bit de Sega, qui fête ses 30 ans cette année d’ailleurs : une résolution de 320×224 et jusqu’à 64 couleurs par plan (16 couleurs par tile) à choisir parmi une palette de seulement 512 couleurs (8 niveaux par composante RGB, comme ce bon vieil Atari STF). Pour produire les images j’ai utilisé Grafx2 qui est souvent la meilleure solution pour les plateformes old school grâce à ses fonctionnalités spécifiques.

Grafx2

Pour obtenir la trame assez originale du halo derrière le logo et d’autres éléments, j’ai eu recours à mon couteau suisse habituel, Imagemagick, ce dernier permettant en effet de générer des types de tramages sur mesure de bonne facture (voir à la fin du billet pour les instructions détaillées). À l’inverse, les résultats obtenus avec les algorithmes de Photoshop (diffusion, noise…) sont souvent décevants à cause du petit nombre de teintes disponible dans la palette de la Mega Drive.

Graphismes 3D

Le secret de cette partie c’est que la Mega Drive n’affiche pas réellement des scènes 3D comme on pourrait le croire à première vue, mais uniquement des polygones en 2D. Une technique similaire avait été utilisée par Oxygene pour leur démo STNICCC 2000 sur Atari ST. Tous les calculs de perspective, d’occlusion ou autres sont donc effectués auparavant. Pour autant, ça ne permet pas de s’affranchir des contraintes en matière de palette et surtout de complexité des scènes, puisque afficher des centaines de polygones, même 2D, à 25 images par seconde sur une machine qui n’a absolument pas été conçue pour afficher autre chose que des sprites et des tiles nécessite beaucoup de calculs et d’optimisation.

Nous avons discuté la possibilité d’utiliser un éclairage dynamique mais avons préféré y renoncer de peur que le résultat soit décevant au vu de la palette de couleurs limitée. Pour maintenir des performances correctes, je me suis efforcé de me limiter à quelques centaines de polygones généralement, qui est suffisamment léger mais permet néanmoins d’obtenir des scènes intéressantes. Au final le framerate des différentes séquences est bien meilleur qu’espéré initialement grâce aux talents d’optimisation de Kabuto. Pour plus de détails sur le fonctionnement du moteur de rendu des polygones, je ne peux que vous conseiller de vous référer aux explications très détaillés qu’il a écrites.

Blender

L’animation 3D a été entièrement modélisée et animée avec Blender avec l’objectif de générer une séquence d’images directement compatible avec les capacités de la Mega Drive : résolution et palette exactes, pas d’antialiasing, 16 couleurs par image maximum. Les valeurs RGB des matériaux ont été copié de Grafx2 pour s’assurer qu’elles étaient toutes compatibles avec la palette de 512 couleurs. Après avoir validé le workflow grâce à un petit test avec un vaisseau spatial relativement complexe, le temps était venu de se retrousser les manches et de commencer le travail sur les scènes 3D. J’avais une bonne idée du thème général, mais beaucoup d’idées sont apparues après avoir commencé à travailler sur les premières séquences, celles de la poursuite dans le désert. Remute m’a laissé carte blanche, ce qui est toujours un énorme avantage, avec comme seule requête la présence dans l’animation du robot qu’on aperçoit sur un des extraits vidéo au début du clip. Les sources d’inspiration ont été très variées, de WipeOut pour les vaisseaux évidemment, à Blade Runner et Total Recall pour l’ambiance générale, jusqu’au hangar à dirigeables d’Écausseville.

Le gros avantage quand on utilise une caméra fixe, à l’opposé d’une caméra repositionnable comme généralement dans les jeux 3D, c’est qu’on peut énormément tricher pour parvenir au résultat souhaité, avec à la clé des grosses économies en matière de polygones ou encore mieux, de temps. L’astuce la plus fréquente est l’utilisation de billboards, des formes 2D qui sont alignées avec la caméra, en lieu et place d’objets modélisés en 3D : la silhouette du personnage dans le hangar, les montagnes à l’extérieur, etc. Autre exemple, lors de la plupart des scènes où les véhicules semblent se déplacer, c’est généralement juste le décor qui défile en dessous, comme un tapis roulant, ce qui simplifie énormément la structure de ces séquences.

Storyboarder

À mesure que l’animation gagnait en complexité, il m’est rapidement apparu que j’allais avoir besoin d’un système pour maintenir une vue d’ensemble de toutes les scènes (21 initialement, chacune un fichier Blender différent – pas forcément l’organisation la plus efficace…) et de la durée totale de l’animation. J’ai pour cela utilisé Storyboarder, un logiciel gratuit de storyboard qui a parfaitement joué son rôle.

L’animation 3D devait durer exactement 85 secondes pour être en phase avec la musique. J’avais à peu près 10 secondes de rab après avoir animé toutes les scènes et il fallait donc en supprimer ou raccourcir certaines. J’ai pu économiser beaucoup de temps pour cette dernière étape en découvrant qu’on pouvait importer et exporter des séquences de PNG dans Adobe Premiere Pro, où réorganiser des séquences se fait de manière très visuelle.

Premiere Pro

Même si la masse de travail a été plus importante que prévue initialement, j’ai beaucoup apprécié travailler sur ce projet et suis fier du résultat obtenu. Nous avons réalisé quelque chose d’inédit sur Mega Drive tout en développant en 1 minute 30 une petite histoire que j’espère divertissante dans un univers cohérent.

La sortie d’une production sur support physique est rare aujourd’hui et le fait de voir la cartouche apparaître aux 4 coins du globe est un motif de satisfaction supplémentaire. Espérons que ces collectionneurs continueront d’apprécier l’album pour de nombreuses années.

crédit image : Remute

D’un point de vue plus personnel j’ai évidemment apprécié cet équilibre presque parfait entre contraintes techniques et liberté artistique. La mise en scène et le cadrage de séquences animées sont des domaines assez nouveaux pour moi et m’y frotter a été très intéressant. Enfin cela m’aura permis d’approfondir mes connaissances de Blender et de travailler dans des conditions inédites, comme pour la dernière scène avec le robot, réalisée sur une petite Surface Go lors d’un vol transcontinental.

Enfin si vous êtes à Londres le 22 juin, je ferai une petite présentation sur mon travail sur Red Eyes au London Blender Day.


Voici la ligne de commande Imagemagick que j’ai utilisé pour le tramage avec colorisation avec la palette Megadrive :

convert input.png -ordered-dither hlines2x2a,6 +remap md_pal.gif output.png

Il faut aussi éditer le fichier thresholds.xml dans le répertoire d’Imagemagick pour y ajouter les nouveaux effets de trame. Plus d’information ici.

<threshold map="hlines2x2a">
<description>Horizontal Lines 2x2 (bounds adjusted)</description>
<levels width="2" height="2" divisor="10">
3 3
9 9
</levels>
</threshold>


2 Commentaires

Revision 2019 : lutins musiciens et auto-mitrailleuses

J’ai cette année fait le déplacement pour la Revision, la grand-messe de la demoscene qui attire 700 ou 800 personnes à Sarrebruck chaque année pendant le week-end de Pâques.

Ne voulant pas venir les mains vides, j’avais  prévu de présenter un graph oldschool, un graph « moderne », et un GIF animé. Objectif un peu trop ambitieux puisque du fait du manque de temps le GIF animé a dû passer à la trappe.

Life and Death of a Gnome, 320×256 32 couleurs

Ma contribution à la compétition Oldskool Graphics fut Life and Death of a Gnome, petite scène bucolico-fantastico-aigre-douce, une sorte de The Den version mais plus sombre pour annoncer l’approche de l’été. Côté technique, c’est exactement les caractéristiques de l’Amiga 500 avec une résolution de 320×256 pixels en 32 couleurs choisies parmi une palette de 4096, le tout entièrement réalisé sous Grafx2 si on exclut le croquis de départ sous Photoshop. Le tout représente une quinzaine d’heure de travail dont le dernier tiers dans des conditions un peu chaotiques à la Revision. L’image a terminé 4ème dans la compétition Oldskool Graphics.

Can’t Stop, Won’t Stop

Toujours à la pointe du progrès, j’ai aussi présenté une image dans la compétition Modern Graphics (une catégorie un peu fourre-tout qui regroupe images 2D, 3D et dessins et peintures sur papier) : Can’t Stop, Won’t Stop. Le travail a ici été effectué avec Blender, Photoshop et Leonardo. L’image a souffert d’un manque de temps assez évident mais je pense que ce concept de la Chine des années 20 ou 30 (période à laquelle le pays a sombré dans la guerre civile entre de nombreuses factions aux alliances changeantes) et des blindés de cette période a du potentiel. Je compte bien persévérer dans cette direction.

Qui dit Revision, dit une tripotée de releases d’excellentes qualité, ainsi je ne peux que vous recommander de regarder en particulier les contributions aux compétitions Amiga Démo, excellente cette année, Amiga Intro et PC 64k, 8k et 4k. Il y a beaucoup d’autres releases dans d’autres compétitions qui valent aussi le coup d’œil. Il y en a trop de bonnes pour les lister, mais vous pouvez découvrir le tout sur Demozoo.

 


Quelques notes techniques sur la réalisation du timelapse : comme pour la vidéo pour The Den, j’ai utilisé Autoscreen, FFMPEG et Shotcut pour la réaliser, mais entre les deux premières étapes, j’ai aussi passé les images à la moulinette ImageMagick pour éviter des problèmes de proportions lors du redimensionnement des images par FFMPEG. Pour plus de détails, voir les notes à la fin de mes explications de la dernière fois.


Poster un commentaire

Forever 2019, le retour de la revanche des 8 bits

Comme chaque année, un petit coin champêtre de Slovaquie accueillait tout récemment sa traditionnelle demoparty consacrée exclusivement aux ordinateurs et consoles 8 bits, la Forever. Comme chaque année, j’ai participé à distance avec un graph pour Thomson TO8.

« Houston, we have a problem », 160×200, 16 couleurs (mode Bitmap16)

Par manque de temps, j’ai choisi de recycler un écran de titre de notre jeu pour Thomson TO8/TO9+ Mission: Liftoff qui n’avait pas été utilisé dans le jeu. Par chance, il convenait parfaitement au thème de la Forever cette année, « 8 bit aliens ».

Grâce aux dernières mises à jour de Grafx2, j’ai pu fournir ma contribution sous forme d’exécutable au format Thomson, plus précisément une image-disque avec un petit programme BASIC auto-exécutable qui affiche l’image.

Et comme nous vivons une époque caractérisée par une abondance presque sans limite, il n’y a pas une façon d’arriver à ce résultat, mais DEUX !

La méthode BIN

  • Assurez-vous que la résolution et la palette respectent les contraintes Thomson et sauvegardez l’image dans Grafx2 au format BIN : Save > MOTO > BIN
  • Créez une image-disque contenant uniquement ce fichier à l’aide de DCFDutil.
  • Chargez cette image dans votre émulateur Thomson favori (généralement DCmoto ou Téo) et tapez le programme suivant en BASIC 512 (auteur : Thomas Bernard) :
10 REM CHARGEMENT D'UNE IMAGE GrafX2
20 REM (C) THOMAS BERNARD
30 LOCATE,,0 'DESACTIVE CURSEUR
40 CONSOLE,,,,3
50 LOADM"HOUSTON.BIN"
60 REM PALETTE EN VRAM APRES L'IMAGE
70 FOR I=0 TO 15
80 BGR=PEEK(&H4000+8000+I*2)*256+PEEK(&H4000+8000+I*2+1)
90 PALETTE I,BGR
100 NEXT I
110 IF INKEY$="" GOTO 110
120 LOCATE,,1 'ACTIVE CURSEUR
130 REM AFFICHAGE DU COMMENTAIRE
140 FOR I=0 TO 31
150 C=PEEK(&H4000+8032+I)
160 IF C>=32 AND C<127 THEN PRINT CHR$(C);
170 NEXT I
180 PRINT
  • Vérifiez que l’image-disque n’est pas protégée en écriture et sauvegardez le programme sous le nom AUTO.BAT :
SAVE"AUTO.BAT"
  • Redémarrez l’ordinateur et lancer le BASIC 512 avec « B ».

La méthode TO-SNAP

  • Sauvegardez l’image dans Grafx2 au format MAP/TO-SNAP : Save > MOTO > MAP/TO-SNAP, puis même étapes que ci-dessus mis à part le programme BASIC 512 (auteur : Préhisto) qui est le suivant :
10 LOCATE,,0
20 DIM T%(10000)
30 DEFFNC(R)=MAX(-R-1,R)
40 LOADP "HOUSTON.BIN",T%(10000)
50 T=T%(10000)
60 T=T+1 : IF T%(T)<>-23206 THEN END
70 FOR I=15 TO 0 STEP -1 : T=T+1 : PALETTE I,FNC(T%(T)) : NEXT
80 T=T+1 : CONSOLE,,,,T%(T)
90 T=T+1 : SCREEN,,T%(T)
100 T=T+1 : POKE &H605F,T%(T)
110 PUT (0,0),T%(10000)
120 IF INKEY$="" GOTO 120
Image sur TO8

Et voilà la travail ! (Applaudissements)

Comme d’habitude, je recommande vivement de jeter un œil, voire deux, sur les releases de la Forever 2019 dont certaines sont réellement impressionnantes pour des machines qui ont entre 30 ou 40 ans d’âge. On notera des très bon graphs pour C64, Atari 8 bit et ZX Spectrum, plateforme qui a également été honorée par une superbe démo de Scoopex (oui, LE Scoopex mythique), malheureusement pas encore disponible.

graphs Forever 2019

‘Are you ready for Abduction?’ par Bocianu (Atari 8 bit) et Aliens Inside Us par CVM / ZeroTeam (ZX Spectrum)

Côté Thomson, on a pu y découvrir un graph de Pulkomandy, qui a aussi présenté un jeu à la Game & Watch dans une fast compo, et une démo / slideshow de Puls qui, dans la lignée de TO8 deMODed il y a deux ans, repousse encore un peu plus les limites en matière sonore sur Thomson en proposant la lecture de fichiers MOD dans une meilleure qualité et sur toutes les machines TO, dont l’antique et faiblard TO7/70 !


Mise à jour du 3 mai 2019 :

Les choses avancent rapidement, il y a maintenant une autre méthode pour afficher une image sur une machine Thomson, encore plus simple : l’outil en ligne MO/TO IMAGE TO BASIC qui génère directement le code BASIC nécessaire. Merci à Giuseppe Stassi pour cette solution très pratique.


3 Commentaires

Silly Venture 2018

Voici quelques petites créations avec lesquelles j’ai contribué à deux démos pour Atari 2600 présentées à la Silly Venture 2018, demoparty Atari qui s’est tenue au début du mois dernier à Gdansk en Pologne. Il y a au maximum 2 couleurs par lignes comme c’est la norme sur la VCS (voir mon billet sur le graphisme pour Atari 2600 pour plus de détails).

Les deux démos sont parmi les plus intéressantes sorties sur l’Atari 2600 mais pour des raisons complètement différentes.

M (Pouët, Demozoo) par Flush est réellement novatrice pour son contenu artistique, avec une véritable petite histoire, beaucoup d’humour et un design cohérent, autant de choses qui sont délicates à obtenir sur une machine aussi limitée que l’Atari 2600.

Alpha Cucks (Pouët, Demozoo) par Dentifrice propose quant à elle un concentré d’exploits techniques présenté en moins de trois minutes avec des effets jamais vus sur la machine comme le raycaster (partie à la Wolfenstein 3D) et le zoom sur les sprites avec effet de transparence.

Mon apport à ces productions n’a été que marginal, 99% du travail ayant été fourni par les talentueux membres de Flush et Dentifrice.

La Silly Venture a comme d’habitude permis la sortie nombreuses productions Atari impressionnantes comme Lockup, une démo au style modern qui tourne sur un Atari Falcon de base ou R0x Zero, un superbe jeu pour Atari STE. Je ne peux pas toutes les nommer et je vous conseille donc d’aller jeter un œil sur la page de Demozoo consacrée à l’événement.