Guide

Kildekode til poolspill: innsiden av en 8-ball HTML5-pakke

Fysikk, regler, CPU og lagring i egne filer: hva Velvet Pool-kildekoden inneholder, og hva en kjøper endrer først.

Velvet Pool-illustrasjon: køen rettet mot den hvite ballen på et grønt bord, med 3-, 8- og 4-ballene nær en hjørnelomme.

Kildekode til poolspill er verdt å kjøpe når tre ting ligger i egne, lesbare filer: ballfysikken, reglene for 8-ball og datamotstanderen. Hvis de henger sammen, blir hver endring av duken eller vanskelighetsgraden til CPU-en en feilsøkingsøkt. Velvet Pool, vår 8-ball-mal, holder dem adskilt, og denne guiden går gjennom pakken fil for fil.

Vi tar for oss hvordan koden er organisert, hva en kjøper vanligvis endrer først, hvordan du hoster eller pakker spillet som en app, hva lisensen tillater, og hva utgaven ikke har med. Filnavnene under kommer fra kjøpsguiden som følger med spillet.

Kort fortalt: Velvet Pool er ren JavaScript på WebGL2, uten 3D-bibliotek og uten byggesteg. Du redigerer en fil, kopierer den til spillmappen og laster siden på nytt.

Hva kildekoden til poolspillet inneholder

Velvet Pool er et ferdig 8-ball-spill, ikke en motor eller en startmal. Nedlastingen har fire mapper: game/ er den klare byggingen for opplasting, source/ er det samme spillet som en utviklerutgave med en README, package.json og tester, documentation/ inneholder den illustrerte veiledningen på engelsk og portugisisk, og THIRD-PARTY-LICENSES/ har lisenstekstene for skriftene.

Selve spillet spiller 8-ball med fouls, ball-in-hand (fri plassering av hvitballen) og heler eller striper. Det finnes tre CPU-nivåer (Easy, Medium og Hard, som er vanskelighetsgrader), et gratis øvingsbord med angre, ballplassering og ny oppstilling, og kamper for to spillere på én enhet. Spillerne legger follow (medløp) eller draw (bakspinn) og sidespinn på hvitballen, og lokale prestasjoner låser opp fem duk-farger og fem kø-stiler. Grensesnittet finnes på 14 språk.

  • Stack: ren JavaScript (vanilla), ES-moduler og WebGL2. Ingen Three.js eller annet kodebibliotek.
  • Kode: vanlig, formatert JavaScript i source/src og game/src. Ingenting er minifisert eller pakket sammen.
  • Tester: valgfrie, med Node.js 20 eller nyere. De sjekker fysikk, 8-ball-regler, CPU-kamper og oversettelsesnøkler.
  • Versjon ved skriving: 1.1.0, oppdatert 22. oktober 2026.

Se Velvet Pool-oppføringen, demoen og manualen

Hvordan filene er organisert

game/ og source/ har samme oppsett, så en sti i den ene mappen peker til samme fil i den andre. Skillet som betyr mest for et poolspill, er mellom src/core/ (simulering og regler) og src/game/ (alt spilleren berører).

  • src/core/physics.js: ballsimulering, spinn og respons fra bandene.
  • src/core/rules.js: 8-ball-regler og fouldommer.
  • src/core/ai.js: hvordan CPU-en velger sitt skudd.
  • src/game/controls.js: sikting, styrke og spinnstyring.
  • src/game/progress.js: prestasjoner, duker, køer og poengberegning i kamper.
  • src/game/i18n.js: teksten på 14 språk, listet i LANGS.
  • src/game/localRecords.js: den lokale poenghistorikken.
  • src/game/audio.js: avspilling av effekter og musikk.
  • css/style.css og css/fonts.css: tema, responsivt oppsett og skriftdeklarasjoner.
  • assets/: grafikk, lyd og skrifttyper, med logofilene i assets/logo/.

Fordi fysikk, regler og CPU er adskilte moduler, kan du gjøre CPU-en mer tilgivende uten å røre hvordan ballene beveger seg, eller endre en foulregel uten å justere bandene på nytt. Den separasjonen er det viktigste du bør se etter i all billardkode du kjøper.

Hva en kjøper endrer først

De fleste prosjekter følger samme rekkefølge. Start med det spillerne ser, gå så videre til det de føler, og la reglene være til slutt, fordi regler er det enkleste stedet å introdusere en feil.

  1. Merkevare: erstatt logofilene i assets/logo/ og juster de tilhørende størrelsene i CSS-en. Hvitmerking er tillatt, så ditt navn eller din kundes kan erstatte vårt.
  2. Utseendet på bordet: farger og skrifttyper ligger i css/style.css. Definisjonene for duk og kø ligger i progress.js. Hold ID-ene stabile, ellers mister spillerne kosmetikken de allerede har låst opp.
  3. Tekster og språk: hver streng ligger i i18n.js. Rediger ordlyden du trenger; listen over språk står i LANGS.
  4. Vanskelighetsgrad for CPU: skuddvalget ligger i ai.js. Juster ett nivå om gangen, og spill en full kamp mot det.
  5. Fysikk: friksjon, spinn og respons fra bandene ligger i physics.js. Små endringer får stor effekt her, så kjør testene etter hver enkelt.
  6. Regler: husvarianter hører hjemme i rules.js. Test fouls og ball-in-hand for hånd, i tillegg til testpakken.

