SLOT_ASSET_MANIFEST.md

Checklist exhaustive des assets nécessaires pour produire une machine à sous Cool Kids sur Stake Engine. Ce document est la référence : le Slot Factory génère un assets.json par jeu à partir de cette liste, et sa validation automatique vérifie chaque entrée.


0. Conventions globales

0.1 Nomenclature (obligatoire)

<theme>_<categorie>_<element>[_<index>][_<etat>].<ext>

exemples :
cowboy_symbol_high_01_idle.webp
cowboy_symbol_high_01_win.webp
cowboy_ui_spin_default.webp
cowboy_ui_spin_pressed.webp
cowboy_bg_base_landscape.webp
cowboy_bg_base_portrait.webp
cowboy_bonus_freespins_intro.webm
cowboy_audio_bigwin.mp3

0.2 Formats par défaut

Type Format Alternative Notes
Images UI / symboles WebP (qualité 80–90) PNG si transparence délicate AVIF optionnel en 2e source
Fonds WebP ou JPG q80 Pas de PNG opaque plein écran
Atlas de symboles WebP + JSON (format TexturePacker/pixi) 2048×2048 max par page
Vidéo MP4 H.264 (CRF 19–23, faststart) WebM VP9 alpha si transparence Le chroma-key runtime (canvas) reste possible pour l'alpha, pattern validé TNF
Audio MP3 128–192 kbps Web Audio décodé en buffers (pipeline TNF validé)
Fonts WOFF2 self-hosté TTF fallback JAMAIS de Google Fonts CDN en prod (static-files-only Stake)
3D (optionnel) glTF en data-URI Le CDN Stake bloque blob: — piège résolu sur TNF

0.3 États standards

0.4 Résolutions de référence


1. Branding du jeu

Asset Fichier Format Taille Transp. Oblig. Module Fallback
Logo du jeu (titre) <t>_brand_logo.webp WebP ~1200×400, ratio libre oui frame/loading texte stylé (font titre + or)
Logo studio Cool Kids commun coolkids_logo.png PNG 512×512 oui loading/splash — (asset commun au moteur)
Icône/favicon <t>_brand_icon.webp WebP 256×256 oui html head logo réduit

2. Backgrounds

