Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Logo

Castle of SFML 🏰

Un jeu de survie et moteur 3D de type raycaster
Explorer la documentation »

Signaler un bug · Proposer une fonctionnalité · Poser une question

Table des matières

  1. À propos
  2. Démarrage
  3. Utilisation
  4. Aperçu des outils de suivi
  5. Auteurs & Contributeurs
  6. Remerciements

À propos

Castle of SFML est un jeu de survie et un moteur 3D de type raycaster. Initialement pensé en C++, le projet a été entièrement réécrit en C# pour offrir une architecture plus modulaire, incluant une IA de pathfinding (BFS) et un système de tests automatisés.

Fonctionnalités principales

  • Système de rendu 3D : Affichage en temps réel avec Raycasting et Sprite Casting (Z-Buffer)
  • Intelligence Artificielle : Ennemi (fantôme) traquant le joueur via un algorithme BFS
  • Mécaniques de survie : Ramassage d'armes (couteau), gestion du score et Game Over
  • Architecture testable : Logique de jeu séparée du rendu et couverte par des tests unitaires
  • Rendu de minimap : Visualisation de la grille 2D et des entités pour le débogage

Architecture du projet

  • Program / GameLogic : Boucle principale et séparation des règles du jeu
  • Player & Ghost : Gestion des entités, mouvement et IA
  • Map : Définition du labyrinthe (20x20) et gestion des collisions
  • Rays : Algorithmes mathématiques de projection 3D
  • Raycaster.Tests : Projet de tests unitaires (xUnit)
📂 Ouvrir le panneau
🛠️ Processus d'installation Demo jeux

Technologies utilisées

  • C# (.NET 6.0) - Langage de programmation principal
  • SFML.Net 2.5 - Binding C# de la bibliothèque multimédia
  • xUnit - Framework pour les tests unitaires
  • GitHub Actions - Pipeline CI/CD pour les tests automatisés

Démarrage

🎮 Jouer sans compiler (Télécharger)

Une version jouable (.exe) est compilée automatiquement à chaque mise à jour du code. Pour jouer directement :

  1. Va dans l'onglet Releases du dépôt GitHub.
  2. Repère la version Latest Build (qui est toujours la plus récente).
  3. Déroule la section Assets en bas de cette release et clique sur CastleOfSFML-Windows.zip pour le télécharger.
  4. Extrais le dossier compressé (clic droit → Extraire tout).
  5. Double-clique sur Raycaster.exe et essaie de survivre !

Prérequis

Pour travailler sur ce projet, tu as besoin de :

  • SDK .NET 6.0 ou plus récent
  • SFML.Net (Géré via NuGet ou les dll locales)
  • Windows / Linux / macOS (Compatible multiplateforme via .NET)
  • Git pour cloner le repository

Installation

  1. Ouvre ton terminal.
  2. Clone le repository : git clone https://github.com/majeurbilly/castle_of_SFML.git
  3. Navigue dans le dossier du projet : cd castle_of_SFML
  4. Compile le projet : dotnet build
  5. Exécute les tests (optionnel) : dotnet test
  6. Lance le programme : dotnet run --project Raycaster (ou ouvre le .sln dans Visual Studio et fais F5)

Utilisation

Contrôles du jeu

  • ZQSD ou WASD : Déplacement du joueur
  • Souris : Rotation de la caméra
  • Espace : Attaquer avec le couteau (si équipé)
  • M : Afficher/Masquer la minimap
  • R : Recommencer la partie après un Game Over
  • Échap : Quitter le jeu

Aperçu des outils de suivi

.NET CLI & xUnit

  • Lancement rapide des tests de logique métier (GameLogic, MathUtils)
  • Exécution isolée sans nécessiter l'interface graphique (idéal pour GitHub Actions)

Visual Studio

  • Points d'arrêt et inspection des variables
  • Analyse de la mémoire et des performances

Console Output

  • Affichage du score en temps réel
  • Notifications d'état (Couteau ramassé, Fantôme tué, Game Over)

Auteurs & Contributeurs

Développeur principal : majeurbilly

Ce projet est développé dans le cadre d'un apprentissage du développement de jeux vidéo, des mathématiques de rendu 3D et des bonnes pratiques en C# (CI/CD, Tests Unitaires).

Remerciements

Remerciements :

(retour en haut)

About

🏰 Un jeu de survie et moteur 3D de type raycaster

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages