Code les bases d'un City Builder en moins de 3h.
Apprends à concevoir un système de construction de bâtiments sur une map, inspiré des classiques jeux de RTS et City Builders, tout en maîtrisant les bases de la programmation en pur C# avec Raylib-cs.
J'ai repris chaque "brique" de code pour la rendre la plus simple possible.
J'ai tout simplifié sans jamais devenir simpliste.
Jusqu'à obtenir un code qui "raconte une histoire" et que vais t'expliquer pas à pas :
👉 Je filme mon écran et je code tout devant toi, en expliquant chaque ligne de code.
👉 Je dessine des schémas pour t'expliquer les concepts si nécessaire
Tu vas apprendre à programmer de tes mains.
Tu vas passer par les véritables étapes nécessaires à la production d'un système de construction de bâtiments.
Chaque concept te sera expliqué.
A la fin de ce cours, tu auras appris à :
Afficher une map avec scrolling et zoom contrôlables à la souris (je te fournis 2 classes réutilisables).
Gérer une liste de bâtiments (avec 4 niveaux de construction par bâtiment).
Gérer un tileset contenant tous les bâtiments et leurs phases de construction.
Programmer la construction progressive d’un bâtiment avec une barre de progression visible.
Ajouter des effets sonores pour enrichir l’expérience utilisateur.
Sélectionner un bâtiment sur la map et afficher ses informations détaillées.
Voici ce que tu vas apprendre dans ce cours :
🗺️ Une map de jeu que tu vas pouvoir créer, afficher et exploiter dans ton gameplay :
Utiliser Tiled pour créer une map complexe : Comment créer et exporter une map depuis un éditeur de map mythique : Tiled Map Editor.
Donner vie à la map :
Afficher la map en quelques lignes de code (avec la prise en charge de plusieurs calques)
Gérer directement les Tilesets utilisé dans l'éditeur de map, sans aucune modification manuelle
Faire scroller la map dans les 4 directions
Zoomer sur la map avec la molette de la souris
Prendre en compte le centrage de la zone de zoom pour un meilleur ressenti du joueur
🏢 Une map n'est rien sans bâtiments :
Décrire tes bâtiments par programmation : Comment le faire en quelques lignes de code et pouvoir gérer toutes les statistiques de tes éléments de jeu.
Utiliser un Tileset : Pour gérer les différentes images des bâtiments, ainsi que les différentes étapes de leur construction.
Positionner des bâtiments : Apprends à programmer un système pour permettre au joueur de positionner le bâtiment sur une zone libre : affiche une ombre rouge, ou verte, comme dans Stacraft.
Construction progressive : Comment faire pour que le bâtiment prenne du temps pour se construire et que le joueur le voit évoluer visuellement.
Barre de progression : Programme une barre de progression qui augmente jusqu'à 100% au dessus des bâtiments en construction.
Sélection de bâtiment : Comment calculer sur quelle zone de la map le joueur a cliqué et si elle contient un bâtiment. Encadrer le bâtiment s'il est sélectionné.
🧠 Plus de 30 concepts de programmation !
Pour apprendre et comprendre les grands fondamentaux de la programmation de jeux vidéo.
⌨️ Langage de programmation : C#
🕹️ Framework : Raylib-cs
✅ Un cours complet en vidéo de 2h37 : des vidéos digestes et didactiques. Tu pourras revoir chaque concept à volonté.
✅ Le code source du projet complet. C'est un véritable template de jeu que tu pourras étudier et/ou réutiliser.
✅ Les graphismes utilisés dans le cours, créés par Aleksandr Makarov (Hero's Hour).
✅ Un accès à vie à la formation.
Pour apprendre et comprendre les grands fondamentaux de la programmation de jeux vidéo.
Architecture de jeu simple via l'utilisation d'une classe GamePlay et de méthodes Update et Draw.
Conversions entre systèmes de coordonnées (coordonnées monde, coordonnées écran) avec Raylib.
Chargement d’une map issue de Tiled Map Editor.
Utilisation de 2 classes prêtes à l'emploi (fournies) pour lire et afficher une map créée avec Tiled Map Editor.
Exploitation des informations d’une map issue de Tiled Map Editor.
Affichage d’une map issue de Tile Map Editor.
Chargement et découpage de tilesets.
Utilisation de l'objet Camera2D de Raylib.
Scrolling : Défilement de la caméra en fonction de la position de la souris.
Zoom et mise à l’échelle de la carte pour ajuster la vue, avec la molette de la souris.
Calcul de la position du scrolling pendant le zoom pour maintenir le centrage de la map sur la position de la souris.
Chargement et utilisations de sons lors de certains évènements du gameplay.
Définitions de bâtiments ou d’unités par programmation, avec leurs caractéristiques.
Deux méthodes de description des données : par code ou via un fichier JSON
Utilisation de classes et d'une liste pour recevoir une série de données issues d'un fichier JSON
Sélection du type de bâtiment à construire parmi une liste, et affichage du type et des informations à l’écran.
Gestion d’un “mode de jeu” : play, build, etc.
Affichage des différents bâtiments disponibles avec nom et aspect graphique du bâtiment.
Sélection du bâtiment à construire via les touches gauche/droite du clavier.
Placement d’un bâtiment sur une carte, à la souris avec indicateur de zone libre ou pas.
Prise en charge de la taille des bâtiments (occupent plusieurs cases sur la map)
Evaluation de l’état d’une case pour savoir si elle est libre ou pas (walkable, non occupée par une unité, un bâtiment ou hors des limites de la map).
Evaluation des emplacements de la map déjà occupés par des bâtiments (pour empêcher le joueur de créer un bâtiment sur cette zone)
Gestion des cases “walkable” et “non walkable” de la map via une liste.
Mise en correspondance des ID de tuiles de Tiled Map Editor afin de pouvoir identifier de quel tileset provient une tuile.
Evaluation de zones libres ou non libres pour construire un bâtiment (ensemble de cases).
Construction progressive de bâtiments.
Affichage d'une barre de progression pour indiquer l’avancement de la construction d'un bâtiment.
Gestion des bâtiments en cours de construction ou déjà construits, qui s'affichent par dessus la map à leurs emplacements respectifs.
Affichage d’un bâtiment en fonction de sa progression de fabrication, avec calcul de la bonne frame dans le tileset des bâtiments.
Utilisation de timers pour la construction progressive de bâtiments.
Formule pour détecter quelle case de la map a été cliquée par le joueur.
Sélection / déselection de bâtiments et affichage d’un cadre de sélection.
Affichage du nombre de FPS (frames par seconde).
Affichage d’informations de debug à l’écran (mode de jeu, etc.).
Il a réalisé notamment les graphismes de Hero's Hour (voir sur Steam).
Et il vous les offre gratuitement. Le package utilisé dans la formation est donc inclus.
Bâtiments
Unités
Tuiles de sol (désert et marécages)
Rejoins la communauté officielle de mes formations.
En rejoignant cette formation tu recevras aussi l’accès à la communauté privée réservée aux élèves de mes formations, Le Clan des Gamecodeurs.
Dans cette communauté privée, tu pourras échanger avec d’autres passionnés comme toi, poser tes questions et obtenir des réponses pour avancer dans tes projets.
Tu pourras même y partager ton code ou tes projets pour recevoir mes retours et conseils personnalisés !
Tu ne prends aucun risque.
Si la première leçon ne te plaît pas, reçois un remboursement intégral
Cette garantie te permet de regarder une leçon de la formation en entier (celle de ton choix, hors BONUS et annexes)…
Puis, si cela ne te convient pas (peu importe la raison), de demander un remboursement intégral.
Mon équipe vérifiera que tu as regardé une seule leçon (et que tu n'as pas ouvert les autres, ni les documents annexes).
Si c'est bien le cas, tu seras intégralement remboursé.
Je crée des formations depuis bientôt 10 ans. Elles ont été suivies par des milliers de programmeurs amateurs, intermédiaires ou expérimentés.
Je reçois chaque semaine des messages de remerciements.
Voici quelques témoignages :
👉 mes encouragements ne sont que gouttes d'eaux face à la marré de tes soutiens, encouragements, piqures de sensibilisations,cours (sans artifice, du pur plaisir, du pur code) et pour finir DISPONIBLE (ce qui très rare). Une communauté efficace et qui déboite. Je suis extrêmement satisfait d'avoir une collection complète (d'une qualité exceptionnelle) d'un expert en jeu. C'est à moi de te dire, merci, merci, et encore merci...
👉 Tes formations sont juste super pédagogique et ce qui est chouette avec la méthode Gamecodeur c’est que peu importe le langage tu nous apprends avant tout à penser comme un développeur et donc à réussir à s’adapter à n’importe quel environnement car le langage c’est juste de la syntaxe.
👉 Bravo pour l'ensemble de ton travail qui me semble être sans égal dans le monde du développement de jeu vidéo !
👉 Je n ai jamais autant appris en programmation que depuis cette dernière année passer sur gamecodeur et quels que soient les nouveaux ateliers et stage j ai hâte d en apprendre encore plus !
👉 Tes cours sont géniaux ! Tu es génial ! Tu m'aides à réaliser un rêve de gosse ! Pas du tout déçu d'avoir payer le Premium ! Bien au contraire ! Merci pour tout !
👉 Merci encore pour tout ce contenu...
👉 Je n’ai rien à dire. Ta formation est la meilleure sur le marché. C’est grâce à toi que je comprends ce que veux dire programmation. Merci vraiment beaucoup David !!
👉 Juste un immense merci à toi pour avoir rallumé la flamme en moi.
👉 J'avais beau avoir quelques bases, la plupart des concepts me paraissaient tous plus obscures les uns que les autres... mais çà c'était avant. Aujourd'hui, je ne sais pas si je suis devenu un "super programmeur" mais je programme et les langages qui me sont imposés en entreprise ne m'apparaissent jamais comme des obstacles.
👉 GameCodeur est l'une des meilleurs choses qui me soit arrivé dans ma vie professionnelle.
👉 Pour les sceptiques, ne vous posez plus de question et venez vous éclater avec nous ! A 47 ans je peux enfin toucher du bout des doigts mon rêve de gosse : Créer des jeux vidéos ! Merci David pour toute la connaissance que tu partages avec nous tous. Mais aussi pour ton honnêteté et ton franc parlé qui pose les bases pour un apprentissage solide !
💖 Merci à vous tous de votre confiance et de votre fidélité au quotidien.