Construisez et programmez votre console de jeux open source

62
26
oct.
2020
Do It Yourself

Un livre pour assembler sa console de jeux open source ?

Le 2 septembre 2020 est sorti mon livre Construisez et programmez votre console de jeux open source chez les éditions Dunod, dans la collection Tous Makers.

Évidemment disponible chez certains géants du commerce en ligne, j’incite plutôt les lecteurs à se tourner vers les librairies de quartier, ou à passer par Lalibrairie.com pour se le procurer.

Construisez et programmez votre console de jeu open source

Histoire du projet

Fin 2018, l’éditeur Third Editions, spécialisé dans le monde du jeu vidéo, lance un concours d’écriture ayant pour thème « console de jeux ». Je commence à écrire sur l’Histoire des consoles open source, car je réalise que personne n’en parle (ni en France, ni ailleurs).

Janvier 2019, on m’informe que ma proposition d’ouvrage n’est pas retenue. Un peu déçu, mais je prends néanmoins contact avec d’autres éditeurs spécialisés dans les jeux vidéo pour proposer mon projet.

Février 2019, je reçois quelques réponses, le sujet intéresse mais est considéré comme « trop marginal » ou « trop borderline »… Preuve qu’il est nécessaire d’en parler et de démystifier des idées, notamment autour de l’open source et du Libre, car certains y voient des possibilités d’illégalité (je pense notamment à cause des ROM et de l’émulation, mais ce n’est pas le sujet du livre).

Avril 2019, je renvoie mon projet éditorial à des maisons d’éditions moins spécialisées dans le jeu ou le numérique, mais ayant des collections axées sur le sujet. Les éditions Dunod me répondent et me proposent de changer l’axe de mon livre et d’ajouter une dimension technique, pour concevoir pas à pas une console open source. L’idée me semble pertinente.

Mai 2019, je rédige un nouveau sommaire, liste les idées de tutoriels que je pourrais concevoir, tout en conservant une petite partie historique. Ayant suivi de près le financement des machines dont je compte parler, et étant en contact direct avec certains développeurs, je veux pouvoir utiliser ces éléments.

À la même période et suite à la sollicitation d’un des organisateurs, je propose au festival Pas Sage en Seine un atelier de fabrication de Kitco (une console open source). Puis, dans mon élan, je propose en plus une conférence sur l’histoire des consoles open source (comme je dispose déjà de pas mal de contenus). J’ai envie de prendre la température et voir comment le monde des libristes et des hackers accueille le sujet.

Juin 2019, le projet de livre est définitivement validé, je donne mon atelier et ma conférence et j’annonce travailler sur un livre. Je reçois des encouragements et j’ai un très bon retour de ma petite conférence.

Entre juillet et décembre 2019, je rédige la première version du manuscrit (avec suite des interviews des concepteurs, assemblages des différents kits avec prise de photos, analyse du code de certains petits jeux, etc.).

Entre janvier et juin 2020, corrections, allers‐retours, mise en page, et validation définitive du livre.

Ensemble de consoles open source

De quoi ça parle ?

Dans ce livre, je présente une dizaine de machines (Arduboy, Gamebuino META, GameShell, Kitco, MAKERbuino, Pocket C.H.I.P., Pokitto) chacune ayant des caractéristiques spécifiques et une histoire particulière. Entre la console en kit à souder à dix euros et la machine à clipser à 150 euros, il y a tout un monde. Parfois 100 % open source (matériel, code et schéma), parfois pas tout à fait, cet écosystème n’en est cependant pas moins riche et les contributeurs restent nombreux. On trouve donc également des tutoriels pour coder des premiers petits jeux (un Pong et un Snake) en Lua ou en Arduino.
Pour les amateurs de retrogaming, la distribution Recalbox est faite pour vous. Là encore, vous aurez des tutoriels pour vous accompagner dans la conception d’une borne d’arcade.

Un lecteur m’a, d’ailleurs, demandé pourquoi j’avais pris le temps de présenter et réaliser des tutoriels pour Pico‑8, qui n’est ni libre ni open source (mais il existe des variantes qui le sont). La scène Pico‑8 est assez active et, visuellement, je le trouve très intéressant. C’était également pour mettre en avant que le fait d’utiliser une console open source n’enferme pas dans un écosystème (Pico‑8 tournant sur GameShell ou Pocket C.H.I.P.).

J’aurais pu traiter de Python aussi — langage sous licence libre — mais je n’avais ni les compétences ni le temps pour le faire.

En parlant de licence libre, j’aurais aimé que mon ouvrage soit sous une licence qui permet sa libre diffusion, mais malheureusement trop peu d’éditeurs connaissent le fonctionnement de ces licences. C’est dommage car ça aurait été pour moi une bonne façon de mettre mon travail dans le pot commun du monde libre.

