Je vous dois des excuses. Mais FreeA arrive.
Et j'ai développé un jeu avec ChatGPT en un week-end
Hello !
Bienvenue aux 304 personnes qui ont rejoint FreeA depuis la dernière fois, on est maintenant 4713 !
Au programme du jour :
- Pourquoi j’ai disparu + Le lancement de FreeA se rapproche !
- J'ai dev un jeu avec ChatGPT. C'est complètement fou. Bref.
- Les news dans le monde de l'IA
- Ma pépite de la semaine
- Le sujet de la semaine prochaine
Si quelqu’un vous a partagé cette édition, n’hésitez pas à vous abonner pour ne pas manquer les prochaines ;)
Cet espace est désormais dédié aux partenaires. Si vous proposez un outil ou un service en rapport avec l'IA et que vous voulez le faire connaître auprès de personnes qualifiées, répondez à ce mail ou envoyez moi un message sur Linkedin pour qu'on en discute.
J’ai fait une connerie.
Je suis parti en vacances dimanche 16.
Cette édition et la suivante étaient déjà prêtes pour couvrir mes 2 semaines de vacances.
Sauf que…
J’ai oublié de programmer les éditions.
😅
Et là où j’étais, je ne captais pas internet.
Donc bon.
Mais maintenant, je vais compenser.
Déjà, les prochaines éditions sont folles, vous allez adorer !
Et surtout, FreeA arrive bientôt… 😇
FreeA arrive.
Pour ceux qui n'étaient pas là au départ, FreeA, c'est mon projet de créer la plus grande communauté francophone sur l'IA pour rendre l'IA accessible à tous.
Au programme : Forum d'entraide, espace de discussion sur l'IA, cours pratique pour progresser, interventions d’experts, etc
A l’origine, le projet devait sortir fin juin.
Hum. 😅
J'ai pris du retard pour des raisons pros et persos.
Mais ça y est, FreeA est prêt.
Pourtant, je ne le lance pas aujourd’hui.
Le 7 août, FreeA sera ouvert au public.
Ou pas.
FreeA ouvre le 7 août à 50 bêtas testeur.
Leur but : tester et expérimenter pour détecter tout ce qui ne va pas, et tout ce qui pourrait être mieux.
(Pour résumer : ils font leur liste de courses de ce qu’ils veulent sur le projet)
Ensuite, FreeA sera ouvert à cette newsletter (uniquement) à partir du 14 août.
L'ouverture publique sera début septembre.
Ce projet est complètement fou.
Ambitieux.
Démesuré.
Mais il va voir le jour, avec vous.
Pour faire partie des bêtas-testeurs, remplissez ce formulaire :
https://forms.gle/97istakUcWNoQKkc6
J'ai développé un jeu vidéo avec ChatGPT en un week-end.
Je te raconte :
(Oui, c'était le sujet le moins voté, mais j'avais déjà commencé et ça me faisait kiffer. Bref.)
Un samedi, alors que j'écrivais l'édition de FreeA sur les plugins, j'ai eu une idée.
Développer un jeu vidéo roguelike en quelques heures avec le nouveau plugin de ChatGPT :
Code interpretor.
(Définition de jeu roguelike : Les rogue-like sont des jeux générés aléatoirement, c’est à dire que chaque partie est différente de la précédente. Le donjon que vous arpentez aura le même nom, mais sa topographie ne sera pas la même. Idem pour les objets que vous pourrez découvrir à l’intérieur.)
C'est parfait :
Je pourrais montrer la puissance des plugins, et jouer en même temps.
Je pensais y passer 20-30 minutes. Mais tout ne s'est pas passé comme prévu...
(Spoiler : j'ai réussi. Mais j'ai mis plus longtemps que prévu)
En ayant l'idée, je me suis rappelé une vidéo d'un créateur sur l'IA.
Il avait créé un jeu en partant de 0 grâce à l'IA, en y connaissant rien en code.
Je regarde sur la chaine de Matt Wolfe et... bingo, je tombe sur cette vidéo.
C'est exactement l'exemple dont j'ai besoin.
Pour résumer la vidéo, voici ce qu'il s'est passé :
Matt Wolfe décide de créer un jeu de plateforme en 2D jouable sur son navigateur.
Il utilise GPT-4, mais pas de plugin.
Pour cette édition de la newsletter, je vais aborder quelques notions très simples de code.
Un jeu jouable sur son navigateur utilise 3 langages de programmation :
HTML, pour la page internet
CSS, pour le style graphique
JavaScript, pour le code
Il faut donc au moins 3 fichiers différents dans son code.
(C'est une information importante pour la suite)
Après avoir vu cette vidéo, je me lance dans la création du jeu !
Mais pas sur ChatGPT.
Plutôt que de partir comme un bourrin, je décide de structurer mon jeu avant de commencer le code.
Je crée une visualisation graphique de toutes les interactions et actions du jeu.
J'écris une description complète du jeu.1
Je schématise le fonctionnement complet :
(Oui, illisible, mais vous comprenez l’ambition)
Et là, premier problème : je me suis un peu enflammé.
Je ne le sais pas encore, mais je veux faire quelque chose de bien trop complexe.
Je commence à développer le jeu avec code interpretor.
Et là, premier dilemme.
Quel type de jeu ?
Est-ce que je fais un jeu jouable sur son navigateur ? Non, c'est trop basique. (Quel arrogant j'étais)
Je vais faire mieux, je vais faire un vrai jeu avec Unity, un outil pour créer des vrais jeux complexes !
Sauf que j'ai oublié quelque chose : je ne suis pas développeur senior de jeu vidéo.
J'ai supprimé unity, et je suis parti sur un jeu jouable sur le navigateur.
J'ai donc créé 3 fichiers :
index.html (pour la page internet)
style.css (pour le style)
game.js (pour le code)
Le plus important, c'est le dernier fichier.
C'est dans ce fichier que se passe tout le jeu.
Mais sans une bonne page html, mon jeu sera tout moche.
Pour l'instant, je ne m'en occupe pas.
Et je commence à développer le jeu avec ChatGPT.
Voici comment je fais :
Sur le premier message, je lui donne la description du jeu, et je lui explique que c'est un expert en développement de jeu vidéo, et qu'il va développer avec moi ce jeu vidéo étape par étape.
Il devra écrire le code, me dire ou le mettre dans mon fichier, m'expliquer comment fonctionne ce code, et me dire les prochaines choses à développer.
Au départ, ça fonctionne bien.
Je définis le personnage du héros, le monstre, le fonctionnement principal, on avance !
Puis je commence à développer les différentes mécaniques du jeu avec ChatGPT.
C'est génial, je vois le jeu prendre progressivement forme sous mes yeux à travers le code.
J'ai vraiment la sensation que ça va marcher.
Comme tout mon code javascript n'est que sur un seul fichier, il commence à être un peu long, mais ça va. (pour l'instant)
Je demande à ChatGPT de créer le fonctionnement des combats et...
"Vous avez atteint la limite de messages. Réessayez dans 3 heures ou utilisez GPT-3.5"
J'ai essayé avec GPT-3.5 et... mauvaise idée.
Même mon logiciel de code, Visual Studio Code, détectait des erreurs de syntaxe.
(J'ai aussi essayé avec le playground, mais je garde le sujet du playground pour une prochaine édition)
Alors j'ai attendu jusqu'au lendemain.
(On est déjà à 2 heures de taf)
Le lendemain, chaud, je m'y mets.
Je retourne sur la conversation mais... "code interpretor a été déconnecté. Tous les calculs et codes précédents ont été oubliés"
Ah.
Je dois donc relancer une nouvelle conversation.
Mais tout va bien, j'ai juste à lui réexpliquer mon jeu et upload mon code !
Car oui, on peut upload des fichiers à code refactor.
J'upload mon fichier html et... Il est passé où, le bouton d'upload ?
Spoiler : je pouvais le chercher longtemps, je n'allais pas le trouver.
Code refactor limite l'upload à 1 fichier (le + gros défaut actuellement selon moi)
(Astuce : upload un fichier zip avec tous les fichiers. Mais ça, je l'ai découvert plus tard)
Ah.
Donc j'upload seulement mon code en javascript.
Je termine (théoriquement) de coder, et normalement, toutes les logiques sont en place !
Mon jeu est censé fonctionner parfaitement.
Maintenant, il ne reste plus qu'à relier le code à la page internet. Et créer la page internet.
On appelle ça le backend et le frontend : le backend, c'est le code derrière, c'est ce que j'ai fini. Mais l'utilisateur ne voit pas ça. Lui, il voit le frontend, la page internet sur laquelle il clique.
Et justement, je dois créer le frontend (ma page internet en HTML) et le relier au backend (pour que quand je clique sur un bouton, le code se déclenche)
J'explique ça à ChatGPT, et il me répond "T'inquiètes pas mon pote je te fais ça ! Voici ta page HTML : {code}, et ajoute juste ces 3 lignes de code sur ton fichier game.js"
Si vous êtes développeur, vous devez rigoler.
J'ai suivi ses instructions.
J'ai chargé mon fichier html sur internet.
Et... Bon, c'était moche mais ça c'est pas grave.
Mais surtout, il manquait la moitié des infos, et aucun bouton ne fonctionnait.
Je l'explique à ChatGPT, et il me répond : "T'inquiète pas, j'ai juste fait une petite erreur. Ajoute ces deux lignes sur ta page internet, ces 3 lignes un peu ou tu veux sur ton code javascript et tout va se régler"
Spoiler : non.
Au final, après pas mal d'essais, j'arrive à afficher 80% des infos, et 2 boutons sur 5 fonctionnent. Parfois.
Par contre, le combat ne se lance pas.
Le problème, c'est que c'est deux fichiers. Et que Code interpretor a du mal à faire le lien entre les deux.
C'est dépité, après plusieurs heures de travail, que je vais me coucher.
Et le soir, j'ai une idée.
"Mais Code interpretor, il peut tester directement le code en python non ? Et c'est qu'un seul dossier. Génial, je vais lui demander de refaire le jeu en python !"
Au moins, je ne repars pas de zéro.
Je passe la description du jeu + le code actuel à ChatGPT, et je lui demande de réécrire l'intégralité du code en python.
Je percute après quelques échanges que le jeu sera un jeu console (un jeu texte dans le terminal de l'ordinateur). Je suis déçu, puis je pense au nombre d'heures que j'ai déjà perdu pour "une idée marrante".
ChatGPT écrit le code, je teste, erreur.
Là, c'est juste un jeu de tout tester et de lui faire corriger les erreurs dans le code au fur et à mesure.
Après une quarantaine d'échanges, et plus d'une dizaine d'heures, ça y est, mon jeu fonctionne.
Il est simplifié, je n'ai pas d'effets très complexes, mais au moins il est déjà jouable.
Et fun.
Je crois.
Testez, vous me direz ;)
Car oui, vous pouvez y jour.
Tout ce que vous avez à faire, c'est le télécharger, et l'exécuter avec "python launcher".
Voici le lien de téléchargement du jeu :
https://we.tl/t-iAzsJ1QmeQ
Et oui, au final, le jeu n'est pas un triple A, et j'y ai passé pas mal de temps.
Mais il faut quand même se rappeler que :
- Je n'ai presque aucune compétence en code
- J'ai développé un jeu relativement complexe
- C'était la première fois que je me servais du code interpretor
Si je voulais recréer le même jeu en partant de 0, j'y passerai 1 heure. Max.
Et je pourrais faire bien mieux.
Mais j'ai d'autres expériences marrantes à faire avec Code Interpretor.
Comme vivre un RPG avec des problèmes de physique et un scénario réalistes dans l'espace.
Oui, c'est sérieux.
Je vous raconterai peut-être ça une prochaine fois :)
PPS : Quelques easter eggs (des secrets) sont cachés dans le jeu. Il se peut qu'en gagnant, vous débloquiez une promotion secrète sur FreeAssistant. 😇
(Attention, le code ne fonctionne que pour les 5 premiers à gagner le jeu)
Et partage la newsletter si tu connais un ami qui veut s'amuser à tester le jeu ou qui veut développer le sien avec ChatGPT !
Les news dans le monde de l'IA
Je suis encore jetlagué.
La semaine prochaine, vous aurez toutes les news des 3 dernières semaines.
Mais là, je suis fatigué.
(Lire les annonces pour comprendre)
La pépite de la semaine :
Cet outil enregistre tes visio et te les résume automatiquement.
Et il prend 10 secondes à mettre en place :
1- Va sur ce site : https://tldv.io/
2- Clique sur "Get tl;dv for Meet"
3- Ajoute l'extension à chrome
4- Connecte toi avec ton compte google
5- Reçois automatiquement l'enregistrement et le résumé de tes visios par mail
(En vrai, ils permettent même de faire bien plus, et de transformer vos visio en vraie source de données ultra intéressantes. Ca devient un conseiller. Mais j'en parlerai peut-être dans une édition où je rentre dans le détail de 3-4 outils différents en même temps)
Pour la semaine prochaine :
Midjourney ! Deep Dive dans Midjourney, sur l'histoire de la boite, leur renta, le fonctionnement, la technique, les méthodes pour s'en servir, les concurrents qui font du bruit et son potentiellement gratuits, et les prévisions d'évolution !
Après pas mal de tests, GPT-Engineer est encore trop expérimental pour vraiment réaliser des projets complexes et j'attends donc avant d'en refaire une édition dédiée.
Mais le projet progresse très vite, avec plusieurs mises à jour par semaine.
Et j'ai vu 48 heures avant de partir que finalement, le problème d'alignement était passé devant aux sondages. Tant pis.
Par contre, les sondages vont désormais être 2 semaines en avance pour prendre de l’avance :)
Pour dans 2 semaines, au choix :
1- Explication du problème d’alignement de l’IA, où la raison la plus probable pour que l’IA nous extermine.
2- Comparatif entre ChatGPT, Bard, Claude, et les avantages que possèdent chacun des modèles.
3- Deep Dive sur le playground d’OpenAI : comment il fonctionne, depuis quand, quelles sont les différences avec ChatGPT, comment mieux l’exploiter.
4- Comment se servir de l’IA pour automatiser… sa vie ?
5- Que sont les AI Automatisation Agency (AAA), la nouvelle version à la mode du SMMA pour gagner de l’argent ? Comment elles fonctionnent, quels sont réellement leur intérêt et comment en créer une en tant que débutant ?
Si cette édition t'as plu, et que tu connais quelqu'un à qui elle peut servir, tu peux la partager juste ici :
Et si ce n'est pas encore fait, tu peux t'abonner :
Voici la description (finale et simplifiée) du jeu :
*Je développe un roguelike en 2D basé sur du tour par tour, où le héros doit monter des étages. Son objectif est d’atteindre le 20e étage.
Il n’y a aucun mouvement à faire, le joueur doit uniquement faire des choix à chaque étage avant le combat.
La difficulté augmente à chaque étage, son but est donc de s’améliorer et de construire des synergies entre ses statistiques au fur et à mesure pour vaincre facilement.*
*A chaque étage, il y a 2 phases.
1ère phase : Le joueur choisit entre 3 actions :
Soin de ses PV, d’une somme aléatoire entre 18 et 56.
Amélioration. Le joueur choisit alors s’il veut une amélioration aléatoire ou s’il veut décider la statistique à améliorer. Une amélioration aléatoire est plus importante qu’une amélioration choisie.
Invocation. Le joueur invoque deux objets au hasard
2ème phase : Le héros affronte un monstre.
Le joueur n’a pas de contrôle sur cette phase, elle se fait automatiquement en tour par tour.*
*Voilà les statistiques du héros au départ :
Points de vie = 100
Défense = 10
Attaque = 10
Régénération des points de vie = 0
Poison = 0
Taux critique = 20%
Dégâts Critiques = 200%
Il est impossible d’avoir des statistiques négatives.
En cas de statistique négative, elle remonte automatiquement à 0.
En cas d’amélioration d’une statistique choisie, voici la progression :
Augmentation de 15% si la statistique concernée est les points de vie, la défense ou l’attaque.
Augmentation de 1 points sur le poison ou la régénération.
Augmentation de 10% du taux critique
Augmentation de 20% des dégâts critiques.
En cas d’amélioration d’une statistique aléatoire, la progression est 2x plus importante.*
*Les objets ne sont pas des consommables, et restent toujours actifs
Voici les objets possibles :
*liste d'items, les effets augmentent ou réduisent une ou plusieurs statistiques du héros**
*Voici comment fonctionnent les combats :
A chaque tour, le héros joue, puis c’est le tour du monstre.
Il y a 2 étapes dans le tour du héros :*
- il applique la statistique de régénération et subit le poison du monstre adverse
- Il attaque le monstre adverse
*Pendant son tour, le monstre ne fait qu’une action, une attaque sur le héros adverse.
Voici comment fonctionne une attaque :
Attaquant - défenseur = dégâts. Les dégâts représentent la somme déduite des PV de la personne qui subit l’attaque.
Attaquant = attaque + % de chance de taux critique
Défenseur = Défense / 2*
*Voici comment fonctionne les monstres :
Voilà les statistiques de base du monstre :
Points de vie = 30
Défense = 6
Attaque = 7
Régénération des points de vie = 0
Poison = 0
Taux critique = 10%
Dégâts Critiques = 150%
A chaque étage, il gagne une augmentation aléatoire d’une statistique.
Voici la progression :
Augmentation de 15% si la statistique concernée est les points de vie, la défense ou l’attaque.
Augmentation de 1 points sur le poison ou la régénération.
Augmentation de 10% du taux critique
Augmentation de 20% des dégâts critiques.