Guide

Code source de jeu de billard : un pack HTML5 de 8-ball décortiqué

Physique, règles, IA et sauvegardes dans des fichiers séparés : ce que contient le code source de Velvet Pool et ce qu'un acheteur modifie en premier.

Illustration de Velvet Pool : la queue alignée derrière la bille blanche sur une table verte, avec les billes 3, 8 et 4 près d'une poche d'angle.

Un code source de jeu de billard vaut l'achat quand trois éléments vivent dans des fichiers séparés et lisibles : la physique des billes, les règles du 8-ball et l'adversaire géré par l'ordinateur. S'ils sont emmêlés, chaque changement de couleur du tapis ou de difficulté de l'IA tourne à la séance de débogage. Velvet Pool, notre template de 8-ball, les garde séparés, et ce guide parcourt son pack fichier par fichier.

Nous voyons comment le code est organisé, ce qu'un acheteur change généralement en premier, comment l'héberger ou l'empaqueter en app, ce que permet la licence et ce que l'édition laisse de côté. Chaque nom de fichier ci-dessous vient du guide de l'acheteur fourni avec le jeu.

En bref : Velvet Pool est du JavaScript pur sur WebGL2, sans bibliothèque 3D ni étape de build. Vous modifiez un fichier, le copiez dans le dossier du jeu et rechargez la page.

Ce que contient ce code source de jeu de billard

Velvet Pool est un jeu de 8-ball terminé, pas un moteur ni un kit de démarrage. Le téléchargement contient quatre dossiers : game/ est la build prête à mettre en ligne, source/ est le même jeu en édition développeur avec README, package.json et tests, documentation/ contient le guide illustré en anglais et en portugais, et THIRD-PARTY-LICENSES/ conserve les textes de licence des polices.

Le jeu se joue au 8-ball avec fautes, bille en main et pleines ou rayées. Il y a trois niveaux d'IA (Easy, Medium et Hard), une table d'entraînement libre avec annulation, placement des billes et remise en triangle, et des parties à deux sur un même appareil. Les joueurs donnent de l'effet coulé, rétro ou latéral à la bille blanche, et des succès locaux débloquent cinq couleurs de tapis et cinq styles de queue. L'interface existe en 14 langues.

  • Stack : JavaScript vanilla, modules ES et WebGL2. Ni Three.js ni autre bibliothèque de code.
  • Code : JavaScript simple et formaté dans source/src et game/src. Rien n'est minifié ni empaqueté.
  • Tests : optionnels, avec Node.js 20 ou plus récent. Ils vérifient la physique, les règles du 8-ball, les parties contre l'IA et les clés de traduction.
  • Version au moment de la rédaction : 1.1.0, mise à jour le 22 octobre 2026.

Voir la fiche de Velvet Pool, la démo et le manuel

Comment les fichiers sont organisés

game/ et source/ partagent la même arborescence : un chemin dans un dossier désigne le même fichier dans l'autre. Pour un jeu de billard, la séparation qui compte le plus est celle entre src/core/ (simulation et règles) et src/game/ (tout ce que le joueur touche).

  • src/core/physics.js : simulation des billes, effets et réaction des bandes.
  • src/core/rules.js : règles du 8-ball et décisions sur les fautes.
  • src/core/ai.js : la façon dont l'IA choisit son coup.
  • src/game/controls.js : saisie de la visée, de la puissance et de l'effet.
  • src/game/progress.js : succès, tapis, queues et score des parties.
  • src/game/i18n.js : les textes en 14 langues, listées dans LANGS.
  • src/game/localRecords.js : l'historique local des scores.
  • src/game/audio.js : lecture des effets et de la musique.
  • css/style.css et css/fonts.css : thème, mise en page responsive et déclarations de polices.
  • assets/ : graphismes, audio et polices, avec les fichiers du logo dans assets/logo/.

Comme physique, règles et IA sont des modules séparés, vous pouvez rendre l'IA plus indulgente sans toucher au mouvement des billes, ou changer une règle de faute sans réajuster les bandes. Cette séparation est le premier point à vérifier dans tout code de billard que vous achetez.

Ce qu'un acheteur modifie en premier

La plupart des projets suivent le même ordre. On commence par ce que les joueurs voient, puis par ce qu'ils ressentent, et on garde les règles pour la fin, parce que c'est là qu'on introduit le plus facilement un bug.

  1. Marque : remplacez les fichiers du logo dans assets/logo/ et ajustez les tailles correspondantes dans le CSS. La marque blanche est autorisée, votre nom ou celui de votre client peut donc remplacer le nôtre.
  2. Apparence de la table : couleurs et polices sont dans css/style.css. Les définitions des tapis et des queues sont dans progress.js. Gardez leurs identifiants stables, sinon les joueurs perdent les éléments cosmétiques déjà débloqués.
  3. Textes et langues : chaque chaîne est dans i18n.js. Modifiez les formulations nécessaires ; la liste des langues est dans LANGS.
  4. Difficulté de l'IA : le choix du coup est dans ai.js. Réglez un niveau à la fois et jouez une partie complète contre lui.
  5. Physique : frottement, effets et réaction des bandes sont dans physics.js. Ici, de petits changements ont de grands effets, alors lancez les tests après chacun.
  6. Règles : les variantes maison vont dans rules.js. Testez les fautes et la bille en main à la main, en plus de la suite de tests.

La méthode est la même pour tout : modifiez le fichier dans source/, copiez-le au même chemin dans game/, servez le dossier en HTTP et rechargez. Le guide de l'acheteur conseille de changer une fonctionnalité à la fois et de tester le menu, une partie, la pause, l'écran de résultat et un rechargement après chaque modification.

