Réécriture d'un jeu de mes études : un roguelike 2D sous Godot 4 en C#, et une API ASP.NET Core de scores (comptes JWT, PostgreSQL) qui vérifie chaque partie en la rejouant.
TerminéSprint S23-S25 · 13 points
En bref, sans jargonpour les non-informaticiensLire le résuméRefermer
Ce que c'est
Un jeu vidéo d'exploration de donjon, avec un classement en ligne des meilleurs scores ; chaque score est vérifié en rejouant la partie, pour empêcher la triche.
À quoi ça sert
Le projet le plus complet du portfolio : un jeu, un serveur, des comptes de joueurs et une base de données.
Ce que ça montre
La conduite d'un projet complet en C# et .NET, de la logique du jeu au serveur sécurisé.
Client Godot (Godot 4, C#) → API de scores (ASP.NET Core, JWT) : graine, partie jouée
API de scores (ASP.NET Core, JWT) → Rogue.Core (règles, graine, rejeu) : rejoue la partie
API de scores (ASP.NET Core, JWT) → PostgreSQL (classement en SQL) : EF Core
Aperçu de la partie
Godot 4 ne sait pas exporter un jeu C# vers le Web : le roguelike se joue sur le bureau (Windows, Linux, macOS), dans une fenêtre Godot ou dans le terminal. Voici une partie en cours dans le client Godot.
Capture faite par le client Godot lui-même (option --screenshot) après 600 tours du pilote automatique sur la graine 7, dans un écran virtuel.
Pour jouer chez vous (SDK .NET 10 ; Godot 4.7 .NET pour la fenêtre ; Docker pour les parties classées, sur l'API de scores) :
cd projects/rogue
dotnet run --project src/Rogue.Cli -- --lang fr # dans le terminal
docker compose up --build rogue-api # l'API de scores, sur le port 8001
godot --path godot # la fenêtre Godot
Technologies
Godot 4
C#
.NET
ASP.NET Core
EF Core
PostgreSQL
JWT
OpenAPI
xUnit
Docker
Qui fait quoi
Godot 4
Le client de bureau (affichage, commandes, parties classées), exporté pour Windows, Linux et macOS par la CI.
C#
Les règles du jeu dans une bibliothèque déterministe, partagée par le client Godot, le terminal et l'API.
.NET
La plateforme commune : net8.0 pour les règles, net10.0 pour le reste.
ASP.NET Core
L'API de scores, qui impose la graine de chaque partie classée et la rejoue pour calculer elle-même le score.
EF Core
L'accès à la base et ses migrations.
PostgreSQL
Les comptes et les scores ; le classement par DISTINCT ON.
JWT
Les jetons d'authentification des comptes.
OpenAPI
La description de l'API, et Swagger UI pour l'essayer.
xUnit
Les tests des règles (génération, champ de vision, combats, rejeu) et de l'API, sur une vraie base PostgreSQL.