Le Pixel-Art sur MegaDrive

@cireza
Tu pourrais tenter des décors façon point and click. Tu réalises qq décors, quelques lignes de textes, des bruitages (cuicui pour simuler la nature, klaxonnes pour les ambiances urbaines )et tu as la première Cireza production :slight_smile:

Aladdin?

chaz : Aladdin?

Ah oui tient, je vais aller jeter un oeil.

@Cireza
Vu que tu as l’air aussi interessé par l’élaboration de scénario, tu devrais essayer les aventures textuelles/graphic novel.

Plutôt que de t’emmerder à réaliser 10 000 maps, animations de personnages et gameplay complexe, tu pourrais te focaliser sur une poignée de décors aux petits oignons façon point and click, quelques choix de dialogues et un scénar’ solide.

Je pense sincèrement que tu as le niveau pour faire un bon taf’ mais est-ce que tu as encore la motivation :hugs:
(Alzheimer me guette, j’avais déjà fait un post similaire en 2020 :sweat_smile::partying_face:)

J’ai relu tout le sujet, dommage que toutes les.photos n’apparaissent plus, et je comprends pourquoi j’adore cette console et que c’est ma préférée. Vous m’avez redonné envie de jouer à certains jeux mais en observant bien les graphismes.

Je me suis déjà lancé dans d’autres projets, mais merci pour la suggestion…

1 « J'aime »

@Cireza

Ce titre à coucher dehors mdr.

Ils peuvent me contacter pour la suite j’ai pas mal d’idées de titres.

Affinity Sorrow
Sadness of Despair
Symbiotic Tears
Hope of Melancholy
Blissful Memories of Death

Petit essai histoire de voir… A quoi pourrait ressembler Phantasy Star II sur Game Gear si j’étais payé à le refaire et que j’avais un temps infini. Donc ça n’arrivera jamais.

Je me suis amusé à faire ce rendu. Non, il n’y a pas encore d’ennemi.

Pour rappel sur MD ça ressemble à ça :

« Pas de décor c’est moche ». Ouai, mais en attendant, ils économisent une palette entière grâce à cette astuce. Donc les 4 palettes de 16 sont largement utilisées par les personnages et les ennemis.

Le passage sur Game Gear est un peu douloureux. Avoir 4096 couleurs n’est pas d’une grande aide quand tu te retrouves contraint sur 2 palettes uniquement.

Du coup, je réserve une palette pour le décor et les ennemis. Une autre pour les personnages. Vu la résolution, en mettre 4 serait difficile. Si je devais refaire le jeu, ça serait avec des équipes de 3. Et puis ça changerait un peu les choses, pas la peine de faire la même chose exactement.

La seconde palette est donc réservée aux personnages, qui seront des sprites. Les couleurs sont numérotées de 0 à 15.

0 : réservée pour le trasparent
1, 2 et 3 : couleurs communes tous les personnages, j’ai opté pour du blanc, du noir et du beige clair.
4,5,6,7 : couleurs réservées du premier personnage
8,9,10,11 : couleurs réservées du second personnage
12,13,14,15 : couleurs réservées du troisième personnage

A cause du faible nombre de couleurs par personnage, une approche stylisée est quasiment obligatoire. Impossible de reproduire le style d’origine qui contient trop de dégradés. Je suis donc passé sur des personnages avec contour noir, ça aide énormément. Suite à cela, on opte pour deux fois deux couleurs en dégradé (deux bleus et deux gris par exemple). Dans ces conditions, je ne peux absolument pas garder la grille d’origine, qui est essentiellement noire. Mes contours doivent ressortir, d’où la mise à jour en 2 couleurs au lieu d’une. Je suis passé sur du vert, j’aime le vert, car le bleu c’est trop ton sur ton avec Rolf.

Pour les personnages sur les côtés, j’ai trouvé intéressant de passer sur une vue 3/4, ça donne un peu de perspective. Le résultat est que beaucoup de peau devient visible, et la nécessité d’un dégradé de beige se fait sentir. Pour Nei et Rudo j’ai donc 1 couleur pour les cheveux, 1 beige de plus, et 2 couleurs en dégradé pour la tenue.

