Izvorni kod igre bilijara: 8-ball HTML5 paket iznutra
Fizika, pravila i CPU u zasebnim datotekama: što sadrži izvorni kod Velvet Poola i što kupac prvo mijenja.

Izvorni kod igre bilijara isplati se kupiti kada su tri stvari u zasebnim, čitljivim datotekama: fizika kugli, pravila 8-balla i računalni protivnik. Ako su spojeni, svaka promjena boje sukna ili težine CPU-a postaje sesija traženja grešaka. Velvet Pool, naš predložak za 8-ball, drži ih odvojene, a ovaj vodič prolazi kroz paket datoteku po datoteku.
Pokrivamo kako je kod organiziran, što kupac obično mijenja prvo, kako ga postaviti ili zamotati u aplikaciju, što licenca dopušta i što izdanje ne uključuje. Svako ime datoteke u nastavku dolazi iz vodiča za kupca koji ide uz igru.
Ukratko: Velvet Pool je čisti JavaScript na WebGL2, bez 3D biblioteke i bez koraka gradnje. Uredite datoteku, kopirajte je u mapu igre i ponovno učitajte stranicu.
Što sadrži ovaj izvorni kod igre bilijara
Velvet Pool je gotova igra 8-ball, a ne motor ni početni kostur. Preuzimanje ima četiri mape: game/ je gotova verzija za prijenos, source/ je ista igra kao razvojno izdanje s README-om, package.json i testovima, documentation/ sadrži ilustrirani vodič na engleskom i portugalskom, a THIRD-PARTY-LICENSES/ čuva tekstove licenci za fontove.
Sama igra igra 8-ball s faulovima, slobodnom loptom i punim ili prugastim kuglama. Postoje tri CPU razine: Easy (lako), Medium (srednje) i Hard (teško), besplatan stol za vježbu s poništavanjem, postavljanjem kugli i ponovnim slaganjem te mečevi za dva igrača na jednom uređaju. Igrači dodaju gornji, donji ili bočni spin bijeloj kugli, a lokalna postignuća otključavaju pet boja sukna i pet stilova štapa. Sučelje dolazi na 14 jezika.
- Tehnologija: vanilla JavaScript, ES moduli i WebGL2. Bez Three.js-a ili druge biblioteke koda.
- Kod: čitljiv, formatiran JavaScript u source/src i game/src. Ništa nije minificirano ni spakirano.
- Testovi: neobavezni, uz Node.js 20 ili noviji. Provjeravaju fiziku, pravila 8-balla, CPU mečeve i ključeve prijevoda.
- Verzija u vrijeme pisanja: 1.1.0, ažurirana 22. listopada 2026.
Pogledajte stranicu Velvet Pool, demo i priručnik
Kako su datoteke organizirane
game/ i source/ imaju isti raspored, pa put u jednoj mapi pokazuje na istu datoteku u drugoj. Podjela koja je za igru bilijara najvažnija je ona između src/core/ (simulacija i pravila) i src/game/ (sve što igrač dodiruje).
- src/core/physics.js: simulacija kugli, spin i odbijanje od bande.
- src/core/rules.js: pravila 8-balla i odluke o faulu.
- src/core/ai.js: kako CPU bira udarac.
- src/game/controls.js: unos za nišanjenje, snagu i spin.
- src/game/progress.js: postignuća, sukna, štapovi i bodovanje mečeva.
- src/game/i18n.js: tekstovi na 14 jezika, navedeni u LANGS.
- src/game/localRecords.js: lokalna povijest rezultata.
- src/game/audio.js: reprodukcija efekata i glazbe.
- css/style.css i css/fonts.css: tema, responzivni raspored i deklaracije fontova.
- assets/: grafika, zvuk i fontovi, s datotekama logotipa u assets/logo/.
Budući da su fizika, pravila i CPU zasebni moduli, možete učiniti CPU blažim bez diranja načina na koji se kugle kreću ili promijeniti pravilo o faulu bez ponovnog podešavanja bandi. Ta odvojenost je glavna stvar koju treba tražiti u svakom kodu za bilijar koji kupujete.
Što kupac prvo mijenja
Većina projekata slijedi isti redoslijed. Počnite s onim što igrači vide, zatim prijeđite na ono što osjećaju, a pravila ostavite za kraj, jer su pravila najlakše mjesto za uvođenje greške.
- Brend: zamijenite datoteke logotipa u assets/logo/ i prilagodite odgovarajuće veličine u CSS-u. Bijela oznaka je dopuštena, pa vaše ime ili ime vašeg klijenta može zamijeniti naše.
- Izgled stola: boje i fontovi nalaze se u css/style.css. Definicije sukna i štapova nalaze se u progress.js. Držite njihove ID-ove stabilnima, inače igrači gube kozmetiku koju su već otključali.
- Tekstovi i jezici: svaki niz nalazi se u i18n.js. Uredite tekst koji treba; popis jezika je u LANGS.
- Težina CPU-a: odabir udarca nalazi se u ai.js. Podešavajte jednu razinu u jednom trenutku i odigrajte cijeli meč protiv nje.
- Fizika: trenje, spin i odbijanje od bande nalaze se u physics.js. Male promjene daju velik učinak, pa nakon svake pokrenite testove.
- Pravila: kućne varijante pripadaju u rules.js. Testirajte faulove i slobodnu loptu ručno, a ne samo pomoću skupa testova.
Tijek je isti za sve: uredite datoteku u source/, kopirajte je na istu putanju u game/, poslužite mapu preko HTTP-a i ponovno učitajte. Vodič za kupca predlaže promjenu jedne značajke u jednom trenutku te testiranje izbornika, meča, pauze, zaslona s rezultatom i ponovnog učitavanja nakon svake promjene.
Postavljanje, ugradnja ili pakiranje u aplikaciju
Postavljanje je najjednostavniji dio. Prenesite sve iz game/ u mapu, poput public_html/velvet-pool/, zadržite podmape i otvorite adresu. Na poslužiteljskoj strani nisu potrebni npm, terminal, PHP, baza podataka ni račun. Dovoljan je plan koji poslužuje statične datoteke preko HTTPS-a.
- Nemojte otvarati index.html dvostrukim klikom: preglednici blokiraju module igre na file://. Za lokalni test pokrenite python -m http.server 8765 unutar game/.
- Ako ekran ostane prazan, provjerite je li WebGL2 uključen i zadržavaju li nazivi datoteka velika i mala slova.
- Ako preglednik odbija modul, vaš poslužitelj šalje .js s pogrešnim MIME tipom.
- Unutar iframea na portalu omogućite cijeli zaslon i automatsku reprodukciju.
Sve što igra treba tijekom rada nalazi se unutar game/, pa se ništa ne učitava s CDN-a ili druge stranice. Svako ponovno učitavanje ipak ide na vaš poslužitelj, pa to nije aplikacija za offline instalaciju. Radi na ekranima osjetljivima na dodir: igrači nišane na stolu i povlače kontrolu snage.
Projekti nativnih aplikacija nisu dio paketa. Ako želite igru na Google Playu ili App Storeu, jedan uobičajeni put je omotač poput Capacitora, koji njegovi autori opisuju kao višeplatformsko nativno okruženje za izradu mobilnih aplikacija pomoću web koda. Izrada i održavanje projekta za trgovinu vaš je posao ili usluga koju nudimo zasebno.
Što ovo izdanje ne uključuje
Velvet Pool je lokalno izdanje za preglednik. Nema online višeigračkog načina ni privatnih soba, nema online ljestvice, nema računa u oblaku i nema oglašivačkog SDK-a. Dvije osobe mogu igrati na jednom uređaju, a osobni rezultati iz prikladnih CPU mečeva spremaju se u pregledniku. Vježba i mečevi na istom uređaju ne spremaju rezultat.
Online igra zahtijeva vlastiti poslužitelj i razvoj. To je pravi projekt, pa ga planirajte od početka, a ne očekujte da će predložak narasti u njega. Ako vaš katalog treba više sportskih igara, ove dvije također se prodaju kao gotova izdanja za preglednik spremna za hosting.
Puttide: 3D mini golf s 30 rupa, također u čistom JavaScriptu
Golazo: stolni nogomet s 50 nacionalnih reprezentacija
Licenca i cijena u jednom odlomku
Velvet Pool košta 39 USD po cjeniku. Do 30. studenoga 2026. Black Friday promocija daje 15% popusta na svaki predložak, pa košta 33,15 USD, a narudžbe od dva ili više predložaka dobivaju dodatnih 5% do 20% popusta. Svaka kupnja je trajna, nekskluzivna licenca za jedan krajnji proizvod, vaš ili jednog klijenta. Smijete mijenjati kod, grafiku i zvuk unutar tog proizvoda i staviti vlastiti brend na njega. Igrači mu mogu pristupiti besplatno ili uz oglase. Ne smijete preprodavati predložak ni njegov kod zasebno. Uključeno je šest mjeseci podrške, ili 12 uz proširenje pri plaćanju; prilagođeni rad, hosting i integracija SDK-a ili portala nude se zasebno.
Pročitajte cijelu licencu i uvjete podrške
Često postavljana pitanja
Je li izvorni kod igre bilijara čitljiv ili minificiran?
Čitljiv. JavaScript u source/src i game/src je običan i formatiran, bez minificiranih ili spakiranih datoteka.
Trebam li Node.js ili korak gradnje?
Ne. Uređujete datoteke u source/ i kopirate ih u game/. Node.js 20 ili noviji potreban je samo ako želite pokrenuti neobavezne testove.
Mogu li CPU učiniti lakšim ili težim?
Da. Odabir udarca CPU-a nalazi se u src/core/ai.js, odvojeno od fizike, pa ga možete podešavati bez promjene kretanja kugli.
Radi li na telefonima?
Da. Podržan je unos dodirom, a kontrole se prilagođavaju ekranu. Potreban je WebGL2, a performanse ovise o uređaju, pa testirajte telefone koje koriste vaši igrači.
Hoće li igrači zadržati napredak ako igru premjestim na novu domenu?
Ne. Spremljeni podaci pripadaju izvoru preglednika, pa promjena domene svim igračima kreće ispočetka. Odaberite konačnu adresu prije lansiranja.
Mogu li dodati online višeigrački način?
Ne samo s ovim izdanjem. Potreban je vlastiti poslužitelj i razvoj. Možemo to ponuditi kao prilagođeni rad.
Za koga je ovaj kod za bilijar
Odgovara portalu ili stranici koja želi igru 8-ball u katalogu, agenciji koja isporučuje brendiranu igru bilijara jednom klijentu i programeru koji želi pročitati kako se pišu fizika i pravila bilijara bez 3D biblioteke na putu. Slabije odgovara ako vaš plan ovisi o online mečevima ili zajedničkoj ljestvici.
Prije kupnje isprobajte demo na telefonu i na laptopu te otvorite kartu datoteka iz priručnika. Ako podjela na fiziku, pravila i CPU odgovara načinu na koji planirate raditi, ostatak je nekoliko radnih popodneva promjena.
