Debug Life

Le dimanche 2 janvier 2011

21:33 Développement et sortie de Pier Solar

Accueil > Programmation > Sega

Ca y est le jeu Pier Solar est sortie sur Megadrive, il est disponible sur le site dédié ! Fonzie, un des principaux programmeur et initiateur du projet a bien voulu répondre à mes questions, merci encore à lui !!

Bonjour fonzie,

Q - Comment était composé l’equipe de développement et comment se sont répartis les taches ?

R - L’équipe de développement, au départ deux personnes s’est rapidement élargie à 8 personnes (histoire, musique, outils, programmation, script) à laquelle sont venus se greffer une 20ene de "freelances". Au total plus d’une centaine de volontaires et une poignée de pro auront participé. On oublie trop souvent les traducteurs et aussi les betatesteurs et testeurs qui ont fait un boulot incroyable (finir plusieurs fois un RPG buggé, croyez-moi, c’est du sport).

Q - En quel language a été écrit Pier Solar et quels outils de développement avez vous utilisé pour écrire, assemblé/compilé, débuggé ?

R - La partie megadrive est en C, avec certaines routines en ASM. Le driver sonore Z80 en ASM. Pour le moteur de jeu j’ai utilisé GCC comme compilateur et codeblocks pour l’éditeur de code. Une partie des outils ont été compilés avec devcpp.

Le débug à été fait avec un émulateur "Genskmod", par Kaneda et Stef. Puis quand le jeu est devenu trop complexe, nous sommes passé sur une emulation spécifique au jeu.

Q - Comment as tu appris à programmer sur Megadrive ? Des documents, des conseils ?

R - Autodidacte, surtout en faisant du "trial & error". J’ai compris comment fonctionnait le hardware puis comment faire du software car je ne savais pas du tout programmer au début de l’aventure (à part en HTML et Javascript). Je conseillerai l’inverse, cad apprendre les bases de la programmation avant de se lancer dans un jeu sur une machine spécifique, question de polyvalence.

Q - Avez vous ecrit des bibliothèques/macros afin de faciliter le developement du jeu ou est ce que vous vous êtes appuyé sur de l’existant ?

R - Toutes les bibliothèques ont été faites "from scratch", qu’il s’agisse du moteur de jeu, des méthodes de compression et autres formats de fichiers. Certaines routines et outils on été développé/retravaillées par des programmeurs tiers. En fait une grosse partie des routines d’affichages sont "hard-codées" dans le jeu car un appel de fonction en C, ça pompe beaucoup trop de temps CPU.

Q - Comment avez vous conçu le moteur principal du jeu, vous êtes vous aidé de code existant ou avez vous créé tout "from scratch" ?

R - Le moteur du jeu est complètement unique et dédié au jeu / hardware de la megadrive. Il a été pensé pour être "nourri" par une communauté d’amateurs. Cad un système de fichier et des formats que tout le monde puisse comprendre et mettre à jour sans intervention d’un programmeur ni re-compilation du jeu. Le moteur boot sur un fichier "index" et ensuite libre choix de la suite au grès des maps et fichiers de scripts, comme du html en fait. C’est sans doute assez rudimentaires mais cela m’a pris plusieurs semaines de réflexion, haha.

Q - Avez vous eu besoin de compresser certains élément du jeu comme les dialogues ?

R - Une grosse partie du jeu est compressée, cela inclus les dialogues (plus de 600 pages de texte !). La compression est venue petit à petit en voyant la limite fatidique des 64MEG arriver. Je dirais que sans compression, le jeu pèse plus du double, environ 150 MEG.

Q - Les sprites/tiles ont été créés sous quel format et avec quels logiciels ?

R - Pour l’animation des sprites, maps, etc, nous avons créé nos propres éditeurs. Le pixel art en lui-même à été fait avec des logiciels existants (J’ai un faible pour PaintShoPro6, mais les pixels artistes pro utilisent souvent Photoshop avec des plugins pixelart).