Sur la palette décor + ennemi, il me reste donc 14 couleurs. Ça peut permettre de deux faire deux ennemis en 7 couleurs ou un seul en 14. C’est sur ces derniers que la palette de 4096 va pouvoir commencer à faire son œuvre, et proposer des rendus plus jolis que la MegaDrive. Et il reste un bel espace pour les ennemis.

Je trouve que les personnages sont très reconnaissables malgré la perte en taille et en couleurs en tout cas.

Si seulement développer pour ces vieilles machines pouvait être plus simple, c’est quelque chose que je ferai sur mon temps libre. Mais devoir gérer des contraintes hyper bas niveau en assembleur pour faire trois fois rien… j’ai passé l’âge pour ces conneries.

2 « J'aime »

Beau travail.
Ma première réaction fut :
« C’est sur quel support ce jeu Sega »
(j’ai vraiment crû que c’était une version officielle obscure de Phantasy Star 2, ce qui est bon signe :wink: )

1 « J'aime »

La vache, tes conseils arrivent pile au moment où j’en avais besoin.

Il y a peu, le créateur d’un super hack de golden axe sur master system (qui rend le jeu jouable avec tyris flare mais améliore aussi les graphismes du jeu presque au niveau d’un jeu début megadrive) à conçu un outil permettant de facilement hacker tout les asset graphique de pas mal de jeux master system en même temps que son mod.

Je me suis pris l’envie de porter sur la console le sailormoon arcade qui a un gameplay très proche de golden axe. (En remplaçant notamment les montures par d’autres sailor)

Et si recréer des décors ressemblant avec les limitations de la console a été long mais pas impossible, je me suis heurté aux sprites.

Limiter leur nombre de couleurs à 7(toujours les même)a prit un peu de temps mais au final n’a pas été très dur, mais il a fallut les réduire et pas qu’un peu vu les énormes sprites sur arcade, les personnages font en moyenne 47% leur taille initiale.

En vu la quantité de détails des sprites, réduits, ils ressemblent à des bouillies infâmes quand on zoom(et un jeu master system en plein écran, c’est zoomé 3 à 6 fois)

Demain je vais utiliser tes astuces pour retoucher les sprites (ps: si des gens sont intéressés par le projet, je dit pas non à de l’aide pour les sprites).

J’ai pas mal de petite idée de hack, par exemple, si c’était possible, j’aimerais faire un hack de shining force pour recréer shining tears et wind en tactical rpg (mais ce projet aurait plus sa place sur rpgmaker vu qu’il faudrait intégrer un system de sort combiné à la chrono trigger et des points de stat et compétences à répartir soit même après les batailles, sans oublier un système d’amitié pour débloquer des armes dans wind)

1 « J'aime »

Si tu as fait ça « automatiquement » via un logiciel, c’est normal que ça soit horrible. Tu es obligé de tout redessiner pour que ça rende bien. C’est un travail créatif/d’artiste, pour faire ressortir les éléments clefs avec moins de moyens d’expression.

le truc c’est que je suis vraiment pas doué en pixel art, les décors, ça passe très bien car ça tiens plus d’un puzzle qu’autre chose et qu’on est sur une résolution correcte, mais les personnages, c’est trop fin.

Mais ton conseil du contour noir offre un gros plus.

Je viens aussi de remarquer que reduire les sprites par morceaux (et non en un bloc) permet de bien mieux conserver les détails.

Je vais tenter de reduire les têtes des sprites de façon independante(c’est les têtes ou ça deconne le plus) et de les appliquer aux sprites.

Essai de réduction ce soir sur un dragon de Phantasy Star II. J’ai volontairement opté pour un ennemi assez gros, histoire qu’il y ait un peu de travail.

On passe d’une image en environ 80x80 à du 64x64. Pas de miracle, il faut tout retoucher soi-même. J’ai commencé par une réduction sans effet « smoothing » car ça génère des tonnes de couleurs que je ne veux pas. Je me retrouve avec un rendu un peu dégueulasse, évidemment. Ensuite, c’est une affaire de patience à tout retravailler pour faire ressortir tous les traits importants.


