rps-royale/README.md
Ubuntu c2cd2e7b3a docs: add game design doc and update README with current features
- Add GAME_DESIGN.md with complete mechanics, economy, modes,
  visual and audio design documentation
- Update README with procedural audio/graphics features,
  AI mode, guest play, and links to all docs

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 13:38:05 +00:00

3.2 KiB

The Arena — RPS Royale

Un jeu multijoueur Pierre-Feuille-Ciseaux en 2D premium avec paris sur la blockchain (pattern commit-reveal anti-triche), animations cinématiques et musique adaptive.

Démo en ligne

Stack technique

Couche Technologie
Moteur 2D Phaser 3 (WebGL)
Frontend Next.js 15 + Tailwind CSS
Temps réel Node.js + Socket.io
API & DB Express + Prisma ORM + PostgreSQL 17
Cache Redis
Blockchain Hardhat + Solidity + Ethers.js v6
Audio Web Audio API (procédural)
CI/CD Forgejo Actions
Reverse Proxy Nginx Proxy Manager

Structure du monorepo

rps-royale/
├── apps/
│   ├── web/         # Next.js + Phaser (jeu)
│   ├── server/      # Node.js + Socket.io + API
│   └── contracts/   # Hardhat + Solidity
├── packages/
│   └── shared/      # Types et constantes partagés
├── docs/            # Documentation complète
└── docker-compose.yml

Fonctionnalités

  • Matchmaking temps réel : appariement automatique par montant de mise
  • Mode IA : joue contre un adversaire IA si personne n'est disponible
  • Sans wallet : génération automatique d'une adresse guest
  • Anti-triche : pattern commit-reveal via hash keccak256
  • Audio procédural : musique et SFX générés en temps réel (pas de fichiers audio)
  • Graphismes procéduraux : sprites générés par Phaser (pas d'assets externes)
  • Animations premium : zoom, shake, particules, clash cinématique
  • Smart contract : 7/7 tests passants, déployé sur Hardhat local

Développement local

Prérequis

  • Node.js 20+
  • pnpm 9+
  • Docker & Docker Compose

Installation

# À la racine du monorepo
pnpm install

# Démarrer la base de données et Redis
docker-compose up -d rps-db rps-redis hardhat-node

# Générer les types Prisma et migrer la DB
pnpm db:generate
pnpm db:migrate

# Compiler et déployer le contrat en local
pnpm contract:compile
pnpm contract:deploy:local

# Lancer le serveur et le frontend (dans deux terminaux)
pnpm --filter server dev
pnpm --filter web dev

Déploiement production

Le déploiement est entièrement automatisé via Forgejo Actions. Un push sur la branche main déclenche :

  1. Build des images Docker
  2. Déploiement sur le VPS via SSH + docker-compose

Voir docs/DEPLOYMENT.md pour les détails.

Game Design

Le jeu repose sur un pattern commit-reveal blockchain pour garantir l'intégrité :

  1. Commit : chaque joueur envoie le hash de son choix + nonce secret
  2. Suspense : phase cinématique avec musique et particules
  3. Reveal : les joueurs dévoilent leur nonce et choix
  4. Résultat : le smart contract vérifie les hashes et distribue le pot

Voir docs/GAME_DESIGN.md pour la documentation complète.

Documentation

Licence

MIT