Q - Combien de sprite et de background/tiles ont été aproximativement créés pour Pier Solar ?

R - De mémoire, il y a plus de 150 sprites dit "npc / pc". Une quarantaine de monstres et plus de 200 FX. Ajoutez à cela une soixantaine de backgrounds répartis sur plus de 200 maps. Hah oui, j’ai oublié de dire que le tout est animé... vertigineux... des millions de pixels et donc de clics.

Q - Des logiciels de conversion graphique et des formats de compression ont ils été utilisés, si oui lesquels ?

R - Les logiciels de conversion graphique ont tous été codés pour le jeu. Chaque type de fichier "npc", "monstres", "maps", utilise une compression spécifique pour tirer le meilleur ratio performance cpu/gain possible.

Q - Avez vous réussis à contourner certaines limites d’affichage de la megadrive, si oui lesquels ?

R - Comme une bonne partie des designers étaient amateurs (moi inclus) il est difficile de se rendre compte des vraies performances du moteur. Une énorme partie de la mémoire video est allouée aux backgrounds ce qui permet des décors inimaginables pour l’époque. C’est aussi un casse tête car il faut en permanence trouver de la place quand les menus s’ouvrent, par exemple.

Quelques astuces plus ou moins utilisées dans les productions de l’époque : Le mode ShadowHighlight pour certaines maps ; Les rasters pour certaines transitions ; La combinaison de plans pour plus de couleurs sur les visuels statiques. Et des astuces de prog pour simuler plusieurs plans (le menu dans piersolar s’affiche avec la map en transparence).

A noter que le jeu tourne en 60fps, même pendant les combats, et les monstres décompressés en temps réel !

Certains effets n’ont jamais été fait avant sur MD, et ce sera la surprise pour ceux qui finiront le jeu !

Q - Que peux tu me dire de plus sur la personne ayant composée les musiques ? Quels outils a t il utilisé ?

R - La composition à été faite par Zable et Tulio. Ils ont utilisé un tracker développé en parallèle du jeu (et non pour le jeu au départ) par Tiido. La composition PCM à été réalisée par Tulio par la suite sur des outils commerciaux, je n’ai pas plus de détails.

La partie la plus complexe sur md est définitivement le son, car peu de compositeurs savent tirer bénéfices du FM. La réalisation des instruments FM et les SFX en FM/PSG à été une tache incroyablement difficile car là aussi, il n’existe qu’une poignée de personnes au monde capables de faire du "neuf", un seul SFX pouvant nécessiter plusieurs heures de travail.

Au final plus de 50 pistes audio, ça fait plus de deux heures en FM ... ET ... en PCM. Le format audio sur le CD est propriétaire au jeu.

Q - J’ai cru comprendre que des outils ont été écrits pour le developement du jeu, quels sont ils et seront ils rendu public ?

R - Pour l’instant il n’est pas prévu de la rendre publique. Il s’agit de notre première génération d’outils et ils sont tellement orientés pour piersolar et la megadrive qu’ils seraient inutiles, même pour faire une suite :).

Q - Avez vous eu un support ou de l’aide technique de la part de Sega ou tout autre developpeur ?

R - Non, SEGA n’a jamais pris au sérieux notre projet, c’est bien dommage.

Q - Apres plusieurs années d’investissement, la fin de ce projet marque t il l’arrêt de ton interessement dans le developement sur Megadrive et à la mise à jour de ton site Genny4ever ou comptes tu y consacrer encore un peu de ton temps ?

R - L’aventure PierSolar n’est pas tout a fait terminée puisqu’il reste de nombreux mois de travail pour traiter les commandes et les retours divers. Il est évident que cela ne va pas se terminer comme ça ! Vive SEGA, vive la MD !

Merci encore fonzie pour avoir pris le temp de répondre à ces questions.

J’ai effectué une petite vidéo pour donner une idée du jeu "in game" :