A gauche, après réduction sans retouche, à droite, après que j’ai bossé.

Évidemment je me suis fait plaisir avec la palette de couleurs de la Game Gear, et c’est là qu’on voit où la MegaDrive ne peut simplement pas aller. J’ai gagné en finesse sur les dégradés de manière conséquente. Je suis allé sur des couleurs plus proches les unes des autres, car je le pouvais ! Et en plus de cela, vu que j’avais 14 couleurs à disposition, j’ai pu en rajouter 2. Ce qui enfonce le clou par rapport à la version MegaDrive : un dégradé de gris supplémentaire (pour les ailes et les griffes) et un dégradé orange en plus pour les cornes et l’oeil. J’ai opté pour une gris légèrement bleuté, à la place du gris initial. J’ai aussi très légèrement viré sur le rouge dans les dégradés de vert, c’est subtil, mais le dragon parait un poil plus jaune/marron.

Le résultat est caractéristique d’une console qui dispose d’une meilleure palette que l’autre.

Au final, on ne se rend même pas vraiment compte que le dragon a été sensiblement diminué en taille.

De plus, ma couleur la plus sombre n’est pas le noir, ce qui m’évite une perte de détails importante sur fond noir.

En bref, transposer des sprites de la MegaDrive à la Game Gear ça se fait, c’est un travail de patience mais si on a à disposition une palette entière sur la Game Gear, on va inévitablement obtenir des rendus supérieurs à la MegaDrive.

Résultat final de ma scène de test :


(j’ai ajusté d’autres trucs)

2 « J'aime »

Très bon boulot, c’est très fidel au matériau d’origine :v:

1 « J'aime »

Je n’aurais qu’à réduire de 20% mes sprites, je pense que je serai capable de faire mes retouches.

Mais je dois passer de sprite de 104x40 à 56 x 32 et ça c’est dans le meilleur des cas.

Car pour avoir de la cohérence de taille entre les personnages, c’est plus du 48×32 voir des sprites de 120×48 que je descend à 56x24

Pour un Sprite, je dois descendre la verticale de 104 à 40. (Heureusement que sailor Mercury fait officiellement 10 cm de moins que Mars et qu’elle n’a pas de chaussures à talon comme les 2 autres, ça justifie cette différence de taille)

Passer de l’arcade de 1995 à la master system c’est hard.

Quelle patience.

De voir le rendu de mon image, ça me fait quand même penser qu’au final, la façon dont c’est fait ne permet pas de mettre en valeur la belle palette de la Game Gear.

Quand on regarde les monstres, il est flagrant que la console peut faire de belles choses. Mais avec 3 personnages affichés à partir de la seconde palette, ces derniers ne sont pas aussi beaux. En tout cas, j’ai un problème avec le contraste entre les personnages et les monstres. Ainsi que l’absence de décor.

J’ai fait un excel pour bien réfléchir à la meilleure organisation possible des palettes, pour un rendu optimal.

On voit qu’en mettant une bonne base de couleurs communes, on peut s’en sortir avec 3 couleurs spécifiques par personnage. Seulement avec juste 3 couleurs, impossible d’aller dans des dégradés subtils que la palette de 4096 offre : on passe à côté des possibilités de la console.

(ROLF (et pas RUDO) aurait été une constante, et donc, ses couleurs disponibles pour les décors, à condition bien sûr de ne pas vouloir les mélanger avec les couleurs de la palette 1, car c’est impossible).

Conclusion : il faut accepter d’afficher moins de choses si on veut qu’elles soient plus belles.

Je pense faire un nouvel essai avec un seul personnage de visible à la fois, et donc, un décor, élément qui a cruellement manqué à l’opus MegaDrive.

A suivre…

Edit : pour mieux comprendre je suis allé debugger un jeu Game Gear. J’ai opté pour Moldorian justement, avec une save fin de jeu, afin de voir comment les couleurs étaient utilisées…

