Gamecodeur - Les coulisses
Open in Telegram
Mes formations et mes meilleurs conseils en avant première.
Show more754
Subscribers
No data24 hours
+17 days
+530 days
Posts Archive
Je m'amuse avec ma "Super Structure" en C#. Je crée une classe "CPCMulator" permettant de mimer l'affiche du mode 0 de l'Amstrad CPC.
Ça sera cadeau avec la formation la semaine prochaine. Je ferai une vidéo pour vous expliquer comment ça marche. Je vais aussi ajouter un système de Sprites 8x8 façon pico8 avec uniquement les couleurs du CPC. On va pouvoir faire des jeux au look CPC mode 0 !
Je m'amuse à utiliser mon framework Raylib "Structure Facile" pour créer un système mimant l'affichage du mode 0 de l'amstrad CPC. Je m'amuse comme un gamin.
Youtube : "Depuis que tu as créé ta chaîne, tu as publié 945 vidéos."
Tu m'étonnes que j'ai l'impression d'avoir tout dit :)
Tu connais Jean-Michel Amoitié ?
C'est un programmeur qui commence à bien savoir coder.
Mais il fait un truc étrange :
A chaque fois qu'il commence un projet, il part de zéro.
Ou pire encore, il prend des morceaux d'un ancien projet, qui sont tellement spécifiques qu'il est obligé de supprimer plein de trucs.
Au final, soit il perd un temps fou, soit il perd un temps fou + il a des bugs bizarres...
Longtemps j'ai été Jean-Michel Amoitié...
Je pensais que mon problème c'était le framework ou le moteur que j'utilisais.
Ou que je n'étais pas assez rapide.
Ou bien, j'ai honte de le dire, je trouvais ça cool de recommencer à zéro, je pensais que c'était normal !
Mais ce qui se produisait était terrible.
Au lieu de m'améliorer, je stagnais.
Je n'avais pas du tout envie de commencer des nouveaux projets, donc je m'acharnais sur des projets inutiles.
Tout ça parce qu'il m'était trop compliqué de commencer de zéro...
Je réinventais la roue à chaque fois.
Et aucun de mes projets n'avait une véritable structure.
C'était toujours un bricolage, dans lequel je me perdais rapidement.
Je reculais au lieu d'avancer.
La plupart des programmeurs débutants sont des Jean-Michel Amoitié.
Leur plus gros problème c'est la "structure" de leur jeu.
Et de devoir recommencer à zéro à chaque nouveau projet.
Pourtant ils sont hyper motivés.
Au lieu de multiplier les expériences en créant plein de jeux, il stagnent.
Parce que recommencer à zéro, ça ne marche pas, c'est une perte de temps !
La seule chose qui compte c'est le gameplay.
C'est ce que le joueur va voir.
Il se fout de la structure de ton jeu.
Pourtant elle existe.
Mais perdre du temps à la réinventer à chaque projet t'éloigne de la réalité...
Tu es là pour coder du gameplay !
Lorsque tu auras une "Structure Facile" que tu peux mettre en place en 5 mn.
Une structure simple mais suffisamment puissante pour s'adapter à tous tes besoins...
Tu seras choqué de ta productivité et de ta créativité.
Tes jeux seront plus facile à commencer.
Tu vas enfin pouvoir montrer ce dont tu es capable niveau idées et gameplay.
Tu te libéreras de beaucoup de contraintes.
Ta structure te permettra d'avoir un code plus lisible.
Mieux découpé.
Plus fiable.
Et ta "Structure Facile" va rapidement devenir une "Super Structure" car tu va l'adapter à tes besoins.
A ta façon de penser.
Au genre de jeux que tu veux créer : RPG, Puzzle, Cartes, Action, Aventure...
En utilisant le C# avec cette Super Structure, tu vas devenir un créateur de jeux vidéo prolifique et soulagé.
C'est la combo parfaite :
Un langage hyper puissant, rapide, et très polyvalent.
Couplé à une structure de jeu facile à mettre en place (5 minutes !) et évolutive.
Si ça t'intéresse, c'est ce dont je vais te parler dès lundi et dans les jours qui suivront.
Tiens toi prêt, ça va changer ta vie d'apprenti codeur de jeux vidéo.
A lundi.
Je sors de Leroy Merlin je suis épuisé.
Avec ma femme on doit choisir 5 luminaires.
Le 1er problème : on déteste les luminaires.
Le 2ème problème : au bout de 1 heure on est devenu totalement incapables de faire un choix.
Le savais tu ? Nous avons une capacité limitée à choisir.
Au bout d'un certain nombre de choix, le cerveau sature.
C'est comme s'il y avait un quota.
Quand ce quota est atteint... On bloque.
Certaines personnes ont compris cela très tôt.
Barack Obama, par exemple, a révélé qu'il portait toujours les mêmes costumes pour réduire le nombre de décisions qu'il devait prendre chaque jour.
Steve Jobs faisait de même, avec son fameux col roulé noir et son jean, et Mark Zuckerberg est souvent vu en t-shirt gris.
Elon Musk est toujours en Jeans avec un T-shirt.
Ces personnes qui ont beaucoup de responsabilités ont compris que la prise de décision est une ressource limitée, comme du mana !
En psycho on appelle cela la "fatigue décisionnelle".
Lorsque notre cerveau est submergé par trop de choix, notre capacité à prendre des décisions diminue.
C'est pour ça qu'après une heure à comparer des luminaires, ma femme et moi étions complètement perdus.
Pour minimiser cette fatigue, il faut éviter d'avoir à choisir en permanence pour des trucs insignifiants.
En simplifiant les choix qui ont peu d'intérêt, on garde notre énergie mentale pour des décisions plus importantes et pourquoi pas créatives.
Alors, la prochaine fois que tu te sens submergé par les choix et que tu te sens complètement débile au bout d'un moment, incapable de choisir, tu sauras pourquoi 🤗.
Voilà le lien avec le coupon de réduction pour ceux qui n'ont raté ma formation Raylib C# :
https://school.gamecodeur.fr/la-revolution-raylib-programmer-facilement-des-jeux-2d-ou-3d-en-csharp?coupon=PRESALEFW
Rattrape le temps perdu !
En attendant cette formation hyper utile, et si tu veux devenir expert en programmation 2D en pur C# avec la révolutionnaire librairie Raylib, je propose pendant quelques jours ma formation "Programmer facilement des jeux 2D ou 3D en C#" avec une réduction de 70%.
Pour activer le coupon :
🔓 https://school.gamecodeur.fr/la-revolution-raylib-programmer-facilement-des-jeux-2d-ou-3d-en-csharp
Crois moi cette formation est idéale pour les développeurs qui veulent une base solide pour leurs projets de jeux en C#. En créant ton propre squelette de code, tu gagneras en efficacité et en flexibilité, ce qui te permettra de te concentrer sur la création de contenu et d'innovations pour tes jeux.
Même si tout le monde ne comprend pas encore ce que ça peut changer pour eux, tant pis, je sais que je créé ici une des formations les plus utiles pour débloquer les débutants et leur faire faire un pas de géant en architecture de jeu, sans complexité (ma formation est accessible aux débutants) !
Mais c'est quand cette formation ?
Je suis dessus, elle arrive d'ici la fin du mois !
Si tu peux la découvrir plus en détail et t'y préinscrire, je t'enverrai un code promo lors de sa sortie dans 2 semaines, clique sur ce lien :
https://school.gamecodeur.fr/la-revolution-raylib-cree-ton-framework-reutilisable
Jean Claude m'a écrit pour me dire :
"je suis intéressé par ta prochaine formation mais je ne suis pas sûr de savoir à quoi m'attendre quand tu parles de framework".
Pour rappel je bosse donc sur une formation qui me tient particulièrement à coeur que j'ai intitulée "Crée ton framework de jeu réutilisable en C#".
Vous êtes une centaine à vous être préinscrits, et vous êtes nombreux à l'attendre impatiemment.
Mais je comprends que ce soit encore flou pour certains.
Le terme "Framework" semble vous perturber.
En effet il est utilisé souvent, par exemple pour désigner Love2D ou encore Monogame. Et en plus c'est de l'anglais my god!
Pourtant le terme Framework est bien adapté à ma prochaine formation car un framework de jeu vidéo est avant tout du "code réutilisable pour aider à accélérer la programmation d'un jeu vidéo".
A quoi va te servir ma formation ?
Ma formation va te guider pas à pas en quelques heures pour construire un squelette de code de jeu vidéo réutilisable en C# avec Raylib.
Je devrais peut être renommer ma formation en :
"Apprends à construire un jeu en C# avec Raylib".
Qu'en penses-tu ?
Tu peux voter en cliquant sur ce lien :
https://forms.gle/QPM5PfeUrJxnQ3pw8
Ce squelette de code va ensuite t'aider à démarrer rapidement le développement de tes propres jeux vidéo.
Concrètement et sans blabla ?
Je vais essayer de te projeter dans une situation.
Imagine que tu veux commencer à coder ou prototyper un jeu en 2D car tu viens d'avoir une idée.
Tu veux faire ça comme un pro, en C# et en pur code.
Tu dois faire quoi aujourd'hui ? Partir de zéro ?
Avec ce que tu auras créé avec ma formation, au lieu de partir de zéro, tu vas partir d'une base de code que tu auras personnalisé pour tes besoins.
Un peu comme des fondations.
Cette base de code va te permettre en 5 minutes d'avoir les éléments de base indispensables à la structure d'un jeu : un menu, un système de scènes, des quoi sauvegarder, débogager, etc.
En utilisant ce squelette, tu gagnes un temps fou et tu évites de réinventer la roue à chaque nouveau projet.
Voici les fonctionnalités que tu vas programmer :
- Un "GameState" transversal : Un système de partage d'informations et de fonctions accessibles depuis n'importe où dans le code de ton jeu, facilitant la gestion globale de l'état du jeu.
- Un gestionnaire de scènes intégré : Tu pourras gérer facilement les différentes scènes de ton jeu (menus, gameplay, game over, etc.) avec un gestionnaire de scènes efficace et intuitif.
- Un système de scènes évolué : Tu vas pouvoir ajouter une scène à ton jeu en 1 minute et profiter d'un système complet pour la création, la mise à jour, la prise de focus (show), la disparition (hide), et la destruction de la scène.
- Une structure de jeu complète : A la fin de la formation tu auras une base avec un menu, des options (volume sonore, plein écran) qui se sauvegardent, une scène de gameplay, un système de création de listes de boutons, etc.
- Une classe Sprite : Une classe, évolutive, qui facilite l'affichage et la gestion de la position des éléments graphiques de tes jeux.
- Un exemple de scène de jeu : Tu démarres avec un exemple de scène incluant un compte à rebours, une liste de sprites et une fonction de pause.
- Un système de paramètres de jeu universel : Tu peux sauvegarder et restaurer des valeurs de tout type dans un fichier. Idéal pour créer un système de sauvegarde.
- Un panneau de debug universel : Tu sauras afficher des informations de debug en temps réel en superposition, activable ou désactivable à la compilation.
En prime tu profiteras de nombreux exemples réutilisables de concepts de programmation C# et Raylib (héritage, pattern singleton, GUI, sauvegarde en JSON, animation de texte, exceptions, dictionnaires, etc.).
Toujours pas convaincu ?
Mon mail de ce matin :
Hier je n'ai pas rédigé mon email quotidien...
Pourquoi ?
Car j'avais décidé de commencer l'enregistrement de ma nouvelle formation "Crée ton framework de jeu réutilisable en C#" que je t'annonce depuis quelques semaines.
Cela fait des jours que je fais des tâches à la con : compta, support, logistique de la construction de ma maison, problèmes perso...
Et quand la journée se termine : je n'ai pas travaillé pour moi !
Hier j'étais déterminé à commencer immédiatement par ma tâche prioritaire : produire ma formation !
Résultat : plusieurs vidéos sont déjà enregistrées !
Mais je n'ai pas rédigé mon mail quotidien, j'aurais dû le faire la veiller et le programmer, ce que je n'ai pas pensé à faire.
Je m'en excuse donc.
Mais il en reste une règle importante :
Quand tu commences à bosser le matin, respecte une règle :
👉 Commence toujours par travailler POUR TOI.
Sinon tu vas avancer le travail des autres, qui seront ravis, et tu n'auras rien fait ou très peu pour tes propres projets.
C'est tout pour aujourd'hui, j'ai du travail 😘.
"Ha oui, de la programmation vintage quoi".
C'est ce que j'ai entendu répondre quelqu'un quand je lui ai parlé de programmer des jeux sans utiliser Unity...
Ce n'était pas un programmeur lui-même, il ne connaissait donc Unity que de réputation.
Et comme beaucoup, il pense qu'on ne peut pas faire de jeux sans un moteur.
C'est aussi ce que pensaient beaucoup de jeunes programmeurs jusqu'en 2023.
Et ils ont déchanté quand Unity a annoncé une politique de prix dégueulasse qui a ébranlé le marché.
Tout le monde s'est demandé avec quoi on pouvait créer des jeux...
Godot a beaucoup bénéficié de ce tremblement de terre.
Mais aussi, avec sagesse, des millions de programmeurs se sont éveillés à la programmation "pur code".
En particulier ceux qui crée des jeux en 2D (la majorité des jeux indés), qui franchement n'ont pas besoin d'un moteur surdimensionné pour être réalisés.
Car oui, ce fut peut-être une révélation pour certains : avant Unity il existait déjà des jeux vidéo 🫢.
Et pas des moindres :
Tous les jeux d'arcade jusque dans les années 90 (plusieurs milliers de par le monde).
Tous les jeux sur console. Des consoles comme la NES, la SNES, la Sega Megadrive ou encore la Nintendo 64 ont marqué des générations de joueurs.
Des milliers de jeux...
Tous les jeux sur ordinateurs personnels : depuis le ZX81, jusqu'à l'Amiga, en passant par l'Amstrad, l'Oric, le C64, le ZX Spectrum, etc. Des dizaines de milliers de jeux !
Des milliers de jeux sur PC...
Le point commun à cette ère ?
Des programmeurs. Et pas de moteur qui fait le café en cliquant.
Car quand on sait programmer, on n'a pas besoin de grand chose pour créer un jeu.
De quoi afficher des images à l'écran, récupérer les évènements touches/souris/joypad, et jouer des sons.
Rien de plus.
Le reste c'est du code.
Et coder c'est simple.
A condition d'avoir appris.
Toute une génération de nos jours ne sait pas programmer.
Regarder des tutos Unity fait parfois saigner les yeux.
Certains ont des centaines de milliers de vue et ne savent pas faire un "if"...
Si tu veux vraiment maîtriser l'art de la programmation, il faut revenir aux bases.
Apprendre à coder sans dépendre d'un moteur.
Cela te donnera non seulement une meilleure compréhension de ce que tu fais, mais aussi une plus grande liberté créative.
Ensuite tu pourras décider de te diriger vers un moteur...
Mais il y a aussi de grandes chances que tu restes en pur code !
Si tu veux te lancer avec des outils modernes, j'ai quelque chose pour toi.
Comme tu le sais, je travaille sur ma nouvelle formation C#/Raylib.
A partir d'aujourd'hui et jusqu'à la sortie imminente (avant la fin du mois) de celle-ci, je te propose ma formation "La révolution Raylib : Programmer facilement des jeux 2D ou 3D en C#" avec une réduction exceptionnelle de 70 %.
Si tu l'as manquée, c'est le moment d'en profiter.
Pour activer le coupon :
https://school.gamecodeur.fr/la-revolution-raylib-programmer-facilement-des-jeux-2d-ou-3d-en-csharp?coupon=PRESALEFW
Inscris-toi pour recevoir mes conseils dans ta boite mail chaque jour :
https://school.gamecodeur.fr/newsletter
J'ai bossé pour une boite dans les années 90.
Mon boss était (et est toujours) un personnage hors norme.
Colérique, exigeant, sévère...
Est-ce qu'il m'a rendu la vie impossible ?
Non, il m'a énormément appris.
Car c'était aussi un génie.
(Et qu'en 1990, même quand on avait 20 ans, on était plus résilient que la nouvelle génération)
Le plus impressionnant était sa capacité à tout simplifier.
Quand on lui présentait une nouvelle fonctionnalité il disait "mais c'est quoi ce truc on y comprend rien" !
En quelques secondes il griffonnait une idée et sa version provoquait toujours un "wouah comment j'ai pas eu cette idée hyper simple".
C'était aussi le roi des punch lines.
L'une d'elle était "fais bien du premier coup".
J'ai mis du temps à l'assimiler.
Mais aujourd'hui elle définit ma façon de travailler.
Quand je crée quelque chose, je travaille systématiquement dans cet état d'esprit.
Faire bien du premier coup.
Cela peut s'appliquer à tout.
Dans le domaine de la programmation, qui nous concerne, c'est à chaque instant.
Et le domaine où cet état d'esprit s'applique le plus facilement c'est la "tronche de ton code".
Je code comme si je devais livrer mon code à mon boss de l'époque.
C'est difficile d'expliquer en quoi cela influence mon travail mais je vais le tenter :
Mon code est propre, parfaitement indenté, AU PREMIER COUP
Je ne laisse aucune ligne vide, les espacements sont homogènes, AU PREMIER COUP
Mes variables sont nommées proprement et leur nom à un sens, AU PREMIER COUP
Mes algorithmes sont au plus prêt de quelque chose de définitif, AU PREMIER COUP
Etc.
Ce qu'il faut comprendre ?
Je ne code jamais en me disant "je repasserai pour faire propre plus tard".
Même si dans la réalité je vais bien sûr être amené à réécrire du code maladroit ou qui ne fonctionne pas, ce n'est jamais ma première intention.
Car je m'efforce de "faire bien du premier coup".
Je vends une console portable "Supervision". Sur eBay.
Fonctionnelle et 1ère édition.
Si ça intéresse quelqu'un n'hésitez pas à partager.
https://www.ebay.fr/itm/204875412569
Votre mental ne vous veut pas du bien
Cette semaine je fais passer des soutenances à mes élèves en certification.
J'ai systématiquement deux profils qui se dévoilent rapidement :
Premier profil : L'éveillé.
Ce genre d'élèves va rapidement découvrir quelque chose d'extraordinaire avec la programmation.
D'autant plus que ma formation est orientée "pur code" aux 2/3 afin de faire naitre chez mes élèves un raisonnement de "codeur" indispensable pour faire carrière dans la programmation de jeux vidéo.
Les projets sont parfois maladroits, avec du code redondant, un manque de généricité... mais la démarche est passionnée et démontre que le langage de programmation est devenu un outil au service du besoin.
Exemple : Un élève a décidé de créer un casse brique mixé avec un jeu de gestion du temps type "restauration rapide". L'élève a décidé de "coder un client qui arrive et une recette s'affiche". Il va alors enchaîner les lignes de code, les essais, les échecs et les réussites, jusqu'à obtenir un résultat convenable.
Le code est maladroit, avec des redondances, des switchs là où des tableaux et des boucles auraient fait le job... mais ça marche !
Les maladresses s'effaceront avec l'expérience, le principal est là : l'éveil s'est produit.
Deuxième profil : Le timide
Il recopie fidèlement les cours, mais ne parviens que difficilement à s'en extraire.
Toute tentative de sortir du cours termine en "j'ai pas réussi", "ça n'a pas marché", "ça faisait des trucs bizarres".
Ce ne sont pas des élèves faciles à débloquer.
Ils ont un processus mental tellement encré en eux, depuis l'enfance sûrement, qu'ils ont réellement besoin d'une épiphanie pour se révéler.
Suivre des cours ne suffit pas. Il doivent changer d'état d'esprit !
Leur pire ennemi ? Leur mental.
Tout leur semble compliqué. Et ils pensent souvent qu'il y a une recette propre et bien élevée pour résoudre ce qu'ils veulent faire.
Ces élèves hésitent, doutent, et se heurtent à un mur invisible érigé par leur propre esprit.
Ils ont souvent une excellente compréhension théorique, mais l'application pratique leur échappe, paralysés par la peur de l'échec ou de l'inconnu.
Pourtant, lorsque le déclic se produit enfin, ils peuvent devenir tout aussi brillants et créatifs que les éveillés, mais il faut franchir cette barrière mentale.
La solution ?
Comme souvent, se jeter dans le vide.
Coder mal, beaucoup, et souvent.
Se faire confiance.
Se répéter : "ce n'est pas compliqué, c'est moi qui suis compliqué".
Pour peut-être un jour découvrir que ce n'est pas si dangereux de programmer et de tenter des choses.
Qu'on est plus à l'école.
Qu'on est libre et fou quand on code, et que c'est ça "coder".
