Chap 1 – Créez Votre Premier Jeu Vidéo avec Odin et Raylib : Guide Pas-à-Pas

Vous avez envie de créer votre propre jeu vidéo, mais vous êtes débutant en programmation ? Ce guide est fait pour vous ! Dans cet article, nous allons explorer comment utiliser le langage de programmation Odin et la bibliothèque Raylib pour réaliser votre premier jeu. Odin est un langage moderne et simple, proche du langage C, tandis que Raylib est une bibliothèque puissante qui facilite la gestion des graphismes et des entrées pour les jeux. Que vous soyez un débutant complet ou un programmeur souhaitant découvrir le développement de jeux, suivez ce guide pas-à-pas pour vous lancer !

Sommaire

  1. Présentation d’Odin et Raylib
  2. Configuration du Compilateur Odin
  3. Création de Votre Premier Programme avec Odin
  4. La Boucle Principale du Jeu
  5. Configuration de Sublime Text pour la Compilation
  6. Lancement et Débogage du Jeu
  7. Prochaines Étapes

Présentation d’Odin et Raylib

Odin, un Langage de Programmation Moderne

Odin est un langage de programmation bas niveau, souvent considéré comme une alternative plus moderne et simplifiée au C. Il permet un contrôle précis des ressources système, ce qui est particulièrement utile pour les jeux vidéo où la performance est cruciale. Bien qu’il soit bas niveau, Odin possède des fonctionnalités modernes qui facilitent la rédaction de code clair et efficace.

Raylib, la Bibliothèque de Graphismes pour les Jeux

Raylib est une bibliothèque légère et accessible, spécialement conçue pour rendre la création de jeux facile et intuitive. Elle permet de dessiner des graphismes, de gérer les entrées utilisateur (clavier, souris, manettes) et de gérer les sons. Son approche pédagogique en fait un outil idéal pour les développeurs débutants.

Configuration du Compilateur Odin

  1. Télécharger le Compilateur Odin : Rendez-vous sur le site officiel d’Odin et téléchargez la dernière version du compilateur pour votre système (Windows, Mac ou Linux).
  2. Installer les Outils Additionnels : Odin nécessite le compilateur C de Visual Studio et le SDK Windows. Pour éviter d’installer Visual Studio en entier, vous pouvez utiliser le kit « Portable Build Tools » disponible sur GitHub. Celui-ci installe seulement les éléments nécessaires pour Odin.
  • Sur GitHub, recherchez Portable Build Tools, téléchargez et installez le kit. Assurez-vous de cliquer sur « Add to environment » pour que les outils soient ajoutés à votre système.
  • Redémarrez votre ordinateur après l’installation pour que les changements soient pris en compte.

Création de Votre Premier Programme avec Odin

Une fois le compilateur installé, passons à la création d’un programme simple qui affichera une fenêtre bleue.

Structure de Base du Code

  1. Créer un Fichier : Ouvrez un éditeur de texte comme Sublime Text et créez un nouveau fichier nommé mon_premier_jeu.odin.
  2. Définir les Packages et Imports : Commencez par définir le package et importer Raylib.
package main import rl "vendor/raylib"
  1. Configurer la Fonction Principale : La fonction main est le point d’entrée du programme. Elle initialise Raylib, ouvre une fenêtre, et la ferme à la fin.
main :: proc() {
  rl.InitWindow(1280, 720, "Mon premier jeu")
  rl.CloseWindow()
}

La Boucle Principale du Jeu

Dans un jeu, le contenu est souvent mis à jour en continu. On utilise donc une boucle principale qui permet au jeu de rafraîchir les images et de détecter les actions du joueur.

  1. Initialisation de la Fenêtre : Utilisez InitWindow pour créer une fenêtre de jeu de 1280×720 pixels avec un titre personnalisé.
rl.InitWindow(1280, 720, "Mon premier jeu")
  1. Création de la Boucle Principale : La boucle ci-dessous permet au programme de dessiner une nouvelle image à chaque « frame » tant que l’utilisateur ne ferme pas la fenêtre.
for !rl.WindowShouldClose() {
  rl.BeginDrawing()
  rl.ClearBackground(rl.BLUE)
  // Ajoutez ici la logique du jeu
  rl.EndDrawing()
}
  • rl.BeginDrawing() : Commence une nouvelle image pour le rendu.
  • rl.ClearBackground(rl.BLUE) : Définit le fond de la fenêtre en bleu.
  • rl.EndDrawing() : Termine l’image actuelle et l’affiche à l’écran.
  1. Fermeture de la Fenêtre : En dehors de la boucle, on appelle CloseWindow() pour fermer proprement la fenêtre une fois le jeu terminé.
rl.CloseWindow()
  1. Code Complet du Programme :
package main
import rl "vendor/raylib"
main :: proc() {
  rl.InitWindow(1280, 720, "Mon premier jeu")
  for !rl.WindowShouldClose() {
    rl.BeginDrawing()
    rl.ClearBackground(rl.BLUE)
    rl.EndDrawing()
  }
  rl.CloseWindow()
}

Configuration de Sublime Text pour la Compilation

Pour faciliter la compilation, vous pouvez configurer Sublime Text afin de compiler votre programme directement depuis l’éditeur.

  1. Créer un Système de Build :
    • Dans Sublime Text, allez dans Tools > Build Systems > New Build System.
    • Copiez le code suivant et enregistrez-le sous Odin.sublime-build :


{
"cmd": ["C:/Odin/odin.exe", "run", "."],
"working_dir": "$file_path",
"file_regex": "^(.*):([0-9]+):([0-9]+): (.*)$"
}

  1. Utiliser le Système de Build :
  • Ouvrez votre fichier mon_premier_jeu.odin, puis allez dans Tools > Build Systems et sélectionnez Odin.
  • Appuyez sur F7 pour compiler et exécuter le programme directement dans Sublime Text.

Lancement et Débogage du Jeu

  1. Compilation via l’Invite de Commande : Si vous préférez, vous pouvez compiler et lancer le programme via l’invite de commande.
C:\Odin\odin.exe run .
  1. Exécution : Une fenêtre de jeu bleue devrait s’ouvrir. Si des erreurs apparaissent, elles seront affichées dans la console, avec des indications sur la ligne du code où l’erreur s’est produite. Par exemple, une faute de frappe sur BeginDrawing comme BegunDrawing affichera un message d’erreur.
  2. Débogage dans Sublime : Sublime Text met en évidence les lignes comportant des erreurs et vous permet de naviguer entre elles avec les touches F4 et Shift+F4.

Prochaines Étapes

Félicitations ! Vous avez créé votre première fenêtre de jeu avec Odin et Raylib. Dans les prochains articles, nous ajouterons un personnage contrôlable avec des fonctions de déplacement et de saut, et nous explorerons la gestion des collisions.

By laurent

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.