Skip to content

Isilin/dreadcast_simulator

Repository files navigation

Simulateur de Build Dreadcast

Dreadcast Simulator

Build Status Version License: MIT Vercel

⭐ Si vous aimez ce projet, mettez-lui une étoile sur GitHub !

Vue d'ensembleFonctionnalitésDémarrage rapideArchitectureRoadmapFAQ

Animation montrant l'application en action

Un simulateur complet pour créer et optimiser vos builds de personnage sur Dreadcast, le jeu de rôle cyberpunk francophone par navigateur. Testez différentes combinaisons d'implants, d'équipements et de kits pour maximiser les statistiques de votre personnage.

Tip

L'application est entièrement fonctionnelle en mode hors-ligne grâce au stockage local. Aucune connexion internet n'est requise après le chargement initial.

Vue d'ensemble

Le Simulateur de Build Dreadcast permet aux joueurs de planifier leurs personnages en explorant différentes combinaisons d'équipements et d'augmentations cybernétiques. L'application calcule automatiquement les statistiques finales et gère les prérequis, offrant une expérience fluide pour optimiser vos builds.

Gestion des implants Sélection des items Sélection des kits

Cette application est construite avec des technologies modernes et suit une architecture feature-sliced pour une maintenabilité optimale.

Fonctionnalités

  • Création de personnage complète

    • Sélection du genre et de la race avec impact sur les statistiques
    • Configuration des implants cybernétiques avec niveaux variables
    • Gestion de l'équipement complet (tête, torse, jambes, pieds, armes)
    • Ajout de kits techniques spécialisés
    • Calcul en temps réel des statistiques finales
  • Gestion des builds

    • Hors connexion: 1 build stocke en local (localStorage)
    • Connecte sans abonnement valide: 5 builds distants (BDD)
    • Connecte avec abonnement valide: nombre de builds illimite (BDD)
    • Partage de build via lien public en lecture seule (/shared/:id)
    • En fin d'abonnement, les builds > 5 sont conserves mais masques
    • Validation automatique des prerequis
    • Interface intuitive avec apercu des modifications
  • Authentification

    • Connexion via endpoint serverless /api/auth/login (utilisateur/email + mot de passe)
    • Redirection automatique vers la page de connexion si la session est absente
    • Menu compte connecte avec acces a la page abonnement et deconnexion
  • Abonnements

    • Page SaaS dediee aux plans: 1 an (50.000¢), 6 ans (250.000¢), 12 ans (450.000¢), Illimite (800.000¢)
    • Enregistrement de chaque abonnement avec date de debut et date de fin
    • API serverless /api/subscriptions securisee via jeton Supabase
  • Données du jeu

    • Basé sur les mécaniques officielles de Dreadcast
    • Implants, équipements et kits à jour
    • Terminologie RPG authentique en français
    • Calculs de statistiques précis

Démarrage rapide

Option 1: Accès direct en ligne

Utilisez l'application directement depuis votre navigateur :

🚀 Ouvrir le Simulateur

Option 2: Installation locale

Clonez et exécutez le projet localement pour le développement :

# Cloner le dépôt
git clone https://github.com/Isilin/dreadcast_simulator.git

# Naviguer vers le projet
cd dreadcast_simulator/frontend

# Installer les dépendances
yarn install

# Démarrer le serveur de développement
yarn dev

Ouvrez http://localhost:5173 dans votre navigateur.

Variables d'environnement (auth Supabase)

Le frontend accepte maintenant l'un des deux formats ci-dessous dans .env.local.

Format Vite :

VITE_SUPABASE_URL=https://votre-projet.supabase.co
VITE_SUPABASE_ANON_KEY=votre_cle_anon

Format Vercel/NEXT_PUBLIC (déjà présent sur ton projet) :

NEXT_PUBLIC_SIMULATOR_SUPABASE_URL=https://votre-projet.supabase.co
NEXT_PUBLIC_SIMULATOR_SUPABASE_ANON_KEY=votre_cle_anon

Sans ces variables, la page de connexion s'affichera mais la connexion sera désactivée.

Option 3: Environnement de développement

Pour les développeurs souhaitant contribuer :

# Installer toutes les dépendances
yarn install

# Lancer les vérifications qualité
yarn lint          # Vérification ESLint
yarn format        # Formatage Prettier
yarn build         # Build de production

# Démarrer avec rechargement automatique
yarn dev

Architecture

Stack technologique

  • Frontend: React 19 + TypeScript pour une expérience utilisateur moderne
  • Routage: TanStack Router pour la navigation côté client
  • Gestion d'état: TanStack Query + Architecture reducer/context personnalisée
  • Styling: CSS Modules avec variables CSS pour le theming
  • Build: Vite pour des builds rapides et un développement fluide
  • Déploiement: Vercel avec déploiement automatique

Pattern architectural

Le projet suit une architecture feature-sliced design pour une organisation claire :

src/
├── domain/          # Types partagés (Stat, ItemSpot, etc.)
├── feature/         # Fonctionnalités métier
│   ├── implant/     # Gestion des implants
│   ├── item/        # Gestion des équipements
│   ├── kit/         # Gestion des kits
│   └── profile/     # Profil du personnage
├── ui/              # Composants réutilisables
└── styles/          # Styles globaux et thème

Chaque fonctionnalité est organisée selon le pattern model/services/ui :

  • model: Types, état et logique métier
  • services: Récupération de données et intégrations
  • ui: Composants React et interface utilisateur

Gestion d'état

  • Pattern Reducer + Context pour chaque fonctionnalité
  • Séparation StateContext/DispatchContext pour les performances
  • Persistance hybride: localStorage hors connexion et BDD une fois connecte
  • Validation avec schémas Zod

Développement

Scripts disponibles

yarn dev          # Serveur de développement (port 5173)
yarn build        # Build de production avec vérification TypeScript
yarn lint         # Vérification ESLint
yarn lint:fix     # Correction automatique des erreurs ESLint
yarn format       # Formatage avec Prettier
yarn preview      # Preview du build de production

Standards de code

Le projet suit des standards stricts définis dans CODING_STANDARDS.md :

  • TypeScript strict avec pattern as const pour les énumérations
  • Feature-sliced design avec exports barrel (index.ts)
  • CSS Modules avec noms sémantiques
  • Hooks personnalisés pour la logique réutilisable
  • Tests avec React Testing Library (à implémenter)

Configuration GitHub Copilot

Le projet inclut une configuration complète GitHub Copilot dans .github/ :

  • Instructions pour React, TypeScript, testing et sécurité
  • Prompts pour la création de composants, tests et documentation
  • Agents spécialisés (architecture, review, débogage)
  • Workflow GitHub Actions pour validation continue

Roadmap

Version courante (v1.0)

  • Interface de base avec React 19
  • Gestion complète des implants
  • Système d'équipement et de kits
  • Sauvegarde locale de builds
  • Calcul automatique des statistiques
  • Mode sombre/clair
  • Version mobile responsive
  • Animations et transitions fluides
  • Bonus d'armes
  • Ajout des drogues

Prochaines versions

v1.1 - Fonctionnalités avancées

  • Partage de builds via URL
  • Comparaison de builds côte à côte
  • Suggestions d'optimisation automatiques

v1.2 - Mécaniques avancées

  • Formules de stats avancées (encaissement, etc.)
  • Modificateurs complexes
  • Support complet des drogues et effets temporaires

v2.0 - Backend et collaboration

  • Comptes utilisateurs et builds partagés
  • Classements et builds de la communauté

FAQ

L'application fonctionne-t-elle hors-ligne ? Oui, une fois chargée, l'application fonctionne entièrement hors-ligne grâce au stockage local.

Les statistiques sont-elles identiques au jeu ? Les calculs sont basés sur les formules officielles connues, mais de légères variations peuvent exister selon les mises à jour du jeu.

Puis-je contribuer au projet ? Absolument ! Consultez CODING_STANDARDS.md pour les conventions, puis ouvrez une issue ou une pull request.

Le simulateur est-il officiel ? Non, c'est un projet communautaire non-officiel créé par des joueurs passionnés.

Comment signaler un bug ? Ouvrez une issue sur GitHub avec une description détaillée du problème.

Soutenir le projet

Si ce simulateur vous aide dans vos aventures cyberpunk :

  • ⭐ Mettez une étoile au projet sur GitHub
  • 🐛 Signalez les bugs via les issues GitHub
  • 💡 Proposez des améliorations avec vos idées
  • ☕ Offrez un café sur Ko-fi
  • 🎮 Don en jeu à [Pelagia] sur Dreadcast

Contact et communauté

  • Discord: [isilibn]
  • GitHub: @Isilin
  • Dreadcast: [Pelagia]

Note légale: Ce projet est un outil communautaire non-officiel. Il n'est pas affilié à l'administration du jeu Dreadcast. Toutes les données du jeu appartiennent à leurs propriétaires respectifs.

Releases

No releases published

Packages

 
 
 

Contributors

Languages