
Fanaviation12
Test test test.
Prompt
PROMPT ULTIME â CRĂER UN JEU VOXEL 3D MOBILE DANS UN UNIQUE FICHIER HTML Tu es un dĂ©veloppeur senior spĂ©cialisĂ© en JavaScript, WebGL, Three.js, jeux vidĂ©o voxel, optimisation mobile et ergonomie tactile. Ta mission est de crĂ©er un jeu sandbox voxel 3D complet, original et rĂ©ellement jouable sur tĂ©lĂ©phone, directement depuis un navigateur. Le rĂ©sultat doit rappeler les grandes mĂ©caniques dâun jeu de construction et de survie en blocs, sans copier son nom, son code, ses textures, ses sons, ses personnages, ses interfaces ou ses ressources protĂ©gĂ©es. CONTRAINTE ABSOLUE Tu dois livrer un seul fichier nommĂ© "index.html". Ce fichier doit contenir directement : - le HTML ; - le CSS ; - le JavaScript ; - les interfaces ; - les textures gĂ©nĂ©rĂ©es par code ; - les sons gĂ©nĂ©rĂ©s par code si possible ; - toutes les donnĂ©es du jeu ; - les recettes ; - les blocs ; - les objets ; - la sauvegarde. Aucun autre fichier local ne doit ĂȘtre nĂ©cessaire. Le projet doit fonctionner sans : - npm ; - Node.js ; - terminal ; - compilation ; - installation ; - serveur backend ; - base de donnĂ©es distante ; - clĂ© API ; - compte utilisateur ; - fichier CSS sĂ©parĂ© ; - fichier JavaScript sĂ©parĂ© ; - texture externe obligatoire ; - logiciel spĂ©cialisĂ©. Le fichier doit pouvoir ĂȘtre dĂ©ployĂ© par un dĂ©butant sur : - GitHub Pages ; - Netlify ; - Cloudflare Pages ; - Vercel ; - itch.io ; - nâimporte quel hĂ©bergement statique. Lâutilisateur doit seulement avoir Ă : 1. crĂ©er un fichier "index.html" ; 2. copier le code fourni ; 3. enregistrer le fichier ; 4. envoyer le fichier sur un hĂ©bergement statique ; 5. ouvrir le lien depuis son tĂ©lĂ©phone. --- 1. FORMAT DE SORTIE OBLIGATOIRE Ta rĂ©ponse finale doit contenir : 1. une explication trĂšs courte ; 2. un unique bloc de code contenant lâintĂ©gralitĂ© du fichier "index.html" ; 3. une procĂ©dure de dĂ©ploiement pour dĂ©butant ; 4. une liste honnĂȘte des limites restantes. Ne fournis pas plusieurs fichiers. Ne dĂ©coupe pas le code en plusieurs rĂ©ponses. Ne remplace jamais une partie du code par : // Ă complĂ©ter ou : // Reste du code ou : // ImplĂ©mentation similaire ou toute autre omission. Le fichier doit ĂȘtre complet et directement copiable. --- 2. DĂPENDANCE AUTORISĂE Tu peux charger Three.js depuis un CDN fiable avec une balise "<script>" classique. Utilise de prĂ©fĂ©rence une version stable prĂ©cise et non une URL ambiguĂ« du type "latest". Exemple de principe : <script src="https://cdn.jsdelivr.net/npm/three@VERSION/build/three.min.js"></script> Ăvite les modules ES si cela complique lâouverture et le dĂ©ploiement pour un dĂ©butant. Le jeu doit afficher un message clair si Three.js ne peut pas ĂȘtre chargĂ©. Ă part Three.js, Ă©vite toute autre dĂ©pendance. --- 3. OBJECTIF DU JEU CrĂ©er un jeu voxel 3D en vue Ă la premiĂšre personne comprenant au minimum : - un monde en blocs ; - une gĂ©nĂ©ration procĂ©durale ; - plusieurs types de blocs ; - des arbres ; - des reliefs ; - de lâeau simplifiĂ©e ; - un ciel ; - un cycle jour-nuit ; - un joueur contrĂŽlable ; - des collisions ; - la gravitĂ© ; - le saut ; - la destruction de blocs ; - le placement de blocs ; - une barre dâinventaire rapide ; - une sĂ©lection de blocs ; - une sauvegarde locale ; - un mode survie simplifiĂ© ; - un mode crĂ©atif ; - une interface mobile ; - une interface ordinateur ; - un Ă©cran dâaccueil ; - un menu pause ; - des paramĂštres graphiques ; - une aide intĂ©grĂ©e. Le jeu doit ĂȘtre une vraie expĂ©rience jouable et non une simple scĂšne 3D. --- 4. IDENTITĂ ORIGINALE Invente une identitĂ© propre au jeu. CrĂ©er : - un nom original ; - un titre original ; - une palette visuelle originale ; - des noms de blocs originaux ; - une interface originale ; - des textures originales gĂ©nĂ©rĂ©es par Canvas ; - des sons simples gĂ©nĂ©rĂ©s avec Web Audio API. Ne reprends pas : - le logo dâun jeu existant ; - ses textures ; - ses noms exacts ; - ses sons ; - son Ă©cran dâaccueil ; - son interface exacte ; - ses crĂ©atures connues ; - ses recettes exactes. --- 5. COMPATIBILITĂ Le jeu doit fonctionner principalement sur : - Chrome Android ; - Samsung Internet ; - Edge Android ; - Safari iPhone ; - Safari iPad ; - Chrome ordinateur ; - Edge ordinateur ; - Firefox ordinateur. Le jeu doit ĂȘtre optimisĂ© en prioritĂ© pour un tĂ©lĂ©phone rĂ©cent. Il doit sâadapter aux Ă©crans : - 16:9 ; - 18:9 ; - 20:9 ; - tablettes ; - Ă©crans pliables ; - Ă©crans avec encoche. Utilise les zones sĂ©curisĂ©es CSS : env(safe-area-inset-top) env(safe-area-inset-bottom) env(safe-area-inset-left) env(safe-area-inset-right) --- 6. ĂCRAN DâACCUEIL CrĂ©er un Ă©cran dâaccueil esthĂ©tique comprenant : - le nom du jeu ; - un dĂ©cor voxel animĂ© en arriĂšre-plan ; - un bouton « Jouer » ; - un bouton « Nouveau monde » ; - un bouton « Continuer » si une sauvegarde existe ; - un bouton « ParamĂštres » ; - un bouton « Aide ». Pour la crĂ©ation dâun monde, demander : - nom du monde ; - graine facultative ; - mode crĂ©atif ou survie ; - qualitĂ© graphique. Si aucune graine nâest saisie, en gĂ©nĂ©rer une automatiquement. --- 7. MONDE VOXEL CrĂ©er un monde composĂ© de blocs cubiques. PrĂ©voir au minimum les blocs suivants avec des noms originaux : - herbe ; - terre ; - pierre ; - sable ; - bois ; - feuilles ; - eau ; - minerai commun ; - minerai rare ; - bloc lumineux ; - planches ; - verre simplifiĂ©. Chaque bloc doit avoir : - un identifiant ; - une couleur ou texture ; - une soliditĂ© ; - un temps de destruction ; - une transparence Ă©ventuelle ; - une possibilitĂ© dâĂȘtre placĂ© ; - une possibilitĂ© dâĂȘtre rĂ©cupĂ©rĂ©. Les textures doivent ĂȘtre gĂ©nĂ©rĂ©es dans le fichier HTML avec Canvas 2D. CrĂ©er un atlas de textures gĂ©nĂ©rĂ© dynamiquement. Ne charge aucune image externe obligatoire. --- 8. GĂNĂRATION PROCĂDURALE Le monde doit ĂȘtre gĂ©nĂ©rĂ© Ă partir dâune graine. La mĂȘme graine doit produire le mĂȘme terrain. Utilise une fonction de bruit procĂ©dural intĂ©grĂ©e au fichier. La gĂ©nĂ©ration doit produire : - terrain irrĂ©gulier ; - plaines ; - collines ; - petites montagnes ; - plages ; - eau ; - arbres ; - minerais ; - petites cavitĂ©s ou grottes simplifiĂ©es. Le monde peut ĂȘtre limitĂ© en taille pour prĂ©server les performances mobiles. Taille recommandĂ©e pour la premiĂšre version : - entre 48 Ă 48 et 96 Ă 96 blocs horizontalement ; - hauteur comprise entre 24 et 48 blocs. Choisis automatiquement une taille raisonnable selon la puissance de lâappareil. --- 9. OPTIMISATION OBLIGATOIRE Ne crĂ©e jamais un mesh Three.js distinct pour chaque bloc visible. Utilise au minimum : - suppression des faces invisibles ; - gĂ©omĂ©trie fusionnĂ©e ; - "BufferGeometry" ; - un nombre limitĂ© de matĂ©riaux ; - atlas de textures ; - recalcul local du monde lors des modifications ; - distance dâaffichage limitĂ©e ; - brouillard ; - rĂ©duction de rĂ©solution sur mobile ; - limitation des particules ; - rĂ©utilisation des objets temporaires. Le jeu doit viser : - environ 60 FPS sur tĂ©lĂ©phone puissant ; - environ 30 FPS minimum sur tĂ©lĂ©phone intermĂ©diaire. Si nĂ©cessaire, privilĂ©gie la fluiditĂ© plutĂŽt que la taille du monde. --- 10. JOUEUR ET PHYSIQUE Le joueur doit avoir : - une camĂ©ra Ă la premiĂšre personne ; - une hauteur rĂ©aliste par rapport aux blocs ; - une boĂźte de collision ; - une gravitĂ© ; - une vitesse horizontale ; - un saut ; - une dĂ©tection du sol ; - des collisions avec les blocs solides ; - une possibilitĂ© de marcher ; - une possibilitĂ© de courir ; - une possibilitĂ© de voler en mode crĂ©atif ; - des dĂ©gĂąts de chute en mode survie. La physique doit ĂȘtre basĂ©e sur le temps Ă©coulĂ© et non sur le nombre dâimages par seconde. Le joueur ne doit pas : - traverser les murs ; - passer Ă travers le sol ; - apparaĂźtre dans un bloc ; - placer un bloc dans son propre corps. PrĂ©voir une fonction permettant de replacer le joueur au-dessus du terrain sâil est bloquĂ©. --- 11. COMMANDES MOBILES CrĂ©er de vraies commandes tactiles utilisables. Ă gauche : - joystick virtuel pour avancer ; - reculer ; - aller Ă gauche ; - aller Ă droite. Ă droite : - glissement du doigt pour orienter la camĂ©ra. Ajouter des boutons pour : - sauter ; - courir ; - casser un bloc ; - poser un bloc ; - ouvrir lâinventaire ; - mettre en pause ; - voler vers le haut en mode crĂ©atif ; - voler vers le bas en mode crĂ©atif. Les commandes doivent : - prendre en charge plusieurs doigts simultanĂ©ment ; - utiliser Pointer Events ; - empĂȘcher le dĂ©filement de la page ; - empĂȘcher le zoom accidentel ; - empĂȘcher la sĂ©lection de texte ; - rester visibles en plein Ă©cran ; - avoir une taille adaptĂ©e aux pouces ; - avoir une opacitĂ© rĂ©glable ; - avoir un retour visuel lors de lâappui. La camĂ©ra et le dĂ©placement doivent fonctionner simultanĂ©ment avec deux doigts. ---
A system prompt was added to support web rendering