Journal framework de jeu vidéo

Posté par  . Licence CC By‑SA.
19
11
déc.
2020

Bonjour nal,

j'ai deux petits neveux a qui je montre du linux et des jeux videos. Ils aiment ça, et voudraient désormais écrire leur propre jeu vidéo (écrire dans le sens scénariser). Moi je voudrais qu'ils l'écrivent (au sens programmer).

Savez vous s'il existe des frameworks qui permettraient de développer rapidement un jeu vidéo?

Contraintes:
-jeu 2D plateforme/pseudo 3D (profondeur à la double dragon)
-possibilité d'animer les persos (mais avec des templates)
-éditeurs de décors (mais avec des templates)

je me souviens avoir vu des éditeurs de jeu vidéo, mais qui s'arrêtaient à des skins. Là, j'aimerai mixer un peu le côté créatif avec le côté un peu codage (déplacement, évènements, etc..)

ça existe?

  • # gdevelp et Löve ?

    Posté par  . Évalué à 5.

    Peut-être https://gdevelop-app.com/fr/ ?

    C'est orienté programmation graphique… Peut-être qu'on peu aussi code textuellement (je en sais pas).

    En logiciel non libre, dans le même genre y'a Construct 3.

    Sinon côté Framworks, il me semble que Löve (LUA) a la côte : https://love2d.org/

    • [^] # Re: gdevelp et Löve ?

      Posté par  . Évalué à 10.

      J'ai utilisé GDevelop pour animer un atelier de 2 jours dans une MJC avec des jeunes ados.
      Ça a plutôt bien fonctionné, par contre on a pas vraiment fait de programmation, enfin c'est plus de la configuration de variables et autres paramètres du moteur.

      J'avoue que c'est pas mal côté créatif, car les jeunes ont pu créer leurs sprites, faire des animations etc. Par contre, niveau code on reste sur sa fin quand on est développeur.

      Sinon, comme cela a été dis, il y a l'excellent Scratch, c'est pas mal mais limité au niveau jeux vidéo. Je peux détaillé pourquoi si besoin.

      Ce que j'ai trouvé de mieux jusqu'à aujourd'hui c'est un outil (en partie open source, voir totalement j'ai pas vérifié) de Microsoft qui est spécialement conçu pour faire des jeux que l'on peut ensuite mettre sur une mini console de jeu.
      Je l'ai pas pratiqué avec des jeunes, mais en gros c'est un scratch (ça utilise Blockly, la même lib que Scratch) mais avec une lib spécial JV et, cerise sur le gateau, y a moyen de passer en mode éditeur de code. Le langage est un subset de TypeScript et c'est très bien pensé.
      https://arcade.makecode.com/#

      Franchement, c'est Microsoft, mais c'est vraiment top.

      Voila, j'espère que ça aidera,
      Andréas

      • [^] # Re: gdevelp et Löve ?

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

        Ce que j'ai trouvé de mieux jusqu'à aujourd'hui c'est un outil (en partie open source, voir totalement j'ai pas vérifié) de Microsoft qui est spécialement conçu pour faire des jeux que l'on peut ensuite mettre sur une mini console de jeu.
        Je l'ai pas pratiqué avec des jeunes, mais en gros c'est un scratch (ça utilise Blockly, la même lib que Scratch) mais avec une lib spécial JV et, cerise sur le gateau, y a moyen de passer en mode éditeur de code. Le langage est un subset de TypeScript et c'est très bien pensé.
        https://arcade.makecode.com/#

        Merci pour cette belle découverte, le principe de pouvoir passer sur une vraie console portable est génial. C'est un truc que je recherche depuis des années (après ça reste à tester bien sûr).

        Ces consoles sont sans doute décrite dans le livre de TkPx «Construisez et programmez votre console de jeux open source» ?

        J'ai plus qu'une balle

  • # Godot ?

    Posté par  . Évalué à 10. Dernière modification le 11/12/20 à 15:58.

    => https://godotengine.org/ (voir par exemple ce livre)

  • # Scratch

    Posté par  . Évalué à 5.

    Il y a https://scratch.mit.edu/ aussi. J'avais rencontré quelqu'un qu'il l'utilisait pour faire des jeux vidéos à des collégiens.

  • # GB Studio

    Posté par  (site Web personnel) . Évalué à 7.

    Ça permet de faire des petits jeux GameBoy (qui pourront donc tourner dans un émulateur ou une vrai console) dans le style de Pokemon (il semble que la prochaine version pourra permettre de faire des jeux plus variés—shoot'em up etc…):

    https://chrismaltby.itch.io/gb-studio

    La programmation se fait avec un langage graphique assez simple (et donc limité), les décors peuvent se faire avec Tiled par exemple (GB-Studio prend directement des PNG et retrouve les tuiles lui-même).
    C'est plus limité que ce que tu demandes mais peut-être que pour un tout premier jeu ça pourra le faire.

    • [^] # Re: GB Studio

      Posté par  . Évalué à 1.

      Pour mon fils qui rechigne à se mettre à la programmation, j'ai essayer GB Studio avec beaucoup de succès !

      Évidement j'aimerais qu'il fasse des choses compliquées avec du Python mais mon petit bonhomme ne semblait pas du tout attiré par la programmation classique, et je n'ai pas envie de le brusquer ou de l'obliger à être un clone de son papa :-p

      Avec GB Studio, c'était un peu la dernière chance et ça lui a beaucoup plut! Probablement qu'il fait partit de ces personnes qui ont besoin de voir très rapidement un résultat sans être envahit de concepts. On peut d'ailleurs commencer à concevoir plein de choses (sprites, maps ou texte) sans aucune mécanique de programmation. On peut ensuite les ajouter très progressivement en introduisant des variables, puis des if, etc…

      Bravo à ce petit programme très bien foutu avec une UI très intuitive, ce qui est loin d'être toujours le cas dans le libre ^_^'

      Dans le genre UI contre-intuitive, j'ai essayé Tiled, mais j'ai laissé tombé pour un bon vieux éditeur de Pixel comme Pixel Studio !

      Mon fils est ravit !

      • [^] # Re: GB Studio

        Posté par  (site Web personnel) . Évalué à 1.

        […] j'aimerais qu'il fasse des choses compliquées avec du Python […] Probablement qu'il fait partit de ces personnes qui ont besoin de voir très rapidement un résultat sans être envahit de concepts

        Je me permet de m'immiscer dans ce fil pour parler du toolkit Atlas, qui peut peut-être répondre à cette problématique.

        Ainsi, il peut commencer par « dessiner », en HTML, l'interface d'une application, ou d'un jeux, en utilisant l'un des nombreux éditeurs disponibles en ligne, ou en éditant directement sur son ordinateur un fichier texte qu'il ouvrira dans un navigateur pour voir le résultat. Une fois cette interface « dessinée », il peut, pour rendre les choses plus concrètes, l'ouvrir sur son smartphone (s'il en possède un), ou éventuellement une tablette. Ça se fait très facilement, en quelques lignes de Python, grâce au toolkit Atlas. Ensuite, il peut progressivement aborder les différents concepts de programmation au travers du codage, toujours en Python, des différents gestionnaires d'évènements nécessités par son application, avec la possibilité, toujours histoire de rendre les choses plus concrètes, de voir le résultat sur son smartphone.

        Mais c'est peut-être déjà trop compliqué ; en tant que développeur professionnel, j'ai du mal à apprécier le niveau de difficulté que cela représente pour un novice. D'autant que la documentation existante n'est pas vraiment adaptée, même si des efforts sont fait pour améliorer la situation. Cependant, avec l'assistance de quelqu'un qui s'y connaît en programmation, c'est peut-être jouable.

        Il y a une sorte de tutoriel en gestation dans l'espace de redaction ; ça peut aussi aider.

        Toolkit Atlas : un moyen simple et rapide pour ajouter une interface graphique à vos applications… (voir 'site Web personnel").

        • [^] # Re: GB Studio

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

          Il en est où ton tutoriel au fait ?

          « Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.

        • [^] # Re: GB Studio

          Posté par  . Évalué à 1.

          Notez également que GB Studio possède un bouton "export Web" qui génère la ROM Gameboy accompagné d'un émulateur en javascript pour publier facilement ses oeuvres sur n'importe quel site statique !

          J'ajoute que pour un enfant de 10 ans, c'est très pratique d'être "limité" dans ses choix. Par exemple dans GBStudio v2.0 on ne peut faire que 4 sortes de jeux (plateforme, zelda like, point&click et shoot'z'up) et que les capacités sont volontairement limitées.

          C'est donc une très bonne porte d'entrée à des choses plus complexe plus tard dans d'autres framework.

  • # BennuGD ?

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

    BennuGD C'est un framework espagnol à l'origine par exemple des jeux de pixjuegos. Les jeux se programment comme des dessins. Il y a aussi ExtremTuxracer qui fait ça aussi : tu crées ta carte en dessinant.

  • # C'est pas libre, payant et je ne l'ai pas essayé

    Posté par  (site Web personnel) . Évalué à 1.

    Je connais RPG Maker que de nom, mas il avait l'air prometteur il y a 15 ans, alors je me dis qu'il doit être mûr.
    Si le but c'est de les initier à la programmation, la création de jeux avec un résultat assez rapide, je pense que c'est un piste.

  • # PyGames

    Posté par  (site Web personnel) . Évalué à 10.

    https://www.pygame.org/wiki/GettingStarted

    Adhérer à l'April, ça vous tente ?

  • # Double dragon?

    Posté par  (site Web personnel) . Évalué à 4. Dernière modification le 11/12/20 à 22:01.

    Pourquoi pas ne pas prendre un moteur de ce style de jeu?

    Le plus vivant doit être BOR.

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

  • # framework de jeu vidéo

    Posté par  . Évalué à 3.

  • # SDL

    Posté par  . Évalué à 2.

    Vieux comme le monde et multi-plateformes, tu as SDL.

    Exemple de tuto en Python : https://lukems.github.io/py-sdl2/tutorial/rl.html

    En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

  • # pico8

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

    Je m’apprêtais à conseiller Godot (pour le côté super léger + facile à prendre en main + langage de script simple), mais en fait il est probablement trop puissant si tes neveux sont des débutants total.

    À l'inverse Pico8 (https://www.lexaloffle.com/pico-8.php) est volontairement super limité tout en fournissant des éditeurs (sprites, map, et même musique ce qui est super cool car c'est bien souvent le parent pauvre quand on dev des jeux en amateur ) intégrés ce qui permet de se focaliser sur les fondamentaux.
    En plus tout le code tient dans un fichier de quelques ko donc même pas besoin de se prendre là tête avec git.
    Et la cerise sur le gâteau c'est la possibilité de publier son jeu en un clique sur le site de pico8 ce qui permet à n'importe qui de pouvoir y jouer depuis son navigateur ;-)

    • [^] # Re: pico8

      Posté par  (site Web personnel) . Évalué à 6.

      A moins de faire dans la micronostalgie, PICO8 n'est pas du tout intéressant par rapport à des éditeurs "normaux":

      Niveau code, une solution type Javascript + API du brouteurs ou (C|python) + SDL est plus puissante, plus portable et plus simple que le LUA + API Pico8.

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

      • [^] # Re: pico8

        Posté par  (site Web personnel) . Évalué à 1.

        L'intérêt provient justement des limitations de l'outil et de son côté tout en un ;-)

        À mon avis c'est beaucoup plus gratifiant pour un enfant de pouvoir avoir un résultat le plus rapidement possible et à ce niveau pico8 est imbattable (typiquement avec des outils plus spécialisés comme ceux dont tu parles on va vite s'éparpiller, rien qu'en devant connecter les différents outils entre eux ou bien en pêchant par ambition)

        Évidemment si l'enfant est motivé on peut par la suite très vite évoluer vers des choses plus complexe, genre au hasard Godot ^

    • [^] # Re: pico8

      Posté par  . Évalué à 1.

      Et bien sur Doom tourne sur Pico8, et ça donne Poom :
      https://freds72.itch.io/poom

  • # Clickteam Fusion

    Posté par  . Évalué à 3. Dernière modification le 12/12/20 à 13:41.

    J'allais comme ci-dessus conseiller Godot, mais…

    Quand j'étais petit, je suis tombé sur un logiciel de création de jeu offert avec un magazine : Klik & Play. On positionnait visuellement des éléments sur une scène, et la partie logique se faisait via une sorte de tableur, dans lequel les évènements correspondaient aux lignes, et les entités (joueur, élément du décor…) aux colonnes. Chaque case représentait donc une action à effectuer.

    Tout se faisait de façon visuelle. C'était ultra-intuitif, et super gratifiant pour un enfant.

    Ça a été une vraie révélation pour moi. Je suis d'ailleurs assez rapidement passé à la version supérieure, The Game Factory – après avoir copieusement tanné mes parents pour qu'ils me l'achètent chez le revendeur informatique du coin, s'entend ;)

    J'avoue écrire ce message avec un brin de nostalgie, car cela a sans doute grandement participé au fait que je sois développeur aujourd'hui.

    Ce logiciel existe toujours, et s'appelle maintenant Clickteam Fusion. Ce n'est pas libre, mais il existe une version gratuite.

    https://www.clickteam.com/fr/clickteam-fusion-2-5-free-edition

    Je crois que cela tourne avec Wine.

    Et je crois également que je vais le réinstaller cet après-midi, et déguster quelques madeleines de Proust.

  • # TIC-80

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

    J'ai vu passer la console TIC-80 dans une dépêche. C'est libre, gratuit et ça a l'air de faire ce que tu demandes.

    Un LUG en Lorraine : https://enunclic-cappel.fr

    • [^] # Re: TIC-80

      Posté par  . Évalué à 5.

      TIC-80 est très bien effectivement (tout comme pico-8 indiqué plus haut), et pas très compliqué, par contre suivant l'âge des jeunes il sera plus adapté s'ils connaissent un minimum d'anglais, puisque la doc et les tutoriels sont quasi intégralement dans cette langue.

  • # Code n' Slash

    Posté par  . Évalué à 4.

    Ça ne répond pas exactement à ce que tu recherches mais je conseille quand même de jeter un œil à Code n' Slash.
    Y a rien à installer, on code directement dans le navigateur des mini-jeux d'aventure où le personnage doit trouver la sortie de la pièce en évitant les pièges et les monstres. Ça plaît aux gamins.

    Ce que j'aime dans Code n' Slash, c'est qu'il faut coder avec un vrai langage de programmation que les adultes utilisent pour de vrai dans la vraie vie : le javascript.
    (je me doute que cette dernière phrase est un véritable appeau à trolls, mais tant pis, je la laisse quand même)

    L'API du jeu est en français. Par exemple, pour déplacer un monstre jusqu'à la case de coordonnées (3,8) on écrit monstre.vaVers(3, 8);. Alors on aime ou on aime pas, mais pour des gamins en fin de primaire qui ne sont pas bilingues anglais, ça permet de rester concentré sur la programmation, plutôt que de se demander sans cesse "comment on dit ça en anglais" quand il s'agit de chercher dans la doc de l'API.

  • # Linotte

    Posté par  . Évalué à 2.

    y'a linotte qui est pas mal aussi :

    http://langagelinotte.free.fr/

    Désavantages :
    - c'est passé récemment de la version 2 à la version 3, et tous les tutos sont encore pour la version 2. La version 3 simplifie des choses de la 2, du coup tout ne sera pas compatible depuis les tuto.

    Avantages :
    - c'est entièrement francisé
    - ce n'est pas axé complètement jeux vidéos, mais il y a des facilités pour.

  • # renpy

    Posté par  . Évalué à 4. Dernière modification le 13/12/20 à 11:02.

    Je suis un peu hors sujet, car renpy https://www.renpy.org/ ne correspond pas à tes contraintes, mais pour l'avoir utilisé en classe de découverte de l'outil informatique en primaire, c'est un framework très sympa avec lequel nous avons écrit le voyage scolaire de fin d'année.

    La courbe d'apprentissage est très douce, tu peux très bien te satisfaire des fonctions intégrées qui sont très simples à prendre en main même pour des enfants, et par la suite intégrer du code python personnalisé, ou utiliser du code déja existant pour l'intégration de mini jeux par exemple.

    Et puisqu'il est multiplateforme, tu peux faire tourner le projet sur un pc, un mac, un android, dans un site web…

    Une bonne introduction à mon avis, avec laquelle les enfants sont rapidement autonomes (ou presque).

    edit : pour une bonne introduction à la programmation, j'avais aussi utilisé le site https://code.org/ qui présente les bases au travers d'activités amusantes.

    • [^] # Re: renpy

      Posté par  . Évalué à 3.

      Sinon (plus possible d'éditer après 5 min), j'avais aussi envisagé Robocode https://robocode.sourceforge.io/ , où l'on programme l'IA de son tank avant de le lâcher dans l'arène en espérant avoir créé la meilleure IA.

      Je l'avais écarté justement car il s'agit de tanks qui tirent, je ne voulais pas froisser la susceptibilité de certains parents… Mais comme il s'agit de tes neveux, peut-être que ce jeu pourrait te convenir ?

      Il est intéressant sur le principe, observation, adaptation, et on code sans s'en rendre compte.

  • # phaser

    Posté par  (site Web personnel) . Évalué à 4.

    Je suis étonné que personne n'en ai parlé, alors je m'y colle:

    http://phaser.io/

    Ça semble correspondre à ton cahier des charges.
    Pour l'éditeur, voir ici:

    https://phasereditor2d.com/

    Je n'ai pas essayé l'éditeur, je ne suis pas trop amateur de ces machins qui rajoutent une couche entre toi et l'API. Je fais ça à l'ancienne (vim roulez) mais je comprends que pour un débutant, un éditeur puisse être intéressant.

    Les exemples sont nombreux (un peu trop ?) et documentent chacun une fonctionnalité bien précise.

    http://labs.phaser.io/

    Seule contrainte: faire tourner un serveur web en local pour servir les pages.
    lighttpd fait très bien l'affaire pour ça (essayé et approuvé).

    Passe nous voir sur IRC si tu as d'autres questions ;)

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

    • [^] # Re: phaser

      Posté par  (site Web personnel) . Évalué à 4.

      J'utilisais Phaser version 2 et puis ils ont tout cassé :(

      Au final je suis plus heureux en tapant directement sur les API du brouteur.

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

      • [^] # Re: phaser

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

        Je ne connais que Phaser3 (enfin «connaître» est un bien grand mot).

        Tu utilises directement pixijs , ou une lib bas niveau de ce genre ?

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

        • [^] # Re: phaser

          Posté par  (site Web personnel) . Évalué à 6.

          Aucune lib, juste du js moderne et des API du brouteur comme Canvas et Gamepad.

          Je ferais un journal bientôt quand j'aurais plus avancé mon projet.

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

  • # Une question d'âge? + propositions

    Posté par  . Évalué à 1.

    Bonsoir,

    Sujet très intéressant où j'ai découvert plein d'outils passionnants.
    Les propositions sont très variées. En effet, il me semble que la réponse dépend de l'âge des gamins ou plus exactement de leur degré d'abstraction et de leur maîtrise des outils numériques. Après on peut trouver des disparités importantes pour une même tranche d'âge.

    Je me permets de faire de propositions qui, semble-t-il, n'ont pas été faites.
    Ce sont selon moi des solutions adaptées à un public assez large, du débutant au relativement aguerri.
    WoofJS Une librairie JavaScript qui permet (promet?) de faire la transition entre les langages par blocs (comme Scratch) et les langages textuels (ici proche du JavaScript). Tout peut se faire en ligne.
    AppInventor qui permet de fabriquer des applications pour Android à l'aide d'un langage de programmation par blocs. Ce n'est pas spécialisé dans les jeux, mais ça peut se faire et il est possible d'exploiter les divers capteurs du smartphone et de développer une application "sociale". Ça vient des labos du MIT comme Scratch.
    S'ils veulent compiler pour iTruc, il y a l'alternative Thunkable mais il me semble que ce n'est pas libre.

    Voilà…

    MdC

    • [^] # Re: Une question d'âge? + propositions

      Posté par  (site Web personnel) . Évalué à 6. Dernière modification le 15/12/20 à 22:10.

      C'est assez laborieux les outils de programmation par bloc au delà d'un hello world :(

      Il ne faut pas trop chercher à masquer les algos, après tout un élève de primaire peut faire du basic, un collégien est capable de faire de l'assembleur ou du C…

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

      • [^] # Re: Une question d'âge? + propositions

        Posté par  . Évalué à 0.

        Les blocs permettent de simplifier des tâches a priori plus complexes à mettre en place dans un langage "classique". Mais c'est un peu leur mentir sur ce qu'est l'informatique et la programmation, en effet.

        En France, l'apprentissage des rudiments d'un langage textuel (Python) ne commence pas avant le lycée. C'est aussi là où l'on découvre quelques concepts fondamentaux tels que "comment fonctionne internet?", "que sont les données et comment les traiter" (avec un tableur p. ex.)
        Je suis d'accord que certains enfants pourraient réaliser ces apprentissages beaucoup plus tôt mais, pour l'élève moyen, je doute. Les collégiens ont beaucoup de mal avec les variables en maths. Donc les pointeurs ou autres notions, je ne pense pas que ce soit à la portée de tous…

        MdC

        • [^] # Re: Une question d'âge? + propositions

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

          Les collégiens ont beaucoup de mal avec les variables en maths. Donc les pointeurs ou autres notions, je ne pense pas que ce soit à la portée de tous…

          Parce que ça ne les intéresse pas? Là on parle d'une activité ludique / passion.

          J'ai fait mon premier jeu en C++ & assembleur sous DOS au collège et sans internet pour aider. Il y a des langages beaucoup simple aujourd'hui, la doc est abondante, les forums d'aide nombreux, des API remplacent les mov ax, 13h ; int 10h, chaque famille a un PC…

          Les jeunes ne sont pas plus bêtes que les générations précédentes, ils devraient s'en sortir :-)

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

  • # Flutter

    Posté par  . Évalué à 0.

    Bonjour,
    Cela peut paraitre incongru, mais j'ai vu quelques personnes développer des jeux avec le framework Flutter. Par exemple : https://www.didierboelens.com/fr/2018/11/flutter-crush/

    Pour information ou rappel, flutter est un framework multiplateforme (surtout mobile) qui est porté par Google. Le code de flutter est libre (licence MIT de mémoire ). Je l'utilise depuis 1 an et demi et je le trouve pratique pour apprendre et itérer rapidement (notamment grâce à la fonctionnalité de hot reload, un rechargement de l'application prenant en compte les modifications apportées au code tout en conservant l'état). Bonne journée !

Suivre le flux des commentaires

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