It Came From Planet Zilog est une démo GBC que j’ai eu la chance de pouvoir réaliser en collaboration avec Dalton et Zabutom. Sortie à la Revision à Sarrebrück en Allemagne le week-end dernier, elle a remporté la deuxième place de la compétition démo « oldskool » (machines avec un CPU 16 bits ou moins).
J’avais déjà eu l’occasion de travailler avec Dalton sur d’autres productions pour la portable de Nintendo : Space Waste en 2003 sous le label Octarine et Mental Respirator en 2005 sous le label Phantasy.
Les 10 ans d’interruption nous ont permis de fourbir nos armes et surtout de proposer cette fois un résultat beaucoup plus cohérent avec un thème unique et même un semblant de scénario ! Comme le titre le laisse entendre, la démo est un clin d’œil aux films de science-fiction des années 50 et après : ambiance soucoupes volantes et petits gris, donc. Certains effets sont je pense totalement inédits sur GBC et Dalton a fait un excellent boulot avec les transitions entre les différentes parties.
Ça aura été un gros projet pour moi puisque j’ai fourni tous les graphismes pour la démo (images plein écran, sprites, logos, fontes, textures… sans recyclage pour une fois !). J’espérais pouvoir réaliser une autre image plein écran, mais le manque de temps en a décidé autrement. La seule partie terminée est visible ci-dessus, les soucoupes volantes avec le fond violet. Comme pour la plupart des machines 8 bits, le graphisme sur Game Boy Color nécessite de respecter un certain nombre de règles : Pour le background:
- Résolution de 160×144 pixels
- 4 couleurs maximum par bloc de 8×8 pixels, dans une seule palette
- 8 palettes de 4 couleurs maximum (la limite la plus handicapante en pratique)
Pour les sprites :
- Constitués de blocs de 8×16 pixels
- 3 couleurs maximum par bloc, une couleur étant réservée pour la transparence
- 8 palettes de 3 couleurs maximum pour tous les sprites.
- Maximum de 10 sprites sur la même ligne et de 40 en tout (à confirmer)
En pratique on peut combiner sprites et background même sur des images fixes pour disposer de plus de couleurs, avec un maximum théorique de 56. L’image du petit gris avec les électrodes reliées à une Game Boy, utilisée pour l’introduction, a recours à cette technique : la console et une partie des électrodes sont affichées avec des sprites, le reste fait partie du fond. Il existe également un mode graphique non officiel qui permet limite la taille des blocs à 8×1, ce qui donne un peu plus de flexibilité. L’image avec la tête de robot marron utilise cette astuce, mais plus par nécessité après une mauvaise estimation de ma part du nombre de palettes nécessaire… Autre chose à garder en tête, l’écran de la GBC n’étant pas rétro-éclairé (même si ça peut s’arranger), le rendu des couleurs est assez médiocre avec des blancs qui ne le sont jamais vraiment et des teintes sombres souvent grisâtres. En conséquence, mieux vaut ne pas lésiner sur le contraste et la saturation.
Créer des graphismes pour la Game Boy Color est en théorie possible en affichant juste une grille de 8×8 pixels et en faisant très attention de ne pas se mélanger les palettes, mais Dalton m’a fourni quelques scripts Python pour tester les images et détecter les éventuelles erreurs qui m’ont permis de gagner beaucoup de temps.
Comme d’habitude, l’idéal est toujours de pouvoir regarder la démo sur le hardware d’origine, mais c’est assez compliqué avec la GBC qui nécessite du matériel dédié, assez difficile à trouver à présent. Côté émulateurs, je conseille BGB, utilisé de manière intensive lors du développement de la démo, qui fait tourner tous les effets parfaitement et simule le rendu des couleurs de l’écran de la console.
- It Came from Planet Zilog sur Demozoo et Pouët
- Game Boy Demospotting : catalogue très complet de démos GB/GBC/GBA
- Télécharger la ROM GBC
8 avril 2015 à 07:19
Superbe démo au style très cohérent et très léché ! J’ignorais que tu travaillais sur un tel projet. Les restrictions graphiques de la GBC m’intriguent (cette notion de palette par bloc c’est tellement étrange pour moi) mais tes dessins tirent le maximum de chaque support. Un vrai délice !
9 avril 2015 à 08:18
Merci, content que la démo te plaise ! Ça a été vraiment sympa de bosser à nouveau pour une production sur une plateforme exotique pour la demoscene.
Les restrictions par bloc sont plutôt la norme sur 8 bit (Thomson, ZX Spectrum, C64 aussi je crois) et ça a du être un sacré soulagement pour les graphistes quand les ST et Amiga sont sortis 🙂
9 avril 2015 à 08:39
Et sauf erreur de ma part sur les systèmes 8 bit la souris n’existait pas, ouch ! 🙂
9 avril 2015 à 10:07
Exact ! La galère pour dessiner au clavier ou au joystick…
12 avril 2015 à 10:20
superbe j’adore ! exocet président 🙂
13 avril 2015 à 12:41
Merci Monsieur Yogi Beer ! J’espère qu’on aura l’occasion de rebosser sur une prod Thomson à l’occasion.
13 mai 2015 à 20:11
Il y avait un moyen aussi pour afficher plus de couleurs à l’écran avec les backgrounds. Je ne me rappelle plus des détails exacts mais il s’agissait d’un algo assez destructif et utiliser ce genre d’images limitait le nombre de ressources dispos pour les sprites assez drastiquement. J’avais utilisé ça avec des images dessinées en 256 couleurs pour deux écrans dans Merlin sur GBC….il y a fort longtemps. Si mes souvenirs sont bons cette techniques avait été utilisée aussi pour Alone In the Dark GBC.
14 mai 2015 à 14:10
J’avais aussi remarqué que quelques jeux utilisaient cette technique à la fin de la carrière commerciale de la GBC, toujours pour des images fixes: à part Alone In The Dark et Merlin, je me rappelle également de The Fish Files et The New Addams Family, deux point and click. Effectivement on distingue pas mal de « bavures » sur les images, donc il semble y avoir de grosses contraintes en terme de palettes par bloc ou de scanline…