Entretien avec Johannes Fetz à propos de jo-engine

Post√©¬†par¬† (site web personnel) . √Čdit√© par Beno√ģt Sibaud. Mod√©r√© par devnewton ūüćļ. Licence CC¬†By‚ÄĎSA.
√Čtiquettes¬†:
39
5
mai
2023
Jeu

Johannes Fetz développe un SDK pour créer des jeux pour la console Saturn, cet entretien revient sur son parcours et les raisons qui l’ont amené à s’intéresser à cette console.

Console Saturn, source Wikimedia, © Evan-Amos 2011

Sommaire

Partie 1: présentation

Qui êtes-vous, quel est votre parcours et est-il lié aux jeux vidéos ?

Initialement, j'ai commenc√© ma carri√®re dans la m√©canique de pr√©cision jusqu'√† l'universit√©. Puis, j'ai fait un certain nombre de jobs en int√©rim pour payer mes √©tudes sup√©rieures et je me suis rendu compte que ce milieu (industrie de la production m√©canique) n'√©tait pas pour moi. Je me suis donc rabattu sur ma passion, l'informatique. J'ai commenc√© la programmation pendant mes √©tudes de m√©canique apr√®s le coll√®ge avec des machines √† programmation num√©rique (tour, fraiseuse) et dans mon temps libre, j'ai √©crit des petits programmes en BASIC. Plus tard au lyc√©e, j'ai appris la programmation en langage C avec des livres. Fait assez surprenant, j'ai eu Internet pour la premi√®re fois tr√®s tard quand j'ai commenc√© l'universit√©. Par cons√©quent, j'empruntais souvent la connexion Internet du lyc√©e √† la biblioth√®que ou dans les cybercaf√©s. Apr√®s ma premi√®re ann√©e d'universit√©, j'ai cherch√© une √©cole de programmation et je me suis inscrit √† l'Epitech o√Ļ j'ai obtenu mon dipl√īme apr√®s 5 ans (promotion 2011). En sortant d'√©cole, je n'ai pas eu besoin de chercher du travail, car j'√©tais d√©j√† en CDI depuis 2009 chez Eureka Technology (√©diteur du TMS, Dispatch) et j'y suis toujours. Bien s√Ľr, mon poste a √©volu√© avec le temps. Je suis aujourd'hui responsable des d√©veloppements et membre du CODIR de l'entreprise. Par cons√©quent, mon parcours n'est pas du tout li√© aux jeux vid√©o.

Partie 2: La Saturn

Comment en êtes-vous venu à vous intéresser à la Saturn ?

J'ai acheté la console en mai 1996 de manière fortuite sur une brocante en Seine-et-Marne pour 250 francs avec les jeux ManxTT Superbike et Sega Rally. À l'époque, j'avais une Sega Master System et une Nintendo NES, alors j'ai fait un bond technologique important. J'ai ensuite acheté beaucoup de jeux et surtout j'ai eu la chance qu'on me parle de la cartouche permettant de jouer aux jeux japonais. J'ai eu par la suite plusieurs consoles, dont la PlayStation et la Nintendo 64, mais la Sega Saturn a gardé une place importante pour moi.

Qu'est-ce que cette console a de particulier ?

Si on la compare avec les consoles de la 5ème génération, la Playstation de Sony par exemple, la principale différence, c'est que Sega Saturn était basée sur une architecture à double processeur et conçu pour être un monstre de puissance pour la 2D, car de nombreux jeux populaires étaient encore en 2D à cette époque. L'intégration de la 3D dans le projet de conception de la Saturn est arrivé tardivement suivant moi peut être la pression de la sortie de sa concurrente, la Playstation. En somme, l'architecture de la Sega Saturn est exotique ce qui a malheureusement posé beaucoup de problème aux développeurs. C'est dommage, car la Saturn était capable de traiter des graphismes 2D et 3D plus avancés que la PlayStation.

Que dire de ses processeurs (Hitachi SH-2) ?

Le SH-2 est un processeur RISC (Reduced Instruction Set Computing) 32 bits développé par Hitachi dans le début des années 90 pour faciliter le traitement d'images et les calculs scientifiques (idéal pour le jeu vidéo). Il possède deux unités de traitement entièrement indépendantes, chacune capable de traiter des instructions simultanément. Ceux de la Sega Saturn ont une fréquence de 28.6364 MHz.

Le processeur SH-2, source wikimedia, © GMPX

Le processeur de la Saturn fait partie de la famille SuperH.

Comment fonctionne les processeurs graphiques (VDP1, VDP2) ?

