Fou du roi - VEC canonical Forgejo repository
  • TypeScript 77.6%
  • CSS 16.4%
  • PHP 2.6%
  • JavaScript 2.1%
  • Java 0.6%
  • Other 0.7%
Find a file
2026-05-24 02:13:09 -04:00
android it works 2026-03-31 08:36:31 -04:00
backend it works 2026-03-31 08:36:31 -04:00
dist it works 2026-03-31 08:36:31 -04:00
docs Add VEC Forgejo manifest 2026-05-24 02:13:09 -04:00
electron it works 2026-03-12 19:17:10 -04:00
public it works 2026-03-31 08:36:31 -04:00
scripts it works 2026-03-12 19:22:02 -04:00
src it works 2026-03-31 08:36:31 -04:00
tmp Update files 2026-03-11 19:51:20 -04:00
vec Add VEC Forgejo manifest 2026-05-24 02:13:09 -04:00
.env it works 2026-03-12 13:10:24 -04:00
.env.example Add VEC Forgejo manifest 2026-05-24 02:13:09 -04:00
.gitignore it works 2026-03-31 08:36:31 -04:00
capacitor.config.ts it works 2026-03-31 08:36:31 -04:00
deploy it works 2026-03-31 08:36:31 -04:00
index.html it works 2026-03-12 19:17:10 -04:00
package-lock.json it works 2026-03-31 08:36:31 -04:00
package.json it works 2026-03-31 08:36:31 -04:00
README.md it works 2026-03-31 08:36:31 -04:00
tsconfig.electron.json it works 2026-03-12 19:17:10 -04:00
tsconfig.json Initial commit 2026-03-11 19:25:01 -04:00
tsconfig.node.json Initial commit 2026-03-11 19:25:01 -04:00
vite.config.ts it works 2026-03-12 19:17:10 -04:00

Fou du Roi HD

Jeu d'arcade labyrinthique en TypeScript construit avec Phaser, distribue en version web, desktop Electron et Android via Capacitor. Remake d'un vieux jeu Videoway. pt construit avec Phaser, distribue en version web, desktop Electron et Android via Capacitor.

Le joueur traverse des mondes, affronte des ennemis, gere sa vie et sa lumiere, collecte des bonus, et doit recuperer 9 cles pour progresser. Le projet inclut aussi une petite API PHP pour stocker les high scores.

Apercu

  • Gameplay arcade 2D avec progression par mondes
  • Ecrans adaptes desktop, mobile tactile et Android TV
  • Build web via Vite
  • Build desktop via Electron
  • Build Android via Capacitor
  • API PHP simple pour les high scores

Stack technique

  • TypeScript
  • Phaser 3
  • Vite
  • Electron
  • Capacitor Android
  • PHP pour l'API de scores

Structure du projet

src/
  game/                 Coeur du jeu Phaser (scenes, entites, modeles, assets, audio)
  ui/                   Shell HTML autour du canvas, HUD et ecrans mobile
  main.ts               Point d'entree frontend
android/                Projet Android genere par Capacitor
backend/public/api/     API PHP des high scores
public/                 Assets statiques
scripts/                Scripts utilitaires (icones, extraction d'assets)
deploy                  Script de deploiement web / TV / desktop

Prerequis

  • Node.js 20+ recommande
  • npm
  • PHP 8+ si vous voulez lancer l'API de scores en local
  • Android Studio + SDK Android pour builder la version Android / TV
  • macOS si vous utilisez les scripts de packaging macOS deja configures

Installation

npm install

Lancer le projet

Web

npm run dev

Le serveur Vite tourne sur http://127.0.0.1:5173.

Desktop Electron

npm run dev:desktop

Cette commande lance Vite, compile le process Electron en watch, puis ouvre l'application desktop.

Android / Android TV

Synchroniser le projet web dans Android :

npm run android:sync

Ouvrir le projet dans Android Studio :

npm run android:open

Raccourci equivalent :

npm run android:tv

Builds

Build web

npm run build

Preview web

npm run preview

Build desktop

npm run build:desktop

Lancer le build desktop localement

npm run preview:desktop

Packager desktop

npm run pack:desktop

Generer les installateurs

npm run dist:mac
npm run dist:win

Les artefacts sont generes dans release/.

High scores

Le frontend consomme actuellement l'endpoint :

https://fou.ragault.com/api/highscore.php

Le backend PHP fourni dans backend/public/api/ permet :

  • GET /api/highscore.php?limit=10
  • POST /api/highscore.php

Fonctionnalites cote backend :

  • validation stricte du payload
  • limitation de debit par IP
  • stockage JSON local
  • tri et plafonnement du leaderboard
  • CORS controle

Lancer l'API localement

Depuis le dossier backend/public :

php -S 127.0.0.1:8000

Le projet Vite contient deja un proxy /api vers http://127.0.0.1:8000.

Note importante : le client du jeu pointe aujourd'hui vers une URL absolue de production dans src/game/services/highScoreService.ts. Si vous voulez utiliser l'API locale pendant le developpement, il faut adapter cette URL.

Deploiement

Le script ./deploy supporte trois cibles :

./deploy --web
./deploy --tv
./deploy --desktop

Ce script :

  • build la cible demandee
  • envoie les artefacts sur le serveur distant configure
  • publie la version web, l'APK TV ou les installateurs desktop

Les chemins distants et l'hote de deploiement sont actuellement configures en dur dans deploy.

Configuration

Le fichier .env contient actuellement :

VITE_ENABLE_SYMMETRIC_LAYOUTS=true

Controles et adaptation plateforme

  • Desktop : clavier et gamepad
  • Mobile : HUD tactile et controles tactiles
  • Android TV : profil de rendu adapte et navigation gamepad

La detection de plateforme est centralisee dans src/platform.ts.

Points d'entree utiles

  • src/main.ts : bootstrap UI + jeu
  • src/game/GameBootstrap.ts : configuration Phaser
  • src/game/scenes/SceneTitle.ts : ecran titre et chargement des scores
  • src/game/scenes/SceneWorld.ts : boucle principale de jeu
  • backend/public/api/highscores.php : logique API scores

Etat du projet

Le depot contient deja des repertoires de build (dist/, dist-electron/, release/) et un projet Android versionne. Si vous travaillez sur le gameplay, concentrez-vous principalement sur src/game/, src/ui/ et backend/public/api/.