Codul sursă al jocului de biliard: ce conține un pachet 8-ball HTML5
Fizica, regulile și CPU-ul în fișiere separate: ce conține sursa Velvet Pool și ce schimbă primul un cumpărător.

Codul sursă pentru un joc de biliard merită cumpărat când trei lucruri trăiesc în fișiere separate și lizibile: fizica bilelor, regulile 8-ball și adversarul calculator. Dacă sunt încurcate între ele, fiecare schimbare a culorii postavului sau a dificultății CPU-ului devine o sesiune de depanare. Velvet Pool, șablonul nostru 8-ball, le ține separate, iar ghidul acesta parcurge pachetul fișier cu fișier.
Acoperim cum este organizat codul, ce schimbă de obicei un cumpărător primul, cum îl găzduiești sau îl împachetezi ca aplicație, ce permite licența și ce lasă în afară ediția. Fiecare nume de fișier de mai jos vine din ghidul pentru cumpărător care însoțește jocul.
Versiunea scurtă: Velvet Pool este JavaScript simplu pe WebGL2, fără bibliotecă 3D și fără pas de build. Editezi un fișier, îl copiezi în dosarul jocului și reîncarci pagina.
Ce conține codul sursă al jocului de biliard
Velvet Pool este un joc 8-ball finalizat, nu un motor sau un kit de start. Descărcarea are patru dosare: game/ este build-ul gata de încărcat, source/ este același joc ca ediție pentru dezvoltatori, cu un README, un package.json și teste, documentation/ conține ghidul ilustrat în engleză și portugheză, iar THIRD-PARTY-LICENSES/ păstrează textele licențelor fonturilor.
Jocul în sine se joacă 8-ball cu faulturi, bilă în mână și plină sau cu dungi. Există trei niveluri de CPU (Easy (ușor), Medium (mediu) și Hard (greu)), o masă de exersare gratuită cu anulare, plasarea bilelor și regruparea, precum și meciuri pentru doi jucători pe același dispozitiv. Jucătorii adaugă efect de sus, de jos sau lateral bilei albe, iar realizările locale deblochează cinci culori de postav și cinci stiluri de tac. Interfața vine în 14 limbi.
- Stiva: JavaScript simplu, module ES și WebGL2. Fără Three.js sau altă bibliotecă de cod.
- Cod: JavaScript simplu, formatat, în source/src și game/src. Nimic nu este minificat sau împachetat.
- Teste: opționale, cu Node.js 20 sau mai nou. Verifică fizica, regulile 8-ball, meciurile CPU și cheile de traducere.
- Versiunea la data scrierii: 1.1.0, actualizată pe 22 octombrie 2026.
Vezi pagina Velvet Pool, demo-ul și manualul
Cum sunt organizate fișierele
game/ și source/ au aceeași structură, deci o cale dintr-un dosar duce la același fișier din celălalt. Separarea cea mai importantă pentru un joc de biliard este între src/core/ (simulare și reguli) și src/game/ (tot ce atinge jucătorul).
- src/core/physics.js: simularea bilelor, efectul și răspunsul la bandă.
- src/core/rules.js: regulile 8-ball și deciziile la faulturi.
- src/core/ai.js: modul în care CPU-ul alege lovitura.
- src/game/controls.js: intrarea pentru ținta, puterea și efectul.
- src/game/progress.js: realizările, posturile, tacurile și scorul meciului.
- src/game/i18n.js: textele în 14 limbi, enumerate în LANGS.
- src/game/localRecords.js: istoricul scorurilor locale.
- src/game/audio.js: redarea efectelor și a muzicii.
- css/style.css și css/fonts.css: tema, aspectul responsiv și declarațiile fonturilor.
- assets/: grafica, audio și fonturile, cu fișierele logo în assets/logo/.
Pentru că fizica, regulile și CPU-ul sunt module separate, poți face CPU-ul mai indulgent fără să atingi felul în care se mișcă bilele, sau poți schimba o regulă de fault fără să reglezi din nou benzile. Această separare este lucrul principal de căutat în orice cod de biliard pe care îl cumperi.
Ce schimbă primul un cumpărător
Majoritatea proiectelor urmează aceeași ordine. Începe cu ce vede jucătorul, apoi trece la ce simte, iar regulile le lași la final, pentru că regulile sunt cel mai ușor loc în care apare o eroare.
- Brandingul: înlocuiește fișierele logo din assets/logo/ și ajustează dimensiunile corespunzătoare din CSS. Marca albă este permisă, deci numele tău sau al clientului tău îl poate înlocui pe al nostru.
- Aspectul mesei: culorile și fonturile se află în css/style.css. Definițiile posturilor și ale tacurilor se află în progress.js. Păstrează stabili ID-urile, altfel jucătorii pierd cosmeticele deja deblocate.
- Texte și limbi: fiecare șir se află în i18n.js. Editează formularea de care ai nevoie; lista limbilor este în LANGS.
- Dificultatea CPU-ului: alegerea loviturii este în ai.js. Reglează câte un nivel o dată și joacă un meci complet împotriva lui.
- Fizica: frecarea, efectul și răspunsul la bandă sunt în physics.js. Schimbările mici au efect mare aici, deci rulează testele după fiecare.
- Reguli: variantele casei aparțin rules.js. Testează faulturile și bila în mână manual, nu doar cu suita de teste.
Fluxul de lucru este același pentru toate: editezi fișierul din source/, îl copiezi pe aceeași cale în game/, servești dosarul prin HTTP și reîncarci. Ghidul pentru cumpărător recomandă să schimbi câte o funcție o dată și să testezi meniul, un meci, pauza, ecranul de rezultat și o reîncărcare după fiecare schimbare.
Găzduire, integrare sau împachetare ca aplicație
Găzduirea este partea cea mai simplă. Încarci tot ce se află în game/ într-un dosar precum public_html/velvet-pool/, păstrezi subdosarele și deschizi adresa. Nu există npm, terminal, PHP, bază de date sau cont pe partea de server. Un plan care servește fișiere statice prin HTTPS este suficient.
- Nu deschide index.html dând dublu click: browserele blochează modulele jocului pe file://. Pentru un test local, rulează python -m http.server 8765 în dosarul game/.
- Dacă ecranul rămâne gol, verifică dacă WebGL2 este activat și dacă numele fișierelor păstrează majusculele și minusculele.
- Dacă browserul refuză un modul, serverul tău trimite fișierele .js cu un tip MIME greșit.
- Într-un iframe pe un portal, permite ecran complet și redarea automată.
Tot ce are nevoie jocul la rulare se află în game/, deci nimic nu se încarcă dintr-un CDN sau de pe alt site. O încărcare nouă a paginii ajunge tot la gazda ta, deci nu este o aplicație offline instalabilă. Rulează însă pe ecrane tactile: jucătorii țintesc pe masă și trag de comanda de putere.
Proiectele de aplicație nativă nu fac parte din pachet. Dacă vrei jocul pe Google Play sau pe App Store, un wrapper precum Capacitor, pe care creatorii săi îl descriu ca pe un runtime nativ cross-platform pentru aplicații mobile scrise cu cod web, este o cale frecventă. Construirea și întreținerea proiectului pentru magazin este munca ta sau un serviciu pe care îl cotăm separat.
Ce lasă în afară această ediție
Velvet Pool este ediția locală pentru browser. Nu are multiplayer online sau camere private, nu are clasament online, conturi în cloud sau SDK de publicitate. Două persoane pot juca pe același dispozitiv, iar scorurile personale din meciurile CPU eligibile se salvează în browser. Exersarea și meciurile pe același dispozitiv nu salvează un scor.
Jocul online cere propriul server și dezvoltare. Este un proiect real, deci include-l în buget de la început, în loc să aștepți ca șablonul să crească până acolo. Dacă catalogul tău are nevoie de mai multe jocuri sportive, și aceste două sunt vândute ca ediții de browser gata de găzduit.
Puttide: mini golf 3D cu 30 de găuri, tot în JavaScript simplu
Golazo: fotbal de masă cu 50 de echipe naționale
Licență și preț, într-un singur paragraf
Velvet Pool are prețul de listă de 39 USD. Până pe 30 noiembrie 2026 o promoție Black Friday scade cu 15% fiecare șablon, deci costă 33,15 USD, iar comenzile cu două sau mai multe șabloane primesc în plus între 5% și 20% reducere. Fiecare achiziție este o licență perpetuă, neexclusivă, pentru un produs final, al tău sau al unui singur client. Poți modifica codul, grafica și audio din produsul respectiv și îl poți pune cu brandul tău. Jucătorii îl pot accesa gratuit sau prin reclame. Nu poți revinde șablonul sau codul lui separat. Șase luni de suport sunt incluse, sau 12 cu extensia de la finalizarea comenzii; lucrările personalizate, găzduirea și integrarea SDK-ului sau a portalului se cotează separat.
Citește termenii complet ai licenței și suportului
Întrebări frecvente
Codul sursă al jocului de biliard este lizibil sau minificat?
Este lizibil. JavaScript-ul din source/src și game/src este simplu și formatat, fără fișiere minificate sau împachetate.
Am nevoie de Node.js sau de un pas de build?
Nu. Editezi fișierele din source/ și le copiezi în game/. Node.js 20 sau mai nou este necesar doar dacă vrei să rulezi testele opționale.
Pot face CPU-ul mai ușor sau mai greu?
Da. Alegerea loviturii CPU-ului se află în src/core/ai.js, separată de fizică, deci o poți regla fără să schimbi felul în care se mișcă bilele.
Funcționează pe telefoane?
Da. Intrarea tactilă este suportată, iar comenzile se adaptează la ecran. WebGL2 este necesar, iar performanța depinde de dispozitiv, așa că testează pe telefoanele pe care le folosesc jucătorii tăi.
Își păstrează jucătorii progresul dacă mut jocul pe alt domeniu?
Nu. Salvările aparțin originii browserului, deci schimbarea domeniului îi face pe jucători să înceapă de la zero. Alege adresa finală înainte de lansare.
Pot adăuga multiplayer online?
Nu doar cu ediția aceasta. Are nevoie de propriul server și de dezvoltare. Îl putem cota ca lucrare personalizată.
Pentru cine este potrivit acest cod de biliard
Se potrivește unui portal sau unui site care vrea un joc 8-ball în catalog, unei agenții care livrează un joc de biliard cu brand unui singur client și unui dezvoltator care vrea să citească cum sunt scrise fizica și regulile unui joc de biliard, fără o bibliotecă 3D în cale. Se potrivește mai slab dacă planul tău depinde de meciuri online sau de un clasament comun.
Joacă demo-ul pe telefon și pe laptop înainte să cumperi și deschide harta fișierelor din manual. Dacă împărțirea între fizică, reguli și CPU se potrivește felului în care vrei să lucrezi, restul sunt câteva după-amiezi de modificări.
Încearcă demo-ul Velvet Pool și cumpără licența
Ai nevoie de modificări sau de mai multe licențe? Cere o ofertă