Le VDP1 √©tait responsable du traitement des graphismes 2D et des effets de transparence. Il √©tait capable d'afficher des sprites et des polygones textur√©s (500 000 polygones textur√©s par seconde). On pouvait programmer des listes d'affichage, appel√©es "commandes", qui contenaient les informations n√©cessaires pour afficher les objets √† l'√©cran. Cette partie est facilement visible dans le code du Jo Engine. Le VDP1 pouvait ensuite les traiter et les afficher en temps r√©el. Le VDP2, quant √† lui, √©tait responsable de la g√©n√©ration d'images de fond et de la gestion des plans de superposition. Il pouvait afficher plusieurs couches de graphismes en m√™me temps (4 plans simultan√©s), chacune avec ses propres effets de transparence et de distorsion. Le VDP2 pouvait √©galement effectuer des op√©rations de zoom et de rotation sur les plans d'affichage, ce qui permettait aux d√©veloppeurs de cr√©er des effets de cam√©ra int√©ressants. Les deux processeurs graphiques travaillaient en √©troite collaboration pour g√©n√©rer les images √† l'√©cran. Le VDP2 envoyait des instructions au VDP1 pour lui dire o√Ļ afficher les objets √† l'√©cran, tandis que le VDP1 pouvait envoyer des donn√©es de texture et de couleur au VDP2 pour g√©n√©rer des arri√®re-plans. Bref, c'est assez complexe et cette complexit√© de programmation et leur co√Ľt ont √©galement rendu la conception de jeux pour la Saturn plus difficile que pour d'autres consoles de l'√©poque.

Comment fonctionne l'audio ?

La Sega Saturn avait un processeur audio intégré appelé "SCSP" (Sega Custom Sound Processor) basé sur une architecture RISC et disposait de 32 canaux audio. Le SCSP était conçu pour offrir une qualité audio supérieure à celle des autres consoles de l'époque, avec une gamme de fonctionnalités avancées tels que la réverbération, la distorsion et le chorus, qui pouvaient être appliqués aux sons en temps réel pour créer des effets sonores intéressants. En plus du SCSP, la Saturn avait également une puce audio "PCM" intégrée.

Quels services fournissent le BIOS et l'OS de la Saturn ?

En dehors, des éléments standards présents sur toutes les consoles du même type, on a la possibilité de lire des CD audios et des films au format VCD via une carte d'extension.

Quelle est votre manette préférée ?

J'aime bien la manette standard de la Sega Saturn, mais les manettes d'aujourd'hui sont meilleures. Personnellement, j'utilise principalement la manette Xbox même sur PC.

Clone de la manette Saturn

Le design manette Saturn est populaire dans le milieu du retrogaming. Certains constructeurs comme 8BitDo ou Retrobit l'ont donc cloné.

Les émulateurs Saturn sont-ils bons ?