Asset Fichier Taille Oblig. Module Fallback
Fond principal landscape <t>_bg_base_landscape.webp 1920×1080 scene dégradé thème
Fond principal portrait <t>_bg_base_portrait.webp 1080×2340 (couvre 0.42–0.56) scene crop du landscape
Fond bonus landscape/portrait <t>_bg_bonus_*.webp idem si feature bonus à scène features/* teinte du fond de base
Couches parallax (opt.) <t>_bg_layer_0N.webp 1920×1080+bleed scene fond statique
Ambiance loading <t>_bg_loading.webp 1920×1080 loading fond noir + logo

3. Cadres & décors

Asset Fichier Notes Oblig. Fallback
Cadre de la grille <t>_frame_reels.webp 9-slice OU pièces (top/sides/bottom) — les 2 modes existent au moteur (patterns TNF) cadre or générique placeholder
Bandeau titre <t>_frame_title.webp intègre ou non le logo logo posé sur barre sombre
Barre de contrôle (bet bar) <t>_frame_betbar_landscape.webp + _portrait pièces séparées acceptées (_betbar_left/right/socket) barre sombre + liserés or
Séparateurs de rouleaux <t>_frame_reeldivider.webp aucun (gap simple)
Décors additionnels (personnage hôte, props) <t>_deco_*.webp/mp4 opt-in module character-actor

4. Rouleaux

Asset Fichier Notes Oblig. Fallback
Fond de grille <t>_reels_bg.webp sous les symboles, dans le masque panneau sombre semi-opaque
Fond de cellule (opt.) <t>_reels_cell.webp grilles « cases » (cluster/HnW) aucun
Flou/blur de spin (opt.) <t>_reels_blurstrip_N.webp sinon motion-blur procédural procédural
Overlay anticipation <t>_reels_anticipation.webp/.webm colonne surlignée glow procédural

5. Symboles

Par défaut un jeu 5×3 : 5 low-tier + 4 high-tier + wild + scatter (+ bonus/cash selon features).

Asset Fichier Taille États Oblig.
Low-tier ×5 <t>_symbol_low_01..05_<etat>.webp 512×512 (marge 6 %) idle ✔ · win ✔ · autres opt.
High-tier ×4 <t>_symbol_high_01..04_<etat>.webp 512×512 idem
Wild <t>_symbol_wild_<etat>.webp 512×512 idle ✔ · win ✔ · sticky/expand si features si feature
Scatter <t>_symbol_scatter_<etat>.webp 512×512 idle ✔ · win ✔ · anticipation recommandé si free spins
Bonus <t>_symbol_bonus_<etat>.webp 512×512 idem scatter si feature
Cash/collect <t>_symbol_cash_<etat>.webp 512×512 idle ✔ (+ zone texte valeur) si HnW/cash
Mystery <t>_symbol_mystery_<etat>.webp 512×512 idle ✔ · reveal ✔ si feature
Multiplicateur <t>_symbol_mult_<etat>.webp 512×512 idle ✔ si feature
Géants (2×2, 3×3) <t>_symbol_giant_<n>x<n>_*.webp 1024/1536 idle ✔ si feature

Les symboles sont packés en atlas au build (le Factory s'en charge) — l'artiste livre des fichiers unitaires 512×512. Anim de win : soit sprite-sheet <t>_symbol_high_01_win_sheet.webp (+ JSON), soit frame win unique animée par le moteur (scale/glow/particules). Le placeholder utilise la 2e voie.

6. UI principale

Tous en WebP transparent. États : default ✔ · pressed ✔ · disabled/hover opt. (fallback procédural).

Élément Fichier Taille Oblig.
Bouton Spin <t>_ui_spin_<etat>.webp ~440×440 (rond)
Bouton Stop (peut = état de Spin) <t>_ui_stop_<etat>.webp idem ✖ (icône moteur)
Auto Spin <t>_ui_auto_<etat>.webp 256×256 ✖ (icône moteur)
Turbo <t>_ui_turbo_<etat>.webp 256×256
Mise + / − <t>_ui_bet_up/down_<etat>.webp 128×128
Plaque balance / mise / gain <t>_ui_plaque_<etat>.webp 9-slice ~1024×306 ✔ (1 plaque réutilisée)
MAX bet <t>_ui_maxbet_<etat>.webp 256×128
Menu / burger <t>_ui_menu_<etat>.webp 128×128
Info / règles <t>_ui_info_<etat>.webp 128×128
Son on/off <t>_ui_sound_<etat>.webp 128×128 ✔ (état muted = grayscale auto)
Plein écran <t>_ui_fullscreen_<etat>.webp 128×128
Retour / fermer <t>_ui_back_<etat>.webp, <t>_ui_close_<etat>.webp 128×128
Bonus Buy <t>_ui_bonusbuy_<etat>.webp plaque ornée ~1024×632 si feature
Tooltip / notification <t>_ui_tooltip.webp 9-slice ✖ (style moteur)

7. Modales

Élément Fichier Oblig. Fallback
Panneau modal (9-slice) <t>_modal_panel.webp panneau moteur sombre+or
Bouton confirmer / annuler <t>_modal_btn_yes/no_<etat>.webp boutons moteur
Ornement/pendentif (opt.) <t>_modal_ornament.webp aucun

Contenu des modales (règles, paytable, historique, autoplay, bonus-buy confirm, erreur) = généré par le moteur depuis la config (jamais des images de texte — leçon compliance/i18n).

8. Bonus (par module activé)

Module Assets requis
Free Spins _bonus_freespins_intro.webp/.webm (écran d'entrée) · _bonus_freespins_bg_* · compteur (style moteur) · _bonus_freespins_total.webp (panneau récap) · retrigger : réutilise l'intro
Hold & Win _bonus_hnw_bg · _symbol_cash_* · _bonus_hnw_cell_empty/locked.webp · compteur respins
Pick Bonus _bonus_pick_bg · _bonus_pick_item_idle/revealed_win/revealed_end.webp (×N)
Wheel _bonus_wheel_disc.webp · _bonus_wheel_pointer.webp · _bonus_wheel_center.webp
Multiplicateurs _fx_mult_x2..xN.webp ou rendu texte FX or (moteur, pattern TNF)
Win tiers _fx_bigwin/megawin/epicwin.webp/.webm — fallback : texte FX or + pluie de pièces (moteur)

9. Animations

Type Format Usage recommandé
Effets procéduraux (glow, shake, pulse, compteurs, pluie de pièces, particules) code moteur DÉFAUT — zéro asset
Sprite-sheets WebP + JSON atlas anims de symboles, explosions localisées
Vidéos plein écran MP4 H.264 muet + piste audio séparée (pattern TNF validé : video muted + Web Audio synchro) cinématiques (intro bonus, jackpot)
Vidéo à transparence chroma-key runtime canvas (couleur dédiée par asset, ex. vert [15,185,37] / bleu [13,49,222]) personnages animés — pipeline TNF complet réutilisable
Squelettique (Spine/Rive) opt-in futur pas dans le v1 du moteur (pas de 2e consommateur)

10. Vidéos

Asset Fichier Specs Oblig.
Cinématique bonus intro <t>_video_bonus_intro.mp4 1920×1080, ≤6 s, ≤4 Mo
Cinématique jackpot/max win <t>_video_maxwin.mp4 idem
Clips personnage (états) <t>_char_<nom>_<etat>_gs.mp4 portrait ~834×1112, fond chroma PLAT, boucle parfaite (start=end frame) si character-actor

11. Audio

Catégorie Fichier Oblig. Fallback
Musique principale (loop) <t>_audio_bgm_main.mp3 musique placeholder
Musique bonus (loop) <t>_audio_bgm_bonus.mp3 bgm principale
Ambiance (loop, opt.) <t>_audio_ambience.mp3 aucune
Spin / arrêt rouleau _audio_spin.mp3, _audio_reelstop.mp3 sons placeholder
Anticipation _audio_anticipation.mp3 riser placeholder
Gain (petit/moyen) _audio_win_small.mp3, _audio_win.mp3 placeholder
Big / Mega / Epic win _audio_bigwin/megawin/epicwin.mp3 ✔ (au moins bigwin) escalade du win.mp3
Scatter / wild / bonus trigger _audio_scatter/wild/bonustrigger.mp3 selon features placeholder
Boutons / erreur _audio_click.mp3, _audio_error.mp3 placeholder
Voix (opt.) <t>_voice_<perso>_<ligne>.mp3 aucune
Transitions musicales crossfade moteur (hold/release, pattern TNF)

12. Fonts

Usage Fichier Oblig. Fallback
Titre / display <t>_font_display.woff2 Cinzel (self-hosté, SIL OFL — validé TNF)
UI / chiffres <t>_font_ui.woff2 system-ui
Licences SIL OFL / libre uniquement, licence archivée dans art-src/licenses/

13. Localisation

14. Écrans de chargement

Asset Oblig. Fallback
_bg_loading + logo + barre de progression (style moteur) fond noir + logo Cool Kids + barre or
Astuce/flavor text localisé aucun

15. Marketing & thumbnails (soumission Stake)

Asset Specs Oblig.
Tile carrée <t>_mkt_tile.png 512×512
Tile portrait (lobby) <t>_mkt_portrait.png 1080×1440 (ratio 3:4)
Bannière large <t>_mkt_banner.png 1920×1080
Screenshots (desktop + mobile) PNG, générés par le harnais QA ✔ (auto)

16. Assets nécessaires à la soumission Stake

17. Variantes desktop / mobile / responsive


Récap volumétrie type (jeu 5×3, free spins + bonus buy)

Catégorie Nb fichiers indicatif
Branding 3
Backgrounds 4–6
Cadres/décors 4–8
Rouleaux 2–4
Symboles (11 × ~2 états) ~22–33
UI (12 éléments × ~2 états) ~24
Modales 1–4
Bonus (free spins) 4–6
Vidéos 0–3
Audio 12–18
Fonts 0–2
Marketing 2–4
Total ~80–110 fichiers — le Factory affiche cette checklist avec preview + warnings