L'héberger, l'intégrer ou l'empaqueter en app

L'hébergement est la partie la plus simple. Envoyez tout le contenu de game/ dans un dossier comme public_html/velvet-pool/, gardez les sous-dossiers et ouvrez l'adresse. Côté serveur, ni npm, ni terminal, ni PHP, ni base de données, ni compte. Une offre qui sert des fichiers statiques en HTTPS suffit.

  • N'ouvrez pas index.html d'un double-clic : les navigateurs bloquent les modules du jeu sur file://. Pour un test local, lancez python -m http.server 8765 dans game/.
  • Si l'écran reste vide, vérifiez que WebGL2 est activé et que les noms de fichiers ont gardé leurs majuscules et minuscules.
  • Si le navigateur refuse un module, votre serveur envoie les .js avec le mauvais type MIME.
  • Dans une iframe sur un portail, autorisez le plein écran et la lecture automatique.

Tout ce dont le jeu a besoin à l'exécution se trouve dans game/, rien n'est donc chargé depuis un CDN ou un autre site. Un nouveau chargement de page passe tout de même par votre hébergement : ce n'est pas une app hors ligne installable. Le jeu fonctionne en revanche sur écran tactile : les joueurs visent sur la table et tirent la commande de puissance.

Les projets d'app native ne font pas partie du pack. Si vous voulez le jeu sur Google Play ou l'App Store, un wrapper comme Capacitor, que ses créateurs décrivent comme un runtime natif multiplateforme pour créer des apps mobiles avec du code web, est une voie courante. Construire et maintenir le projet pour les stores vous revient, ou fait l'objet d'un devis séparé de notre part.

Ce que l'édition laisse de côté

Velvet Pool est l'édition locale pour navigateur. Elle n'a ni multijoueur en ligne ni salons privés, ni classement en ligne, ni comptes cloud, ni SDK publicitaire. Deux personnes peuvent jouer sur un même appareil, et les scores personnels des parties éligibles contre l'IA sont enregistrés dans le navigateur. L'entraînement et les parties sur un même appareil n'enregistrent pas de score.

Le jeu en ligne demande votre propre serveur et du développement. C'est un vrai projet : budgétez-le dès le départ plutôt que d'attendre que le template y mène tout seul. Si votre catalogue a besoin d'autres jeux de sport, ces deux-là sont aussi vendus en éditions navigateur prêtes à héberger.

Puttide : minigolf 3D à 30 trous, lui aussi en JavaScript pur

Golazo : football de table avec 50 équipes nationales

Licence et prix en un paragraphe

Velvet Pool est affiché à 39 US$. Jusqu'au 30 novembre 2026, une promotion Black Friday retire 15 % sur chaque template, soit 33,15 US$, et les commandes de deux templates ou plus bénéficient d'une remise supplémentaire de 5 % à 20 %. Chaque achat est une licence perpétuelle et non exclusive pour un produit final, le vôtre ou celui d'un client. Vous pouvez modifier le code, les graphismes et l'audio de ce produit et y apposer votre marque. Les joueurs peuvent y accéder gratuitement ou via la publicité. Vous ne pouvez pas revendre le template ou son code seuls. Six mois de support sont inclus, ou 12 avec l'extension au paiement ; le travail sur mesure, l'hébergement et l'intégration de SDK ou de portails font l'objet de devis séparés.

Lire les conditions complètes de licence et de support

Questions fréquentes

Le code source du jeu de billard est-il lisible ou minifié ?

Lisible. Le JavaScript de source/src et game/src est simple et formaté, sans fichiers minifiés ni empaquetés.

Ai-je besoin de Node.js ou d'une étape de build ?

Non. Vous modifiez les fichiers dans source/ et les copiez dans game/. Node.js 20 ou plus récent n'est nécessaire que pour lancer les tests optionnels.

Puis-je rendre l'IA plus facile ou plus difficile ?

Oui. Le choix des coups de l'IA se trouve dans src/core/ai.js, séparé de la physique, donc vous pouvez le régler sans changer le mouvement des billes.

Le jeu fonctionne-t-il sur téléphone ?

Oui. Le tactile est pris en charge et les commandes s'adaptent à l'écran. WebGL2 est requis et les performances dépendent de l'appareil : testez les téléphones qu'utilisent vos joueurs.

Les joueurs gardent-ils leur progression si je déplace le jeu sur un nouveau domaine ?

Non. Les sauvegardes appartiennent à l'origine du navigateur : changer de domaine fait repartir les joueurs de zéro. Choisissez l'adresse définitive avant le lancement.

Puis-je ajouter un multijoueur en ligne ?

Pas avec cette édition seule. Il faut votre propre serveur et du développement. Nous pouvons le chiffrer en travail sur mesure.

À qui s'adresse ce code de billard

Il convient à un portail ou un site qui veut un jeu de 8-ball dans son catalogue, à une agence qui livre un billard à la marque d'un client, et à un développeur qui veut lire comment s'écrivent la physique et les règles du billard sans bibliothèque 3D au milieu. Il convient moins si votre projet repose sur des parties en ligne ou un classement partagé.

Avant d'acheter, jouez la démo sur un téléphone et sur un ordinateur portable, et ouvrez la carte des fichiers du manuel. Si la séparation entre physique, règles et IA correspond à votre façon de travailler, le reste tient en quelques après-midi de modifications.

Essayer la démo de Velvet Pool et acheter la licence

Besoin de modifications ou de plusieurs licences ? Demandez un devis