Oui et il y en a plein qui sont fonctionnels. SSF est sans doute le plus abouti (à l'exception de son interface), mais Yabause, Mednafen, YabaSanshiro, Kronos fonctionnent très bien. Et il y a même des nouveaux qui arrivent, comme Nova. Il y a même des consoles comme la Polymega qui permettent de jouer nativement aux jeux Sega Saturn.

La console Polymega

La console Polymega tourne sous Linux, mais malheureusement il s'agit d'une distribution privatrice.

Quels sont vos jeux commerciaux préférés sur cette console ?

Il y a vraiment trop de bons jeux et souvent exclusifs à la console, mais je peux en citer plusieurs : Radiant Silvergun, la série des Panzer Dragoon, Guardian Heroes, Burning Rangers, Sega Rally, etc.

Burning Rangers

Ecouter le générique de Burning Rangers chanté par Takenobu Mitsuyoshi donne plus de gniaque qu'un verre de jus d'orange et 42 cafés.

Quels sont vos jeux "homebrew" préférés sur cette console ?

  • Unreal Sega Saturn (aka Hellslave)
  • Sonic Z-Treme
  • Bridget Bishop
  • Zygo 2D & 3D
  • Cubecat
  • Sky Blaster
  • The case of the city botucaiba
  • et d'autres que j'ai pas cit√©.

Partie 3: jo-engine

jo-engine éditeur de carte

Le sdk vient avec un éditeur de carte 2D.

Pourquoi créer un SDK pour un si vieux système ?

C'est parti d'un petit défi technique personnel et de la curiosité à la base. La console avait cette réputation d'être l'une des plateformes les plus complexes pour programmer de l'histoire alors forcément ça a capté mon attention, en plus de la nostalgie que j'ai pour cette console. De plus, en matière d'architecture exotique, j'ai déjà joué avec le processeur CELL de la Playstation 3.

Quand j'ai commencé à étudier la plateforme, il n'y avait pas beaucoup de jeux homebrew, à l'exception de quelques démos techniques. D'ailleurs, je suis parti de là pour commencer avec le kit SaturnOrbit et ses démos.

J'ai ensuite décidé de commencer à faire un petit Sonic et j'ai posté une vidéo sur Youtube.

J'ai re√ßu plusieurs retours tr√®s positifs et j'ai voulu aller plus loin. J'avais r√©ussi √† obtenir de bons r√©sultats techniques et j'ai d√©cid√© de les partager avec tout le monde en cr√©ant un SDK ouvert, dot√© d'un niveau d'abstraction √©lev√© qui permet de cr√©er facilement des homebrews pour la console. Malheureusement, j'ai d√Ľ mettre le d√©veloppement de mon propre jeu de c√īt√© pour lib√©rer du temps.

Quelles ont été les difficultés pour le concevoir ?

Beaucoup¬†! ūüėä

Mais en premier lieu, c'est clairement le manque de documentation qui m'a contraint à coder beaucoup d'outils pour inverser l'architecture de la machine et comprendre comment utiliser chaque registre, chaque zone mémoire, chaque instruction. Heureusement, j'ai eu de l'aide de la communauté à certains moments. En second lieu, ce qui a été difficile, c'est d'abstraire l'architecture matérielle au maximum afin de laisser le développeur se concentrer sur son jeu.

Quelles sont les fonctionnalités de jo-engine ?

Aujourd'hui il y en a beaucoup en particulier sur la 2D et plein d'exemples pour commencer.

 Est-ce qu'il gère divers accessoires (3D Pad, multitap, clavier, souris, pistolet, Video CD, modem…) ?

Oui à l'exception du modem et du pistolet. Pas de difficulté en particulier, mais j'ai pas eu de demande de fonctionnalité sur ça.

3D Pad

Le 3D Pad est une réponse à la sortie de la Nintendo 64 avec ses sticks analogiques.

Est-ce que vous participez à la création de jeux Saturn ?

Je viens souvent en aide aux développeurs de homebrew. J'ai un gros projet de jeu (pas le Sonic), mais je peine à trouver le temps pour bosser dessus.

Est-ce que des jeux amateurs ou commerciaux sont développés avec jo-engine ?

Oui, il y en a plein. Il y a m√™me un concours de programmation chaque ann√©e o√Ļ plusieurs nouveaux jeux sont r√©v√©l√©s : r√©cemment, il y a eu le "SEGA Saturn 28th Anniversary Game Competition" dont le gagnant, Francisco J Del Pino Questa (aka Fran Matsusaka) a cr√©√© le jeu Bridget Bishop en utilisant le Jo Engine.

Capture d'écran de Bridget Bishop

Quels conseils donnez-vous aux gens qui se lancent dans le développement de jeux Saturn ?

Je conseille de commencer par développer un jeu 2D pour se faire la main avant de s'aventurer dans la 3D. Il y a une communauté petite mais très active (majoritairement francophone en plus). N'hésitez pas à parler de votre projet et à demander de l'aide.

Est-ce que vous aimeriez vivre de ce projet ?

Non. La satisfaction de voir des nouveaux projets sur la Sega Saturn (et pas forcément qu'avec le Jo Engine) me suffit largement.

Partie 4: pour finir

Que dire sur vos autres projets ?

J'ai un éditeur de modèle 2D/3D dédié à la Sega Saturn que j'ai commencé, mais je manque de temps en ce moment.

Vous avez de futurs projets en cours ?

J'ai un jeu que j'aimerai bien réaliser avec Sega et en support physique, mais comme pour l'autre projet, je manque de temps. Pour l'instant je privilégie mon parcours professionnel et ma vie de famille.

 Au niveau personnel, quels logiciels libres utilisez-vous, sur quel OS ?

Dans mon top 5 :

  • GCC sous Linux principalement
  • Paint.Net sous Windows
  • Notepad++ sous Windows
  • Emacs sous Linux
  • VLC sous Windows et Linux

Au niveau professionnel, quels logiciels libres utilisez-vous, sur quel OS ?

Dans mon top 3 :

  • Notepad++ sous Windows
  • Paint.Net sous Windows
  • 7-Zip sous Windows

Quelle est votre distribution GNU/Linux préférée et pourquoi, quels sont vos logiciels libres préférés ?

J'ai utilisé plusieurs distributions au fil des années (Mandrakelinux/Mandriva, Debian, Ubuntu, Arch Linux, etc…) ainsi que beaucoup de distributions BSD. Cependant, aujourd'hui, je suis resté sur Ubuntu. D'ailleurs, c'est la version serveur qui est présente sur le serveur dédié de Jo Engine.

En ce qui concerne les logiciels libres, je pense que mes préférés sont ceux que j'utilise le plus (Notepad++, VLC, Paint.NET, etc…).

Quelle question auriez-vous adoré qu'on vous pose ?

Je n'ai rien qui me vient en tête.

Quelle question auriez-vous détesté qu'on vous pose ?

Je n'ai rien qui me vient en tête non plus.

Aller plus loin

  • # Et bim encore une √©toile !

    Post√©¬†par¬† (site web personnel) . √Čvalu√©¬†√†¬†7.

    Encore surpris que l'on arrive à faire de telles fournitures pour ces consoles.
    Merci !
    J'adore cette tendance de linuxfr a proposer des interviews a ces personnes qui ont beaucoup à partager.

    • [^] # Re: Et bim encore une √©toile !

      Post√©¬†par¬† (site web personnel) . √Čvalu√©¬†√†¬†5.

      merci à devnewton< et Johannes Fetz pour ses réponses franches/tranchées montrant l'implication possible à tout un chacun de creuser des utilisations alternatives, pas forcément attendues :-) (bah suffit d'un proc et d'un peu de RAM…)

  • # bonne interview

    Post√©¬†par¬† . √Čvalu√©¬†√†¬†5.

    Merci pour ces interviews de personnes et projets qui gagnent à être connus.

    Je ne connaissais pas du tout la Saturn (à part de nom). Je crois qu'elle n'a pas eu grand succès en France, et que ce furent les premiers raclements de gorge de Sega, avant son chant du cygne avec la Dreamcast.

    Discussions en français sur la création de jeux videos : IRC freenode / #gamedev-fr

    • [^] # Re: bonne interview

      Post√©¬†par¬† . √Čvalu√©¬†√†¬†4.

      La Saturn s'est mal vendue aux USA et en Europe, bien qu'elle ait bien marchée au Japon.

      Son principal défaut étant son prix : 480$ à sa sortie contre 299$ pour la PlayStation et 199$ pour la N64 qui était prévue à 249$ originellement mais Sony a baissé sa PlayStation à 199$ pour entraver la sortie de la N64 à ce moment.

      √Čgalement assez peu de jeux phares √† sa sortie et m√™me tout au long de son existence, on se souvient surtout du v√©n√©rable Virtua Fighter ainsi que de sa suite Virtua Fighter 2.

      Nintendo, comme à son accoutumé, usait de ses licences phares et a réussi sa transition à la 3D avec brio avec l'indémodable Mario 64.

      Sony a choisis de laisser la part belle aux développeurs en vendant une licence d'exploitation à seulement 10$. Ce qui explique que la PlayStation se retrouve avec une ludothèque aussi fournie mais aussi très inégale en terme de qualité.

      La Saturn n'était pas une mauvaise console. Elle n'a sans doute pas eu le succès qu'elle méritait (au même titre que sa petite soeur la Dreamcast) mais c'est en partie à cause des mauvais choix de SEGA face à une concurrence agressive sur tous les tableaux (ludothèque, prix de lancement, communication…) mais également à des développeurs tiers peu intéressés qu'elle est restée aussi marginale.

      Beaucoup d'entre nous ont touché au moins une fois une PlayStation et/ou une N64. Bien moins ont eu la chance de toucher une Saturn.

      La majeure partie des morts l'était déjà de son vivant et le jour venu, ils n'ont pas senti la différence.

  • # Souvenirs, souvenirs

    Post√©¬†par¬† . √Čvalu√©¬†√†¬†3.

    Plein de bons souvenirs sur cette console, ça donne envie de le ressortir.
    Merci pour cette série d'interviews passionnante !

  • # Commentaire supprim√©

    Post√©¬†par¬† . √Čvalu√©¬†√†¬†2. Derni√®re modification le 11 mai 2023 √† 06:55.

    Ce commentaire a été supprimé par l’équipe de modération.

  • # Ah ! Baku Baku animal

    Post√©¬†par¬† . √Čvalu√©¬†√†¬†1.

    Certainement l’un des meilleurs jeux du genre avec ses musiques rigolotes et ses onomatopées japonaises !

    ¬ę¬†Y a m√™me des gens qui ont l‚Äôair vivant, mais ils sont morts depuis longtemps !¬†¬Ľ

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.