Globalement, tout ce que j’avais imaginé au niveau de l’utilisation était correct. La palette de décor sert à afficher les ennemis. Ces derniers ne peuvent pas être superposé au décor : ils en font partie. J’étais certain de ça, c’est pour ça qu’au départ je n’avais pas mis la grille verte sous les ennemis. Du coup, la contrainte est qu’il faut intégrer le décor dans le dessin afin de toujours remplir des carrés de 8x8. Cela veut dire que si un ennemi peut-être à plusieurs positions différentes du décor, il faut le dupliquer autant de fois… Aie !

On le voit dans cette capture de la VRAM :

Côté gauche, les morceaux d’ennemis sont bien entourés d’herbe.

Pour faire disparaître les ennemis quand ils meurent ou subissent des coups, il y a une copie exacte du décor mais sans les ennemis en dessous, et les développeurs alternent entre le décor avec ennemi et décor sans ennemi pour les clignotements. Apparemment changer d’un coup de gros blocs de décor n’est pas un problème. Pour la mort de l’ennemi, ils remplacement visiblement le carré avec l’ennemi par le carré sans l’ennemi ligne par ligne, afin de créer un effet de disparition.

Sinon les 6 premières couleurs servent au décors, les 5 suivantes au premier ennemi, les 5 dernières au second ennemi. Un gros ennemi peut utiliser 10 couleurs donc. La seconde palette est celle des sprites, donc pour les personnages. Vu qu’ils sont tous visibles en permanence, et qu’en plus il peut y avoir des sorts, ils ont été très limités en nombre de couleurs.

La console est très limitée en nombre de sprites. Seulement 64, ça va très très vite. Dans un village, tous les villageois suffisent quasiment à remplir la mémoire. D’où l’obligation de passer par la couche de décor de fond pour les ennemis dans les RPG, et pour surement des tonnes et des tonnes de cas. Tous les gros boss, ce sont des décors dont on décale les lignes ou colonne progressivement. Sacré merdier…

Seulement 64, ça se remplit très très vite.

Golden axe sur master system aussi utilise la palette du décor pour ses personnages (c’est ce qui permet au jeu d’avoir des ennemis et personnages de 56x32 en quantité sans clignotement)

Les magies et la barre de vie sont les seuls éléments en sprites.

Par contre, ça limite à fond les couleurs, pour que la console puisse tenir l’animation des personnages, il ne doivent utiliser que 7 couleurs de la palette du décor.

Mais perso, je suis surpris comme bien utilisé 7 couleurs pour l’intégralité des personnages et uniquement 16 couleurs au total, ça peut suffire et bien rendre.
En fait, quand on a une bonne palette bien choisie, c’est même plus simple car on va davantage à l’essentiel(je galère plus sur mon color hack du jeu sailormoon sur megadrive que pour choisir les bonnes couleurs sur master system, voir même pour composer un décor de 3000 tiles avec 124 tiles)

Si je me contentais de réduire les sprites que j’ai
fait à la taille des sprites de street of rage mes sprites aurait plus de gueule que ceux du sailormoon megadrive (alors que les sprites du jeu megadrive utilisent 16 couleurs pour chaque sailor mais utilise très mal la palette megadrive)

Le problème d’utiliser la couche Background c’est que tu ne peux pas faire d’animation fluide aisément. Le BG c’est juste un remplissage de tiles en 8x8, tu ne peux rien bouger à moins de redessiner les choses. Et je ne parle pas de la gestion de collision, ça doit être ingérable.

Si tu veux faire des animations un poil fluides, tu te retrouves à avoir autant d’image que de positions possibles à partir du premier pixel de chaque tiles. Donc dans le pire des cas, 8 fois chaque image. Et en plus, vu que c’est du décor, ça ne se superpose pas avec d’autres éléments visuels : il n’y a pas de transparent. Donc chaque tile de 8x8 doit contenir le décor de fond avec.

En bref, c’est l’enfer. Ce n’est pas fait pour ça. Pas pour des sprites très animés aux positions variables et non prévisibles. Ou alors ils ont une technique pour superposer des tiles quand même, il faudrait que je regarde avec tile layer pro comment c’est fait dans la ROM.