Gamecodeur - Les coulisses
Открыть в Telegram
Mes formations et mes meilleurs conseils en avant première.
Больше754
Подписчики
Нет данных24 часа
+17 дней
+530 день
Архив постов
Et si on commençait notre journée ensemble ?
Je vais te donner quelques pistes pour bien commencer ta journée de programmeur de jeux vidéo.
Bien sûr tout dépend de là où tu en es.
Si tu débutes totalement :
Tu dois apprendre à programmer !
Je te conseille de commencer très très bas. Inutile de te la péter à ce stade !
Tu ne sais pas encore aligner 2 lignes de code donc tu dois rester humble et te considérer comme un enfant qui découvre la lecture.
A vrai dire, à part peut être les cours de "Scratch", on ne trouve pas tellement de ressources accessibles aux personnes comme toi qui ne savent pas programmer.
Dans le temps (années 80), quand on achetait un ordinateur, il était préconfiguré pour programmer en BASIC et on avait dans la boite un manuel et des cours de programmation.
Aujourd'hui, apprendre de zéro c'est un peu l'enfer si on est pas déjà un gros geek !
C'est pour ça que j'ai créé du contenu de formation pour partir de zéro et que je l'offre gratuitement :
Apprends à programmer en Lua (série de vidéos) :
https://school.gamecodeur.fr/initiation-programmation-lua
Le Kit de démarrage du programmeur de jeux vidéo (guide pas à pas) :
https://school.gamecodeur.fr/le-kit-de-demarrage-du-programmeur-de-jeux-video-avec-lua-et-love2d-la-methode-simple-pour-apprendre-a-programmer-et-creer-un-premier-jeu-video
Avec ça tu as tout ce dont tu as besoin.
Prend ton PC, dégage toi du temps (30 mn à 1h par jour) et suis la formation depuis le début, tu n'as pas de questions à te poser.
Si tu as des bases :
Tu dois pratiquer !
La programmation ce n'est pas regarder Netflix. On n'est pas au cinéma !
Tu vas donc ouvrir ton éditeur de code et faire des exercices ou refaire des exemples que tu as vu dans mes formations ou des tutos sur Internet. Sans recopier !
Est-ce que tu vas y arriver ? Il y a de grandes chances que non...
Tu vas galérer, tu vas taper du code de merde, tout va planter et tu vas être tenté de retourner recopier le code du prof.
Tiens bon ! C'est en galérant qu'on apprend !
C'est comme ces jeux vidéo modernes qui font semblant que tu es bon et qui en fait te machent le travail et te laisse gagner.
Dans ma jeunesse, les jeux vidéo étaient là pour te défoncer la gueule. Pas de cadeaux ! Le but était que tu introduises un max de pièces dans la machine.
Alors tu dois réapprendre à accepter la difficulté.
Le principe est de découper en tout petits concepts. Genre 10 lignes de code.
Quand tu seras capable d'enchaîner 10 lignes de code, tu passeras à 20, 30 et plus...
Si tu as toujours du mal avec le raisonnement de programmeur, fais des exercices.
Par exemple :
Faire se déplacer un personnage à l'écran en le contrôlant au clavier, ou automatiquement (aller / retour)
Programmer un système de tirs avec une liste
Afficher des séries d'images, façon casse brique
Etc. !
Si tu manques d'idées c'est un problème. J'ai remarqué un lien entre le manque d'idées et les difficultés à apprendre à programmer.
C'est la passion et l'envie qui vont te faire avancer. C'est parce que tu auras "envie de coder ce truc" que tu vas te défoncer.
Donc travaille sur du développement personnel, cherche du côté des états dépressifs, de la surcharge mentale, du manque de confiance en toi, etc.
Si tu sais déjà programmer :
Tu dois bosser sur des projets personnels !
Mais attention à la grosse tête.
Bosser sur des projets démesurés c'est le découragement assuré.
Donc ce matin, tu vas juste avancer sur un projet perso comme ça :
Prototype une fonctionnalité de ton projet. Vois ton projet comme un ensemble de pièces à assembler, et identifie une pièce que tu peux commencer à construire.
Bosse sur le découpage si tu ne sais pas par quoi commencer : écris sur une feuille ce que le joueur peut faire dans le jeu, comme si tu racontais une histoire : "le joueur peut faire ... les ennemis font ..." et ensuite isole un des concepts et bosse dessus.
Si tu n'as pas de projet perso, vois la partie plus haut sur le manque d'idées.
On vit une époque formidable. Le manque de respect des jeunes qui te parlent comme a un chien vu qu'ils sont cachés derrière leur email.
Je reçois de temps en temps ce genre de réponse mais là c'est poli comparé a d'habitude.
En plus, ils ont un QI d'huître vu qu'ils savent même pas reconnaître qui leur écrit et ne se souviennent même pas de qui je suis alors qu'ils ne se sont pas retrouvés dans ma liste de diffusion par hasard...
J'ai reçu ce message il y a quelques jours (je reformule car je ne retrouve pas sur quel canal je l'ai reçu et c'était bourré de fautes) :
"Pourquoi tout le monde dit que le C c'est le langage parfait alors que personne ne fait de jeux en C ??".
C'est un résumé très approximatif mais vous avez l'idée :).
Bon alors déjà je sais pas qui a dit que le C était parfait (ou tout autre superlatif le désignant comme idéal), car c'est loin d'être le cas.
Le C est un langage ancien, peu coopératif, et qui ne fait pas de cadeaux.
Par contre oui c'est un langage noble, performant comme jamais, et mythique.
Il est également très formateur : quasi impossible de programmer en C sans connaitre le fonctionnement de la mémoire par exemple.
J'adore ce langage et il m'a tout appris.
J'ai ensuite codé en C++ pendant 10 ans pour bénéficier de la POO (pas en C++ moderne car je déteste).
Choisir le C en 2024 pour faire des jeux ?
Ce serait un choix de défi et de passion.
Mais en aucun cas un choix stratégique !
Pourquoi ?
Parce qu'on code lentement en C.
Parce qu'en C on fait "planter" le programme à la moindre erreur.
Parce qu'en C, on doit coder beaucoup de choses, il n'y a même pas de vraies chaînes de caractères, pas de listes, etc.
Il existe toute fois des exceptions, comme le studio Lingon Studios.
Il enchaîne depuis 3 ans les productions en PUR C. Et en 3D !
Je les avais découvert pour leur jeu Moose Miners et récemment un de mes membres m'a parlé de leur dernier bébé : Sidesteps Legends.
(je crois qu'en réalité le gars est seul par ailleurs et qu'il a même commencé en assembleur ! Il a une chaine Youtube où il se filme en train de coder.)
Comment réussit-il cet exploit ?
Il utilise Raylib, une librairie orientée jeux vidéo absolument révolutionnaire.
Elle est hyper légère, hyper puissante, hyper complète et super facile à mettre en oeuvre. La SDL2 à côté c'est la préhistoire.
Elle est aujourd'hui incontournable et son succès phénoménal.
Le programmeur de Lingon Studio démontre que même en pur C on peut créer un super jeu en 3D grâce à Raylib.
Mais bon il reste que Raylib est codée en C et que la doc est spartiate et que tous les exemples sont en C...
A réserver aux passionnés avides de défis donc ?
Pas du tout !
Et c'est là le génie de l'auteur de Raylib et de sa communauté.
Puisqu'elle est codée en C hyper optimisé et très compact, elle est facile à intégrer à d'autres langages !
On peut aujourd'hui l'utiliser en Python, en Go, en Lua, en Rust !
Et bien sûr en C# !
Le C# est un langage beaucoup plus accessible, moderne et c'est la référence de nos jours (c'est le langage de Unity par exemple).
Et il est quasiment aussi puissant que le C car il est très optimisé et qu'il est compilé d'une façon très intelligente (j'y reviendrai).
Et si la combinaison Raylib + C# était la meilleure ?
On va avoir l'occasion d'en reparler la semaine prochaine car...
Je bosse sur une grande formation pour t'apprendre à coder des jeux en C# super facilement avec Raylib.
Elle arrive dans 1 semaine.
Tu peux t'y préinscrire ici :
👉La révolution Raylib : Programmer facilement des jeux 2D ou 3D en C#.
https://school.gamecodeur.fr/la-revolution-raylib-programmer-facilement-des-jeux-2d-ou-3d-en-csharp
En attendant, bon code et reste libre !
C'est vendredi.
Tout d'abord merci à tous ceux qui ont tenu à me témoigner des encouragements :
"Tes messages sont bénéfiques car ils sont un peu comme des rappels de notre conscience qui nous dit tout ce qu'il faudrait faire et que l'on n'a pas fait."
"Je te suis depuis début 2019 et j’ai toujours lu tes e-mail. Toujours agréable de les lire en particulier ces derniers au quels tu réponds à des questions."
"Tu es la seule newsletter que je lis systématiquement, sans faute et parfois plusieurs fois quand je vais aussi sur Telegram. Grâce à toi je code mini 30 minutes par jour, 7j/7 grâce au journaling, merci David!"
"Merci vraiment de ton temps précieux que tu nous donnes pour nous donner ces précieux conseils et des coups de boost que tu nous donnes via ces mails remplis de pépites. Depuis que je lis les mails que tu envoies chaque jour et depuis la sortie de ton guide "kit de démarrage de la programmation de jeux vidéo" c'est un vrai plaisir de se plonger dans le monde du code. J'avance petit pas par petits pas mais j'avance et j'en suis fier donc merci à toi David."
"Moi je lis tes mails qui sont toujours intéressants et certains source d'inspiration et de motivation !"
"merci pour tes mail c'est un vrai plaisir de les ouvrir tous les jours."
Je ne peux pas citer tout le monde mais MERCI DU FOND DU COEUR.
Dans un message récent, Eric aborde un autre sujet dans son message.
Il se demande si créer des obligations, envers une ou plusieurs autres personne, pourrait aider à tenir des engagements.
C'est justement un thème que j'ai déjà abordé dans mon Gamecodeur Challenge il y a quelques année, et qui fait partie de la section Développement Personnel de mon site.
Je parle dans ce challenge de l'engagement envers des tiers, notamment à travers le streaming :
https://www.youtube.com/watch?v=tspuX9y8cL0
Qu'en est-il du pair programming ou de l'accompagnement ?
Eric mentionne dans son message le pair programming, ainsi que l'idée d'accompagner un débutant 1 ou 2 fois par semaine.
Je réponds à ces 2 sujets séparément :
Concernant le pair programming.
Il s'agit, à la base, de travailler à 2 sur la même tâche.
Attention : La véritable définition n'est pas de travailler à 2 sur un projet : ça c'est travailler en équipe et rien d'autre.
Il s'agit de travailler sur le même code ! C'est le plus souvent utilisé dans le cadre de la méthode "extrem programming".
Pas évident dans le domaine du jeu vidéo... Mais pourquoi pas.
J'imagine plutôt, dans le cadre d'un apprentissage, d'apprendre à 2 et de partager son expérience, ses difficultés et ses doutes chaque semaine.
Mais attention au virtuel : via internet le risque d'abandonner est décuplé. Préférez voir votre pote en vrai !
Concernant l'accompagnement d'un débutant.
Je ne suis pas convaincu par cette idée.
Pour accompagner un débutant il faut un certain niveau.
Et quand on a un certain niveau, je pense qu'il est préférable d'utiliser le temps qu'on a pour bosser sur des projets de jeux.
Accompagner des débutants, et je suis bien placé pour le savoir, prend BEAUCOUP DE TEMPS ET D'ENERGIE.
Donc, mon avis personnel est plutôt négatif mais je me trompe peut-être car chaque cas est différent.
Et toi ?
Quelles sont les techniques que tu utilises pour tenir tes engagements ?
Je suis preneur de ton expérience, cela pourrait en aider d'autres !
Le père noël vient de passer chez moi.
Bientôt chez vous le temps que je fasse toute la manutention.
Voici ton pire ennemi :
Le perfectionnisme.
Certains y voient une qualité mais la réalité est cruelle.
Le perfectionnisme n'est une qualité que chez les mordus de travail.
Ceux qui sont capable de pisser des milliers de lignes de code par heure.
Ceux qui sont hyper efficaces et hyper doués.
Pour les autres : c'est une plaie.
Le perfectionnisme les décourage, et peut les mener à la dépression.
Le perfectionnisme leur fait perdre un temps fou, jusqu'à l'abandon.
Le perfectionnisme est leur meilleure excuse pour ne rien terminer.
Le perfectionnisme les éloigne continuellement de leurs rêves.
J'ai un leitmotiv : "Fait" est mieux que "parfait".
Si tu es soi-disant "perfectionniste", combat cela comme la peste.
Si cela t'empêche d'avancer alors change de mindset.
Mieux vaut un projet réalisé qu'un projet parfait !
Personnellement il y a longtemps que je ne suis plus perfectionniste.
Je sais que si j'essaie de faire "mieux" alors je ne fais pas.
Mes vidéos Youtube n'ont quasiment jamais de montage.
Mes jeux se concentre sur la qualité du gameplay (game feel).
Mes cours se concentrent sur la qualité de leur contenu, pas sur leur esthétique (pas de musique, de générique...)
Etc.
Cela m'a permis de produire beaucoup, beaucoup, beaucoup...
De vivre du jeu vidéo pendant 10 ans.
De créer la 1ère école de programmation de jeux vidéo en pur code.
De produire des centaines d'ateliers et cours.
D'écrire, imprimer et vendre 6 guides papiers en quelques mois.
De publier plus de 500 vidéos sur ma chaîne.
De réunir autour de moi une communauté de 10e de milliers de personnes.
De changer la vie et le destin de centaines de passionnés.
Pendant que d'autres n'avancent pas.
Parce qu'ils cherchent la perfection.
Et toi ?
Es-tu perfectionniste ?
Est-ce que cela t'aide ou est-ce que cela sape tes projets ?
Que fais-tu pour lutter contre ton perfectionnisme s'il te gène ?
PS : Je bosse sur une nouvelle formation, elle arrive dans quelques semaines, et tu peux t'y préinscrire :
La révolution Raylib : Programmer facilement des jeux 2D ou 3D en C#.
https://school.gamecodeur.fr/la-revolution-raylib-programmer-facilement-des-jeux-2d-ou-3d-en-csharp
Découvre l'art de créer des jeux en C# aussi facilement qu'avec Love2D. Avec Raylib, tu peux commencer à programmer des jeux 2D ou 3D en quelques minutes. Inclus un cours de 3h sur le langage C# et une master class de 4h pendant laquelle je code un jeu Snake de A à Z.
Je ne sais pas si tu as compté mais c'est le 24e email quotidien que tu reçois de moi, du lundi au vendredi.
Je n'ai jamais manqué un rendez-vous.
Depuis le 9 avril, j'ai décidé d'écrire 1 mail par jour, du lundi au vendredi, pour t'aider à avancer, pour te motiver, pour partager avec toi... pour garder un contact fort !
Et vous semblez apprécier : je reçois même des messages de personnes qui me disent avoir repris la programmation grâce à ces emails !
Tu me diras : "ben tu as juste pris une décision, tout le monde peut le faire !".
Combien de décisions as-tu pris que tu n'as pas honorées ?
Des dizaines j'imagine.
Tu as commencé puis abandonné rapidement. Pas vrai ?
Le truc c'est que sans méthode, c'est très compliqué de tenir.
Il faut une méthode.
Et pas besoin d'une usine à gaz rassure toi.
Ma méthode est simple : j'utilise la technique du "tracker" dans un journal.
Le lundi, j'écris sur mon journal mes objectifs de la semaine (le weekly spread).
Chaque jour, je tiens mon journal (un Bullet Journal pour ceux qui veulent regarder).
Et chaque jour je coche ma case sur mon weekly spread.
Pourquoi ça marche ?
Parce que mon tracker fait partie d'une philosophie complète : le journaling.
Parce que mon Bullet Journal est tout le temps ouvert sur ma table, et je peux y reporter des choses sans aucun obstacle : rien à chercher, rien à ouvrir.
Parce qu'écrire sur du papier change tout.
Parce que cocher est un plaisir.
Comment tu peux utiliser ça pour toi ?
>> Ouvre un carnet neuf.
>> Ecris "Semaine du X au X".
>> Trace des cases pour tes objectifs, exemple :
Coder 30 mn
🔲🔲🔲🔲🔲
>> Pose ce carnet ouvert sur ton bureau.
>> Chaque matin, en te levant, tu passes 5 mn sur ton journal.
>> Chaque soir, avant de te coucher, tu fais une revue de 5 mn de ton journal, en écrivant les étapes importantes de ta journée et en cochant les cases sur ton weekly spread.
Chaque jour un peu. Et Keep It Simple !
Surtout ne complique pas la méthode sinon c'est l'échec assuré !
2 x 5 mn par jour pas plus, avec un carnet et un vulgaire stylo.
Oublie les applis qui te plongent dans le virtuel !!
L'écriture manuelle est la clé au niveau cognitif.
Essaye et tu me diras...
Aujourd'hui je réponds à Sébastien qui répond à mon mail intitulé "Si je devais tout recommencer" dans lequel je partage ma stratégie hypothétique de créer de multiples jeux vidéo rapidement testables.
Sébastien pense qu'il est possible de travailler en même temps sur des jeux à développement rapide et sur un projet plus ambitieux.
Il fait notamment référence à Eric Barone qui s'est concentré sur un seul projet majeur : Stardew Valley.
Je ne suis pas en désaccord avec Sébastien, mais je pense que c'est difficile.
C'est ce que je vais développer dans cet email.
Parlons donc de Eric Barone.
Eric a travaillé pendant 4 ans sur la première version commerciale de Stardew Valley.
7 jours sur 7 et 12 à 15h par jour !
Il dévoile dans plusieurs interview qu'à moment donné le jeu le dégoutait, il le trouvait mauvais.
Il fait une incroyable révélation : cela n'a pas été une expérience agréable. Il dit même : "Préserver ma santé mentale était une véritable épreuve".
Est-ce que je vous souhaite de vivre une expérience similaire ?
Est-ce que je ferais la même chose aujourd'hui ?
La réponse est NON.
C'est pour cela que je vous ai parlé de la stratégie que je mettrais en place si je devais tout recommencer : travailler sur des petits projets rapidement testables.
Ainsi, je saurais rapidement si mon concept plait. Je n'aurais pas à plonger dans le doute et la dépression.
Eric a eu beaucoup de chance. Son jeu a cartonné. Mais si le jeu n'avais pas rencontré de succès, il aurait dû mettre fin à sa carrière de programmeur de jeux vidéo pour pouvoir subvenir à ses besoins et éponger ses dettes.
Quand j'ai bossé sur Age of Enigma.
J'ai travaillé 16 mois à temps plein sur le projet. Avec une équipe.
Chaque jour... 6 jours sur 7, voire 7 jours sur 7.
Je pensais à Age of Enigma 24h / 24.
J'ai programmé plus de 10000 lignes de code de C++.
Impossible de penser à autre chose.
Donc pour en revenir à Sébastien, je pense qu'il est très compliqué de bosser sur un gros projet et en même temps sur des petits projets.
Mais je ne vous déconseille pas de bosser sur un gros projet !
Car dans mon email, je parlais de moi.
Si vous avez un gros projet, comme c'est le cas de Sébastien, et que vous rêvez de le réaliser...
Lancez-vous !
Mais si vous n'avez pas commencé à bosser dessus il y a un gros problème...
Car réaliser un projet ambitieux va vous prendre des mois...
Et plus vraisemblablement des années.
Et vous allez devoir y travailler TOUS LES JOURS dessus.
A temps plein.
Un rêve n'est rien d'autre qu'un rêve sans passer à l'action.
Je suis curieux d'avoir ton retour : as-tu un gros projet en tête ?
Qu'as-tu mis en place pour le transformer en réalité ?
C'est une question que je me pose souvent :
"Qu'est-ce que je ferais si je devais repartir de zéro ?
…sans argent, sans équipe et sans expertise ?"
Quand je me suis lancé en 2008, il y avait tout à créer.
C'était le boom des jeux indés et du Casual Gaming.
Il y avait des publishers français, américains, ukrainiens, russes, qui nous écrivaient pour nous demander des jeux et ils nous proposaient même de l'argent d'avance !
Il y avait des salons hyper festifs où l'on pouvait se faire son réseau (et vivre des soirées mémorables).
Les joueurs, de tous âges, étaient avides de jeux et dépensaient sans compter.
Par contre niveau technique c'était le vide intersidéral !
Pas de moteurs. Peu d'outils.
On avait le C, le C++ et il fallait trouver une librairie graphique ce qui n'était pas simple car le marché était balbutiant. On bricolait pas mal.
Au final j'avais même créé mon premier jeu avec Blitzmax et il a rencontré un succès suffisant pour lancer ma boite.
Mon deuxième jeu ? En C++ (plus de 10000 lignes de code) !
Aujourd'hui tout est différent.
Il y a des moteurs et des frameworks qui permettent à beaucoup de monde de créer des jeux vidéo.
La qualité est inégale et les joueurs sont devenus difficiles.
L'auto édition s'est généralisée et les publishers sont rares et exigeants.
Sur le mobile, le marché a été pulvérisé par le free to play et n'est plus accessible. Les joueurs ne veulent plus rien payer de toute façon.
Si je devais tout recommencer maintenant...
Trop difficile de toucher un large public, alors je chercherais des genres de jeux qui intéressent des niches de passionnés : retro games, decks, puzzle games, rpg old school... (je n'ai pas tout en tête il faudrait explorer et sonder).
Je partirais sur des jeux peu exigeants en ressources graphiques et en contenu afin de réduire les coûts et les délais.
Je n'irais pas sur la 3D, trop exigeante, trop couteuse, trop lourde. Ou alors en low poly et avec un style graphique original et peu réaliste.
J'utiliserais la génération procédurale pour réduire les besoins en Level Design et augmenter la rejouabilité.
J'achèterais mes sons et mes musiques, voire des packs de graphismes que je personnaliserais.
Je créerais BEAUCOUP de jeux, sur PC au départ, pour tester le marché et me faire connaitre. Si un jeu ne plait pas dès les 1ers jours de prototypage, je l'abandonne et je passe à un autre (pas de sentiments c'est les joueurs qui décident).
Je créerais un label avec un petit truc en plus qui me ressemble et je rassemblerais une communauté autour de moi.
Je partagerais les phases de créations via des vlogs et des articles, pour impliquer ma communauté et récupérer leurs avis.
Et je croiserais les doigts qu'un jour une de mes créations plaise et je la déclinerais alors sur plusieurs plateformes, je la ferais évoluer.
Et toi ?
Quelle est ta stratégie pour te lancer dans ce monde de brutes ?
PS : Je bosse sur une nouvelle formation, elle arrive dans quelques semaines, et tu peux t'y préinscrire :
https://school.gamecodeur.fr/la-revolution-raylib-programmer-facilement-des-jeux-2d-ou-3d-en-csharp
La révolution Raylib : Programmer facilement des jeux 2D ou 3D en C#. Découvre l'art de créer des jeux en C# aussi facilement qu'avec Love2D. Avec Raylib, tu peux commencer à programmer des jeux 2D ou 3D en quelques minutes. Inclus un cours de 3h sur le langage C# et une master class de 4h pendant laquelle je code un jeu Snake de A à Z.
Le sommaire prévisionnel de la formation Raylib/C# :
Raylib c'est quoi
- dont : L'écosystèle Raylib
- dont : Cheatsheet
Installation et projet minimum avec VS Studio 2022
Ecran et fenêtre de jeu
Dessiner des primitives
Dessiner des images
Dessiner du texte
Framerate et delta time
- SetTargetFPS
- GetFrameTime
Les contrôles
- Clavier
- Joypad
- Souris
Les sons et musiques
Fonctions avancées
- Collisions
- Caméra
- GUI
La 3D
- Primitives 3D
- Camera
- Modèles 3D
- Collisions
Distribuer un jeu Raylib grâce à rInstallFriendly
J'ai entendu une fois une réalisatrice de cinéma dire "Finir c'est mourir".
Bien sûr, c'est au figuré. On ne meure pas quand on termine un projet... Mais on a peur de terminer, car on va perdre quelque chose.
Elle expliquait que c'était pour cela qu'il était si difficile pour un créateur d'aller au bout d'un projet.
Tellement de gens commencent 1 million de projets sans en terminer un seul !
Est-ce que tu as du mal à finir tes projets ?
On l'a tous fait.
On aime bien commencer, c'est grisant !
On est excité par la nouveauté et par la pose des premières pierres...
Puis vient le moment où on doit juste coder et que rien n'est nouveau.
Et là, on se trouve un nouveau projet, et une bonne excuse, pour arrêter le projet en cours 👎.
Il faut accepter l'idée qu'à un moment donné, le projet sera chiant.
Et ça vient vite.
Je dirais qu'une fois qu'on a passé les 30% de réalisation, ça devient chiant.
On arrive dans une zone grise, une sorte de désert de la chianlit.
Mais le seul moyen d'aller au bout, c'est de traverser ce désert !
Si tu termine un projet, tu seras une exception !
Car comme 80% des créateurs n'y arrivent pas, tu seras déjà meilleur que 80% d'entre eux. Tu auras un projet terminé !
Alors ça vaut le coup, crois-moi, de travailler cette compétence : celle d'être capable de terminer un projet.
Et au bout du chemin, une fois le désert traversé, un trésor t'attend !
PS : Je bosse sur une nouvelle formation, elle arrive dans quelques semaines, et tu peux t'y préinscrire : https://school.gamecodeur.fr/la-revolution-raylib-programmer-facilement-des-jeux-2d-ou-3d-en-csharp
Alors aujourd'hui un sujet qui fâche :
Quel langage de programmation apprendre ?
Dois-je apprendre le C# comme tout le monde ?
Ou le C++ pour me faire du mal ?
Ou le Python comme à l'école ?
Si tu te poses cette question, ce n'est pas la bonne.
La question à se poser c'est : quel genre de jeux veux-tu programmer ?
2D ?
3D ?
Puis : sur quelle plateforme veux-tu que le jeu fonctionne ?
PC ?
Mobile ?
Console ?
Puis : quel genre de jeu veux-tu créer ?
Action ?
Aventure / RPG ?
Puzzle / Réflexion / Cartes ?
Maintenant le bilan :
Si tu as répondu 3D sur Mobile, et que tu es débutant, tu peux déjà aller à 70 km t'encastrer dans un mur, ça sera à peu près équivalent.
Quand on débute, on fait simple et on réduit au maximum les obstacles.
Plus il y a d'obstacles, plus tu vas abandonner et laisser ton rêve de côté !
La 3D est un obstacle.
Manipuler 2 dimensions c'est déjà complexe quand on débute. Alors 3 dimensions + les outils super lourds qui vont avec = ☠️.
De plus les jeux 3D sont exigeants niveaux graphismes. Je constate que les débutants qui prétendent faire des jeux en 3D sont la plupart du temps sur Blender, et ne codent rien. Ils font du vent en 3D...
Pour la plateforme, je vais te frustrer...
Créer un jeu pour mobile est complexe : la gestion des tailles d'écran, du touch (ça ne se gère pas comme un clic souris), le déploiement hyper complexe sur un vrai téléphone...
Et si tu veux sortir ton jeu sur les stores, compliqué sans société ! Et il faut plein de documents légaux !
Tu veux aller sur console ? Tu n'as pas le droit...
Les consoles sont un milieu fermé. Il faut un Dev Kit, un accord avec Sony, Nintendo... et il vaut mieux avoir signé un contrat avec un éditeur sous peine de voir son jeu refusé...
Tu es encore là ?
Tu l'auras compris : avant de conduire une F1, apprend à faire du Karting. C'est comme ça que tous les champions de F1 ont fait.
Apprends à programmer des jeux en 2D, sur PC.
Et des jeux simples avec peu d'éléments.
Et une fois que tu sauras voler de tes propres ailes, qui sait ce dont du sera capable ?
Mais alors, quel langage ?
Aujourd'hui, la plupart des langages permettent de coder des jeux en 2D.
Et ce n'est pas le langage qu'il faut regarder, mais le framework ou le moteur.
C'est la partie qui gère l'affichage graphique, les sons, les contrôles...
Dans un langage il n'y a pas tout ça, il n'y a que la logique !
Ce que je te conseille ?
Le langage Lua avec le framework Love2D.
Le langage C# avec le framework Monogame ou le révolutionnaire Raylib.
Le langage Python avec Pygame.
Et le top ?
Le C# avec le framework Raylib.
Pourquoi ?
Le C# pour sa puissance et son universalité (et sa POO).
Raylib pour ses performances, sa simplicité et sa polyvalence en 2D (et sa 3D accessible !).
C'est le combo 2024 à ne pas manquer !
Je bosse sur une formation sur ce thème, elle arrive dans quelques semaines, et tu peux t'y préinscrire :
https://school.gamecodeur.fr/la-revolution-raylib-programmer-facilement-des-jeux-2d-ou-3d-en-csharp
Si vous avez des attentes particulières pour cet ateliers, merci de me le dire en commentaire.
Nouvel atelier en production !
(sera également dispo pour les membres club/premium)
Préinscriptions sur :
https://school.gamecodeur.fr/la-revolution-raylib-programmer-facilement-des-jeux-2d-ou-3d-en-c
Salut, c'est David.
Tu penses que le langage de programmation est la clé de tout ?
Croire que le langage de programmation est la clé de tout est une erreur que font 90% des débutants...
Je dis souvent (un peu pour provoquer) : "le langage on s'en bat les c*** ! ".
C'est un peu comme si un menuisier disait : "Je ne travaille qu'avec du chêne".
Et genre, si on lui donne du pin ou de l'épicéa, il ne sait pas le travailler... est-ce un vrai menuisier ?
En réalité, un bon menuisier sait manipuler tous les types de bois. Il comprend que chaque bois a ses avantages et ses inconvénients, en fonction de ce qu'il veut construire.
Et bien, la programmation, c'est un peu pareil. Le langage n'est qu'un outil parmi d'autres.
Sur Gamecodeur, je t'enseigne la programmation en utilisant Lua avec une méthode qui va bien au-delà de la simple connaissance d'un langage.
Je te forme à raisonner, à comprendre les concepts, à développer ton esprit critique et logique. Une fois que tu as acquis ces compétences, tu peux programmer dans n'importe quel langage.
Avec la bonne méthode et le bon raisonnement, tu peux coder en C#, Python, JavaScript, ou n'importe quel langage qui se présente à toi.
Je te rappelle que je propose gratuitement un guide de formation à Lua.
Si tu veux y accéder tu as juste à cliquer sur ce lien :
https://school.gamecodeur.fr/le-kit-de-demarrage-du-programmeur-de-jeux-video-avec-lua-et-love2d-la-methode-simple-pour-apprendre-a-programmer-et-creer-un-premier-jeu-video
Pourquoi Lua est-il le langage idéal pour commencer ?
Il est facile à apprendre : Lua est un langage simple avec une syntaxe claire et concise. Il est proche du BASIC, ce qui le rend accessible aux débutants.
Il est puissant et flexible : malgré sa simplicité, Lua est un langage puissant qui peut être utilisé pour créer des jeux complets et professionnels. Il est également utilisé dans de nombreux autres domaines, tels que l'intelligence artificielle et le développement web.
Il est largement utilisé : Lua est un langage universel et libre de droits, utilisé par des millions de développeurs à travers le monde.
Il est parfait pour le jeu vidéo : Lua est particulièrement bien adapté au développement de jeux vidéo grâce à sa légèreté et sa rapidité.
Il est associé à des frameworks comme Love2D qui facilitent la création de jeux 2D.
Avantages de Lua pour les débutants :
Très peu de notions à comprendre pour commencer.
Syntaxe légère, peu de mots "magiques".
Pas de "compilation", ce qui facilite l'apprentissage et le débogage.
Permet de créer des jeux professionnels (Voir Balatro !).
Tremplin vers les autres langages de programmation.
Tu veux aller plus loin ?
Il ne faut pas "apprendre un langage de programmation", il faut apprendre à programmer !
Une fois que tu sais programmer, tu peux apprendre un langage en quelques minutes quasiment.
Dans les semaines qui viennent je vais te montrer comment programmer en C#.
En pur code... Avec un framework aussi simple à utiliser que Love2D.
Tu verras que ce n'est pas difficile.
Bon finalement j'approche des 120 exemplaires, je vais investir un peu plus dans l'impression pour que tout le monde soit content.
Il reste 4h donc pour les retardataires :
https://school.gamecodeur.fr/guide-kit-demarrage
Il reste 8 exemplaires...
Je vais peut être faire une rallonge d'impression vu qu'il reste encore 24h pour commander mais si vous n'avez pas passé commande, n'attendez pas trop.
https://school.gamecodeur.fr/guide-kit-demarrage
