Le pile-ou-face dans sa forme la plus pure — augmenté d'une couche émotionnelle qui transforme chaque spin en clip.
On joue au casino pour trois raisons fondamentales : l'espoir de gagner, passer le temps, et vivre une parenthèse hors du cadre social — un frisson en marge du rapport « travail = argent ».
La plupart des machines noient cette essence sous des couches de complexité (lignes, scatters, bonus à tiroirs). Tails Never Fails fait l'inverse : il distille le jeu à son atome le plus pur — un pile ou face — que tout le monde comprend en une seconde, sans tutoriel, dans n'importe quelle langue.
Le nom vient de l'argot superstitieux qu'on lance avant de flipper une pièce : « tails never fails ». Il porte déjà la promesse et le folklore du geste.
Note de positionnement : le villain est un personnage de fiction (un archétype de cupidité), jamais une cible réelle. C'est à la fois un choix éthique et un choix business — la compliance Stake, les processeurs de paiement et les ad networks rejettent tout contenu fondé sur l'identité réelle d'un groupe. Un méchant inventé donne le même game-feel sans le risque de dépublication.
La pièce peut retomber de trois façons. Le joueur parie sur l'une des deux issues gagnantes :
La force du design : EDGE donne un nom et une image intuitive à la « Tranche ». Personne n'a besoin qu'on lui explique pourquoi c'est rare et pourquoi ça paie énorme — c'est de la physique de cour de récré.
Comme un select-screen de jeu vidéo, le joueur choisit le villain qu'il veut affronter dans un carrousel. Chaque villain = un profil de volatilité. Le RTP reste équitable et stable (~96 %, certifiable) ; ce qui change, c'est le top multiplicateur de l'EDGE et sa rareté — le vrai levier de sensation.
Gobelin avare aux doigts crochus, accroché à son magot. Cupidité grotesque, comique, 100 % fictive. Il garde le plus gros tas — donc le plus gros jackpot.
EDGE ×1000 · ~1 / 1 042
Le moonshot ultime.
Le maître de cérémonie en costard au sourire carnassier (celui du key art). Incarne « la maison qui déteste payer ». Intemporel, safe.
EDGE ×100 · ~1 / 104
L'équilibre risque/fréquence.
Mascotte IA narquoise au néon. « The house always wins. » Pleure des larmes glitchées sur le jackpot. Moderne, ultra-streamable.
EDGE ×50 · ~1 / 52
Gains fréquents, sensations douces.
Le roster est extensible : chaque nouveau villain est un événement de contenu (saison, collab streamer, skin événementiel) sans toucher au moteur.
Modèle de base — chaque bouton est un bet mode avec sa propre distribution. On gagne uniquement si la face choisie sort.
RTP(bet) = P(face gagnante) × multiplicateur
P(Heads) + P(Tails) + P(Edge) = 1
Cible : RTP ≈ 96 % sur chaque bet (ajustable par juridiction)
| Issue | Multi | Probabilité | Fréquence | RTP |
|---|---|---|---|---|
| Tails | ×3 | 0,3200 | ~1 / 3,1 | 96 % |
| Perte (Heads/Edge non choisi) | ×0 | 0,6800 | — | — |
| Villain | EDGE × | P(Edge) | Fréquence | RTP | Volatilité |
|---|---|---|---|---|---|
| Goblin Banker | ×1000 | 0,00096 | ~1 / 1 042 | 96 % | Haute |
| The Showman | ×100 | 0,00960 | ~1 / 104 | 96 % | Moyenne |
| The Algorithm | ×50 | 0,01920 | ~1 / 52 | 96 % | Basse |
force_record de l'optimiseur. Le ×1000 du Goblin = ton cap actuel. À figer explicitement avant la certif (Stake attend un cap déclaré).GameConfig : multiplicateurs, prix, modes de pari.run.py lance N simulations → books_base.jsonl.lookUpTable_*.csv + force_record → consommés par le RGS.| Couche | Réalité Stake Engine | Statut |
|---|---|---|
| Math | Math SDK Python ≥ 3.12. GameConfig → simulations run.py → optimiseur Rust/Cargo qui balance au RTP cible. Sort books.jsonl, lookUpTable_*.csv, force_record. | ✓ Le coin-flip rentre direct |
| Front-end | PixiJS 8 + Svelte 5 + TypeScript, monorepo TurboRepo, machine à états XState. Le RGS pousse des book events → handlers → events d'animation. Build via pnpm (Node 22.16). | ⚠ Pas Unity — runtime 100 % web |
| RGS | 3 appels : authenticate (session, balance, minBet/maxBet/stepBet/betLevels, jurisdiction) → play (débite, renvoie l'issue) → end-round (paie, clôt). Montants en 6 décimales (1 000 000 = 1,00 $). | ✓ 2 boutons = 2 bet modes |
| Anim in-game | Rive ou Spine pour le villain temps réel (rage / larmes), intégré aux sprites Pixi. | ✓ Choix nôtre |
| Vidéo / promo | Higgsfield pour les shorts et le pré-render marketing (pas le runtime). | ✓ |
| Publication | Login → page Files → import du build folder → Publish Game → Front End. Validation ~24 h. | ✓ |
| Économie | 10 % du GGR reversé au dev, mensuel, sans frais cachés. | ✓ Base du business model |
# Front-end
nvm install 22.16.0
npm i -g pnpm@10.5.0
git clone https://github.com/StakeEngine/web-sdk.git
cd web-sdk && pnpm install
pnpm run dev --filter=<game> # dev server
pnpm run build --filter=<game> # build à uploader
# Math (Python ≥ 3.12, + Rust pour l'optimiseur)
git clone https://github.com/StakeEngine/math-sdk.git
make run GAME=<game>
Compliance à garder en tête : RTP déclaré = RTP certifié ; max-win cap explicite ; la réponse authenticate porte des flags jurisdiction (ex. socialCasino, disabledTurbo) qu'il faut respecter côté UI.
Exploiter la proposition du CTO Stake Engine pour mettre la machine en avant dès le lancement. La simplicité radicale + le hook villain en font un candidat parfait pour une mise en avant éditoriale.
Deals de revenue-share avec des streamers casino via les contacts maltais. Le hook « faire pleurer le villain » donne au streamer un objectif narratif qui dépasse le simple gain — du contenu qui se filme tout seul.
Usine à clips verticaux (Nico + équipe) : moments de rage/larmes du villain. Comptes réels, contenu authentique. Le format est natif au jeu, pas plaqué dessus.
10 % du GGR
Reversé mensuellement par Stake. Chaque villain ajouté = nouveau cycle de contenu et de rétention, sans coût moteur.
Cette page est la v0.1 de la bible. À enrichir au fil des décisions (paytables finales, noms définitifs, deck streamers, planning de contenu).