Arbeidsflyten er den samme for alle: rediger filen i source/, kopier den til samme sti i game/, server mappen over HTTP og last siden på nytt. Veiledningen foreslår at du endrer én funksjon om gangen, og tester menyen, en kamp, pause, resultatskjermen og en innlasting på nytt etter hver endring.

Hosting, innbygging eller pakking som app

Hosting er den enkleste delen. Last opp alt inne i game/ til en mappe, for eksempel public_html/velvet-pool/, behold undermappene, og åpne adressen. Det finnes ingen npm, terminal, PHP, database eller konto på serversiden. En plan som serverer statiske filer over HTTPS er nok.

  • Åpne ikke index.html ved å dobbeltklikke: nettlesere blokkerer spillmodulene på file://. For en lokal test kjører du python -m http.server 8765 inne i game/.
  • Hvis skjermen forblir blank, sjekk at WebGL2 er aktivert og at filnavnene har samme store og små bokstaver.
  • Hvis nettleseren avviser en modul, sender serveren .js med feil MIME-type.
  • Inne i en iframe på en portal må du tillate fullskjerm og autoplay.

Alt spillet trenger under kjøring ligger inne i game/, så ingenting lastes fra en CDN eller et annet nettsted. En ny sideinnlasting går likevel til hosten din, så dette er ikke en app som kan installeres for bruk uten nett. Det fungerer på berøringsskjermer: spillerne sikter på bordet og drar i styrkekontrollen.

Native appprosjekter er ikke en del av pakken. Hvis du vil ha spillet på Google Play eller App Store, er et wrapper-verktøy som Capacitor en vanlig vei. Utviklerne beskriver det som en tverrplattform-kjøretid for native mobilapper med webkode. Å bygge og vedlikeholde butikkprosjektet er ditt arbeid, eller en tjeneste vi gir tilbud på separat.

Hva utgaven ikke inkluderer

Velvet Pool er den lokale nettleserutgaven. Den har ingen flerspiller på nett eller private rom, ingen ledertavle på nett, ingen skykontoer og ingen annonse-SDK. To personer kan spille på samme enhet, og personlige poeng fra godkjente CPU-kamper lagres i nettleseren. Øving og kamper på samme enhet lagrer ingen poeng.

Nettspill krever din egen server og utvikling. Det er et reelt prosjekt, så budsjetter for det fra starten i stedet for å forvente at malen vokser inn i det. Hvis katalogen din trenger flere sportsspill, er disse to også solgt som ferdige nettleserutgaver.

Puttide: 3D-minigolf med 30 hull, også i ren JavaScript

Golazo: bordfotball med 50 landslag

Lisens og pris i ett avsnitt

Velvet Pool koster $39. Frem til 30. november 2026 gir en Black Friday-kampanje 15 % rabatt på alle maler, så den koster $33,15, og bestillinger av to eller flere maler får ytterligere 5 % til 20 % rabatt. Hvert kjøp er en evigvarende, ikke-eksklusiv lisens for ett sluttprodukt, ditt eller én kundes. Du kan endre koden, grafikken og lyden i det produktet og sette din egen merkevare på det. Spillerne kan få tilgang gratis eller gjennom annonser. Du kan ikke videreselge malen eller koden alene. Seks måneders støtte er inkludert, eller 12 med tillegget i kassen. Tilpasset arbeid, hosting og integrasjon med SDK eller portal gis tilbud på separat.

Les hele lisens- og støttevilkårene

Vanlige spørsmål

Er kildekoden til poolspillet lesbar, eller er den minifisert?

Lesbar. JavaScript-koden i source/src og game/src er vanlig og formatert, uten minifiserte eller pakkede filer.

Trenger jeg Node.js eller et byggesteg?

Nei. Du redigerer filene i source/ og kopierer dem til game/. Node.js 20 eller nyere trengs bare hvis du vil kjøre de valgfrie testene.

Kan jeg gjøre CPU-en lettere eller vanskeligere?

Ja. Skuddvalget til CPU-en ligger i src/core/ai.js, adskilt fra fysikken, så du kan justere det uten å endre hvordan ballene beveger seg.

Fungerer det på telefoner?

Ja. Berøring støttes, og kontrollene tilpasser seg skjermen. WebGL2 kreves, og ytelsen avhenger av enheten, så test på telefonene spillerne dine bruker.

Beholder spillerne fremdriften hvis jeg flytter spillet til et nytt domene?

Nei. Lagringer hører til nettleserens domene, så et domenebytte starter spillerne på nytt. Velg den endelige adressen før lansering.

Kan jeg legge til flerspiller på nett?

Ikke med denne utgaven alene. Det krever din egen server og utvikling. Vi kan gi tilbud på det som tilpasset arbeid.

Hvem denne poolkoden passer for

Den passer for en portal eller et nettsted som vil ha et 8-ball-spill i katalogen, et byrå som leverer et merkevarespill for billard til én kunde, og en utvikler som vil lese hvordan poolfysikk og regler er skrevet uten et 3D-bibliotek i veien. Den passer dårligere hvis planen din avhenger av nettkamper eller en felles ledertavle.

Spill demoen på en telefon og en bærbar PC før du kjøper, og åpne filkartet i manualen. Hvis skillet mellom fysikk, regler og CPU passer måten du vil jobbe på, er resten noen ettermiddager med endringer.

Prøv Velvet Pool-demoen og kjøp lisensen

Trenger du endringer eller flere lisenser? Be om et tilbud