PLANET CRASH (PHP + JSON, sans base de données) ============================================== Prérequis - PHP 8.1+ (recommandé) - Un serveur web local (Apache/Nginx) ou PHP built-in server Lancement rapide (dev) 1) Place le dossier dans ton serveur web 2) Vérifie que le dossier data/ est accessible en écriture par PHP 3) Ouvre /public/index.html 4) Clique "Login dev" Mode Google (prod) - Le pack contient un squelette OAuth Google. - Pour un environnement prod, il faut: - Créer un client OAuth (Google Cloud Console) - Renseigner les variables d'environnement: GOOGLE_CLIENT_ID GOOGLE_CLIENT_SECRET GOOGLE_REDIRECT_URI (ex: https://tondomaine.tld/api/join.php) - IMPORTANT: la vérification cryptographique complète du id_token (signature, issuer, audience) n'est pas implémentée ici pour rester "zéro dépendance". Pour durcir: - soit tu vérifies le JWT avec les certificats Google (fetch + cache des JWKS), - soit tu valides via l'endpoint tokeninfo de Google (appel HTTP). - En intranet / prototypage, le mode dev suffit. Architecture /public -> front (HTML/JS canvas) /api -> endpoints PHP /api/lib -> logique /data -> JSON (games, players, defs) + locks + logs Gameplay MVP inclus dans ce pack - Monde biomes: herbe, sable, lave, toundra, marécages, montagne, glace, neige - Brouillard de guerre (découverte par joueur) - Cycle jour / nuit (impact vision + oxy si pas de lampe) - Déplacements avec coût selon biome - Collecte de ressources (pictos) - Possession de case (bonus score) - Constructions: oxy_generator, bio_oven, e_forge, water_still, lamp_post - Production par tick (water_still) + vieillissement des constructions - Coffres: global (partagé) et perso (lié au sub Google) - Craft d'outils via recettes + tech tree (débloquage progressif) - Artefacts: chance de drop lors de collecte, peut débloquer une recette - Monstres simples: se déplacent + combat contact - Mort définitive: le joueur meurt, son loot tombe au sol, ses constructions restent Ticks - Le serveur avance en ticks (par défaut 2s). - Le client appelle /api/tick.php pour rattraper le retard (max 10 ticks d'un coup). - Les joueurs envoient des ordres; ils sont résolus au tick suivant. Ajustements rapides - config: /api/lib/config.php - defs: /data/defs/*.json - tailles monde: config.php "default_world" Bon jeu.