Le monde du jeu vidéo est très volatil (fermetures de studios, rachats de licences, prix qui dégringolent), cela s’applique d’autant plus au monde de l’open source qui vit parfois trop en vase clos. Depuis la sortie du livre, l’entreprise Aadalie (qui éditait la console Gamebuino) a mis la clef sous la porte. Espérons que quelqu’un prenne la relève.

Je vous souhaite à toutes et tous une bonne lecture. Pensez à partager vos créations (console et jeux) !

Aller plus loin

  • # Merci pour cet article

    Posté par  . Évalué à 4.

    Merci pour cet article, je pense que je vais acheter le livre, je ne sais si ça me sera utile donc ce sera surtout pour te soutenir car je suis plus interessé par des solutions basées sur raspberry.

    Personnellement, je trouve ça génial c'est console mais je me demande qui ça intéresse vraiment beaucoup de mond, peut-il y avoir un business-model rentable derrière ces consoles ?

    On indique souvent que c'est ludique pour les enfants mais j'ai l'impression que ça reste compliqué, ne serait-ce si on n'a personne qui connait la soudure ou la programmation. Par exemple la Kito comme exemple d'application je n'ai trouvé qu'un Hello World.

    Ce que j'aimerais trouver de mon côté c'est une console de type raspberry avec par exemple retropie sur laquelle on pourrait par exemple branche un HDMI et un clavier et qui permettrait de code directement via un OS et des outils dédiés, dans des languages de plus haut niveau comme Pygame.

    En gros trouver un truc simple qui permet de programmer directement un peu comme les cartes micro python ou il faut juste un câble USB et on peut faire du copier/coller de code Python.

    Connais-tu des sites/références qui parlent de jeux open source ou indie, j'ai l'impression qu'il y a beaucoup d'essais et de jeux abandonner dans la majorités des listes de jeux que je trouves.

    • [^] # Re: Merci pour cet article

      Posté par  (site web personnel) . Évalué à 2.

      Merci pour ton commentaire et ton soutien :)
      Je ne sais pas si beaucoup de monde sera interessé mais je vise à la fois les fan de retrogaming, les personnes qui aiment programmer et bricoler. Donc je verrais bien :)

      Pour l'aspect ludique avec les enfants, il y a des écoles qui font des partenariats avec certains fabricants de machine comme ça, je pense à Makerbuino notamment. Arduino c'est un peu côton c'est vrai.

      Pour une console sur laquelle tu peux brancher des choses et écrire directement, je pense que la gameshell peut faire ça, vu que c'est une base Debian qui tourne derrière. Tu dois pouvoir te connecter en ssh ou autre et envoyer des trucs directement (j'avoue ne pas avoir testé). Et pour le coup, elle lit le Python.

      Pour les sites ou références qui parlent de jeux open source… il existe un forum (https://www.open-consoles.com/) mais c'est plus axé sur des clones de machines qui font de l'émulation (et pas du vrai open source). Ou sur les forum de makerbuino ou les autres machines. Mais à ma connaissance non, il n'y a pas de site d'actu jeux open source. Du jeux indé oui, beaucoup plus. Bien souvent, les dev font une prototype opensource (pendant une gamejam) puis ensuite développent sur d'autres supports. Je pense au jeu Celeste par exemple, qui a été fait en Pico8 avant d'être retravaillé pour sortir sur d'autres machines.

      • [^] # Re: Merci pour cet article

        Posté par  . Évalué à 4.

        émulation, n'est pas forcément opposé à libre. Déjà parce que pas mal d'émulateurs, à commencé par MAME ou RetroArch sont libres, mais aussi parce qu’il y a au moins une communauté du homebrew par console. Il y a un peu de demo-scene également, qui utilisent des techniques d'aujourd'hui sur des micro-ordinateurs ou console d'il y a 30 ou 40 ans et en tirent pleinement partie, des choses qu'on aurait pas cru possible à l'époque.

        là je vois que la majorité utilisent des microcontrôleurs ATmega 8 bits (sans doute en copiant-collant la première Arduino), ça n'est pas forcément le meilleur choix, à la fois en terme de prix, de puissance et d’efficacité. Les STM32 (qui sont plus populaires dans l'embarqué, on trouve des cartes à partir de 2€ soit au moins la moitié du prix d'un équivalent en ATMega 8 bits et en 32 bits et ont des fréquences au minimum 4 fois plus élevées. Je ne compare pas aux prix de ces consoles qui ont demandé conception, développement, packaging bien sûr, juste de cartes simples et de leur microcontrôleurs. Certains STM32, ou les ESP32 ont en plus un DSP (voir le son de l'Axoloti pour STM32, et de différents autres pour l'ESP32), ce qui peut aider pour les calculs 3D ou la synthèse de son de qualité professionnelle. Ils ont en plus tous deux plein d'OS, de langages (Arduino, µPython, Faust, etc) et d'outils de développement. L'arrivée depuis 2 ans des microcontrôleurs RISC-V (on en trouve dans les mêmes prix en versions 32 bits) seraient aussi une bonne vision à plus long terme.

        Il y a que la clockworkpi qui semble équipé d'un microprocesseur (quadcore A7 + MaliGPU) et donc, donc complétement incomparable aux autres niveau puissance. C'est un SoC Allwinner (dans le dépôt du noyau on voit Sunxi) avec noyau 4.14, donc probablement config officielle d'Allwinner, plein de gros blob tous proprios en guise de pilote. La communauté SunXi ayant porté en mainline depuis au moins la 4.16 ou 4.18. Bon cela dit, rien n'empêche de remplacer par une 5.x avec des pilotes libres (Lima pour le GPU, il commence à vraiment bien tourner, même le lapin avec réfraction (glmark2 -b refract) de GLmark2 tourne bien, etc…)

        • [^] # Re: Merci pour cet article

          Posté par  (site web personnel) . Évalué à 2.

          Oui bien sur, emulation peut vouloir dire opensource, je parle de homebrews dans le livre. Mais ne nous voilons pas la face hein, toutes les machines dédiées à l'émulation font surtout tourner des roms :)

          Pour clockworkpi et sa gameshell, ils utilisent maintenant le kernel v5.3.6.
          Et oui, elle joue pas dans la même cour que les autres machines citées. Mais le projet et la philosophie du truc est différente, on est beaucoup moins dans la "bidouille" et dans l'esprit maker. On est plus proche d'un produit vendue en magasin.

    • [^] # Re: Merci pour cet article

      Posté par  (site web personnel) . Évalué à 3.

      sites/références qui parlent de jeux open source : http://jeuxlibres.net/ ou https://libregamesinitiatives.tuxfamily.org/ mais encore http://www.lebottindesjeuxlinux.tuxfamily.org/ ? C'est certainement insuffisant, mais la difficulté est de trouver des gens qui alimentent.

  • # Combien de bits?

    Posté par  (site web personnel) . Évalué à 5.

    A quelle génération correspondent ces consoles?

    Est-ce que certaines permettent de la belle 2D ?

    Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

    • [^] # Re: Combien de bits?

      Posté par  (site web personnel) . Évalué à 3. Dernière modification le 26 octobre 2020 à 14:42.

      Hummm… alors pour la plupart, comme on est sur du pixel, on va dire qu'on est proche de la génération Gameboy et Nes (8bits en gros). Mais on peut aller plus loin et il existe maintenant beaucoup de jeux récent dit "néo retro". Je pense notamment à tout ce qui tourne avec Pico8.

      • [^] # Re: Combien de bits?

        Posté par  (site web personnel) . Évalué à 2. Dernière modification le 26 octobre 2020 à 18:48.

        Et en même temps, les constructeurs de makerbuino viennent de lancer une version 32 bits
        https://www.circuitmess.com/nibble/?mc_cid=fa23198cab&mc_eid=c43fa44f6d

        • [^] # Re: Combien de bits?

          Posté par  . Évalué à 3.

          Ah ben, voila, c'est cool, ça utilise un micro-conntrôleur 32 bits à 80 Mhz ESP8266 (on la trouve sur des cartes à 2$). Au moins c'est un minimum puissant par rapport aux ATMega, ça doit être à peu près la puissance de calcul d'un 68040 avec ça ^ (si on émule un 68040 ça sera plus lent hein) mais bon, pas de GPU, pas de DSP (contrairement à l'excellent DSP de son successeur, l'ESP32).
          Ça à vraiment rien à voir avec, pour citer les consoles de cette liste, la clockworkpi qui utilise un vrai microprocesseur, probablement un AllWinner H3 (ou peut être son dérivé moins cher, le H2+ qui est très populaire) quad-cœur 32 bits (Cortex-A7 à 1.296 GHz) avec un GPU un peu puissant (ARM Mali-400, double cœurs).

          • [^] # Re: Combien de bits?

            Posté par  . Évalué à 1. Dernière modification le 26 octobre 2020 à 19:52.

            Oublié de mettre qu'il a un bon décodeur vidéo (4k and Full HD 1080p, il gère le x265 et vp8) et gère l'HDMI en plus de son GPU.

            • [^] # Re: Combien de bits?

              Posté par  . Évalué à 2.

              AAah, non, si on suit acheter, il y a la carte de développement, et sur sa photo, on voir R16J sur la puce, donc, ça n'est pas le H3, mais un autre qui à sensiblement les mêmes caractéristiques. Par contre, elle est n'est pas encore, du coup, gérée par le noyau mainline :(. Je ne comprend pas qu'AllWinner reste toujours bloqué sur ce noyau depuis plus de 5 ou 6 ans maintenant…

    • [^] # Re: Combien de bits?

      Posté par  (site web personnel, Mastodon) . Évalué à 5.

      Il y a la bitbox avec un CPU ARM à environ 130MHz (ça change en fonction du mode vidéo choisi) et des capacités graphiques quelque part entre l'Atari VCS 2600 et la MegaCD (beaucoup de choses étant faites en logiciel dans la bitbox, elle peut donc se programmer de plein de façons différentes selon les besoins).

      Le matériel est relativement simple (il n'y a pas grand chose sur la carte à part le CPU et les connecteurs audio/video/usb) mais pas évident à assembler soi même si on a pas l'habitude de manipuler un fer à souder (composants montés en surface et de petite taille).

      Le projet semble ne plus trop évoluer ces derniers temps. Peut être que je me remettrai un jour à programmer des choses pour la bitbox.

  • # PICO-8 vs TIC-80

    Posté par  . Évalué à 7.

    pico-8 est sympa, mais maintenant on a TIC-80 qui est complètement libre, et aussi avancé (même si la communauté est moins importante).

    La version 0.8 vient de sortir, j'avais envisagé de faire une petite dépêche à ce sujet…

    https://tic80.com/

    « Le pouvoir des Tripodes dépendait de la résignation des hommes à l'esclavage. » -- John Christopher

    • [^] # Re: PICO-8 vs TIC-80

      Posté par  . Évalué à 2.

      Il est bizarre ce logiciel libre : je n'ai pas trouvé de lien vers le code source sur le site. La seule version Linux est un paquet Debian, j'ai donc besoin de compiler pour ma distribution exotique (fedora). On trouve bien des liens vers github pour les bugs ou le wiki, mais rien vers le code lui-même.

      Donc je mets le lien vers la page github pour ceux que ça intéresse : https://github.com/nesbox/TIC-80

  • # Autre annuaire

    Posté par  . Évalué à 2.

    • [^] # Re: Autre annuaire

      Posté par  . Évalué à 4.

      Ok Retropie pour commencer: Basé sur raspbian/debian c'est la plus ancienne (active). Elle a été porté sur pas mal de SBC (fruit+pi) et sur PC. À l'origine c'est un script shell pour installer /compiler les émulateurs et emulstation.

      Les 3 autres sont construites à partir de buidroot. Lakka n'utilise pas emulstation les 2 autres si . Batocera est un fork agressif de la recalbox a partir de la 4.1 et suis sa propre voie. Pas mal de SBC aussi pour ses 2 distributions et toujours les PC

      La recalbox ce limite aux raspberry pi (0/1/2/3/4) aux PC 32/64 bits et odroid XU4 (il existe un port pour rockpro64 non officiel). C'est celle qui à l interface utilisateur la plus aboutie depuis la sortie de la 7.0. Les utilisateurs non initié peuvent géré une partie de la configuration avec un manager web intégré.

      • [^] # Re: Autre annuaire

        Posté par  . Évalué à 1. Dernière modification le 31 octobre 2020 à 08:35.

        Merci pour ces informations. Donc, Recalbox est actuellement la solution la plus complète, la meilleure, d'où son choix dans ce livre ?

        • [^] # Re: Autre annuaire

          Posté par  (site web personnel) . Évalué à 2.

          J'ai trouvé que Recalbox était bien plus documenté, en français, avec une communauté active. Donc j'ai utilisé cette distribution dans mon tuto.

  • # lalibrairie.com

    Posté par  . Évalué à 5.

    J'avais trouvé ce site comme une bonne initiative en effet pour faire travailler le libraire à quelques kilomètres de chez moi en profitant du côté pratique de la commande par internet.
    En allant chercher mon achat, j'ai demandé à mon libraire comment il était rémunéré et il se trouve qu'il n'a qu'une petite commission sur la vente un peu comme les points relais dans lesquels on va chercher les colis.
    Du coup maintenant je me déplace chez lui pour passer la commande.

  • # licence libre

    Posté par  (site web personnel, Mastodon) . Évalué à 1.

    Tu m'as fait penser à InLibroVeritas et son partenaire FramaBook J'ai souvenir aussi de La Poule ou l'OEuf qui ne semble plus exister.

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • # Critique du livre

    Posté par  (Mastodon) . Évalué à 2.

    Pour ceux qui se tâte sur l'achat du livre, une critique sur ce livre se trouve sur developpez.com.
    Comme cela vous saurez sans doute encore plus à quoi vous attendre comme livre.

    Surtout, ne pas tout prendre au sérieux !

Suivre le flux des commentaires

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