Vodič

Izvorna koda pool igre: notranjost paketa Velvet Pool za HTML5

Fizika, pravila, računalniški nasprotnik in shranjevanje v ločenih datotekah: kaj vsebuje izvorna koda Velvet Pool in kaj kupec najprej spremeni.

Ključna slika Velvet Pool: palica poravnana za belo kroglo na zelenem namizju, ob kroglah 3, 8 in 4 blizu kotne luknje.

Izvorna koda pool igre se izplača kupiti, kadar so tri stvari v ločenih, berljivih datotekah: fizika žoge, pravila igre osmica in računalniški nasprotnik. Če so prepletene, se vsaka sprememba barve prta ali težavnosti CPU spremeni v iskanje napak. Velvet Pool, naša predloga za osmico, jih ločuje, ta vodnik pa gre skozi njegov paket datoteko za datoteko.

Pokrijemo, kako je koda organizirana, kaj kupec največkrat spremeni najprej, kako jo gostiti ali zaviti v aplikacijo, kaj dovoljuje licenca in kaj izdaja ne vključuje. Vsako ime datoteke spodaj prihaja iz vodnika za kupca, ki je priložen igri.

Na kratko: Velvet Pool je navaden JavaScript na WebGL2, brez 3D knjižnice in brez koraka gradnje. Datoteko urediš, jo kopiraš v mapo igre in ponovno naložiš stran.

Kaj vsebuje ta izvorna koda pool igre

Velvet Pool je pripravljena igra osmica, ne pogon ali začetni komplet. Prenos ima štiri mape: game/ je pripravljena gradnja za nalaganje, source/ je ista igra kot razvijalna izdaja z README, package.json in testi, documentation/ vsebuje ilustriran vodnik v angleščini in portugalščini, THIRD-PARTY-LICENSES/ pa hrani besedila licenc za pisave.

Igra sama igra osmico s prekrški, žogo v roki (ball-in-hand) ter polnimi ali črtastimi kroglami. Na voljo so tri stopnje CPU, Easy (lahko), Medium (srednje) in Hard (težko), brezplačna vadbena miza Practice (vadba) z undo (razveljavi), postavljanjem krogel in ponovnim postavljanjem ter dvoigralski dvoboji na eni napravi. Igralci dodajajo vrtenje belemu kroglo naprej (follow), nazaj (draw) ali na stran (side spin), lokalni dosežki pa odklenejo pet barv prta in pet stilov palic. Vmesnik je na voljo v 14 jezikih.

  • Sklad: navaden JavaScript, ES moduli in WebGL2. Brez Three.js ali druge kodne knjižnice.
  • Koda: navaden, oblikovan JavaScript v source/src in game/src. Nič ni pomanjšano ali zapakirano v en paket.
  • Testi: izbirni, z Node.js 20 ali novejšim. Preverjajo fiziko, pravila osmice, tekme s CPU in ključe prevodov.
  • Različica ob pisanju: 1.1.0, posodobljena 22. oktobra 2026.

Oglej si izdajo Velvet Pool, demo in priročnik

Kako so datoteke organizirane

game/ in source/ imata isto postavitev, zato pot v eni mapi kaže na isto datoteko v drugi. Delitev, ki je za pool igro najpomembnejša, je med src/core/ (simulacija in pravila) in src/game/ (vse, česar se igralec dotakne).

  • src/core/physics.js: simulacija krogel, vrtenje in odboj od roba.
  • src/core/rules.js: pravila igre osmica in odločitve o prekrških.
  • src/core/ai.js: kako CPU izbere svoj udarec.
  • src/game/controls.js: vnos ciljanja, moči in vrtenja.
  • src/game/progress.js: dosežki, prti, palice in točkovanje tekem.
  • src/game/i18n.js: besedila v 14 jezikih, navedena v LANGS.
  • src/game/localRecords.js: lokalna zgodovina rezultatov.
  • src/game/audio.js: predvajanje učinkov in glasbe.
  • css/style.css in css/fonts.css: tema, odzivna postavitev in deklaracije pisav.
  • assets/: grafika, zvok in pisave, datoteke logotipa so v assets/logo/.

Ker so fizika, pravila in CPU ločeni moduli, lahko CPU naredite prizanesljivejši, ne da bi se dotaknili gibanja krogel, ali spremenite pravilo o prekrških, ne da bi znova uglasili odboje. Ta ločitev je glavna stvar, ki jo iščete v vsaki kodi za bilijard, ki jo kupite.

Kaj kupec najprej spremeni

Večina projektov sledi istemu zaporedju. Začni s tem, kar igralci vidijo, nato preidi na to, kar občutijo, pravila pa pusti za konec, ker so najlažje mesto za nov hrošč.

  1. Blagovna znamka: zamenjaj datoteke logotipa v assets/logo/ in prilagodi ustrezne velikosti v CSS. Beli označevalnik (white label) je dovoljen, zato lahko tvoje ime ali ime tvojega naročnika nadomesti naše.
  2. Videz mize: barve in pisave so v css/style.css. Opredelitve prtov in palic so v progress.js. Ohrani njihove ID-je stabilne, sicer igralci izgubijo kozmetiko, ki so jo že odklenili.
  3. Besedila in jeziki: vsak niz je v i18n.js. Uredi besedilo, ki ga potrebuješ; seznam jezikov je v LANGS.
  4. Težavnost CPU: izbira udarcev je v ai.js. Uglasi eno stopnjo naenkrat in odigraj celo tekmo proti njej.
  5. Fizika: trenje, vrtenje in odboj od roba so v physics.js. Majhne spremembe tu veliko zaležejo, zato po vsaki zaženi teste.
  6. Pravila: domače različice sodijo v rules.js. Prekrške in žogo v roki preizkusi tudi ročno, ne samo s paketom testov.

Postopek je za vse enak: uredi datoteko v source/, kopiraj jo na isto pot v game/, streci mapo prek HTTP in ponovno naloži. Vodnik za kupca predlaga, da spremeniš eno funkcijo naenkrat in po vsaki spremembi preizkusiš meni, tekmo, pavzo, zaslon z rezultatom in ponovno nalaganje.

Gostovanje, vdelava ali zavijanje v aplikacijo

Gostovanje je najpreprostejši del. Naloži vse, kar je v game/, v mapo na primer public_html/velvet-pool/, ohrani podmape in odpri naslov. Na strani strežnika ni npm, terminala, PHP, baze podatkov ali računa. Za igro zadostuje paket, ki streže statične datoteke prek HTTPS.

  • Index.html ne odpiraj z dvojnim klikom: brskalniki blokirajo module igre na file://. Za lokalni preizkus zaženi python -m http.server 8765 v mapi game/.
  • Če zaslon ostane prazen, preveri, ali je WebGL2 omogočen in ali imena datotek ohranjajo velike in male črke.
  • Če brskalnik zavrne modul, tvoj strežnik pošilja .js z napačnim tipom MIME.
  • Znotraj iframea na portalu dovoli celozaslonski način in samodejno predvajanje.

Vse, kar igra potrebuje med izvajanjem, je v game/, zato se nič ne nalaga iz CDN ali druge strani. Ob vsakem novem nalaganju strani se vseeno povežeš s svojim gostiteljem, zato to ni aplikacija za namestitev brez povezave. Deluje na dotikalnih zaslonih: igralci ciljajo na mizi in povlečejo nadzor moči.

Projekti nativnih aplikacij niso del paketa. Če želiš igro v Google Play ali App Store, je ena pogosta pot ovoj, kot je Capacitor, ki ga njegovi avtorji opisujejo kot navzkrižno platformsko nativno okolje za gradnjo mobilnih aplikacij s spletno kodo. Gradnjo in vzdrževanje projekta za trgovino opraviš sam ali pa je to storitev, ki jo ponudimo posebej.

Kaj ta izdaja izpušča

Velvet Pool je lokalna izdaja za brskalnik. Nima spletnega večigralca ali zasebnih sob, spletne lestvice, oblačnih računov in SDK za oglase. Dva igralca lahko igrata na eni napravi, osebni rezultati iz upravičenih tekem s CPU pa se shranijo v brskalniku. Vadba in tekme na isti napravi ne shranijo rezultata.

Spletna igra zahteva svoj strežnik in razvoj. To je pravi projekt, zato ga vnaprej vključi v proračun in ne pričakuj, da bo predloga zrasla vanj. Če tvoj katalog potrebuje več športnih iger, sta tudi ti dve prodani kot pripravljeni izdaji za gostovanje v brskalniku.

Puttide: 3D mini golf s 30 luknjami, tudi v navadnem JavaScriptu

Golazo: nogomet na mizi s 50 nacionalnimi ekipami

Licenca in cena v enem odstavku

Velvet Pool stane 39 $. Do 30. novembra 2026 velja promocija črni petek, ki odstrani 15 % z vsake predloge, zato stane 33,15 $, naročila dveh ali več predlog pa dobijo še 5 do 20 % popusta. Vsak nakup je trajna, nekskluzivna licenca za en končni izdelek, tvojega ali enega naročnika. Kodo, grafiko in zvok v tem izdelku lahko spremeniš in nanj postaviš svojo blagovno znamko. Igralci jo lahko dosežejo brezplačno ali prek oglasov. Predloge ali njene kode same po sebi ne smeš preprodajati. Šest mesecev podpore je vključenih, z dodatnim podaljšanjem ob blagajni pa 12; delo po meri, gostovanje in integracija SDK ali portala se ponudijo posebej.

Preberi celotne pogoje licence in podpore

Pogosta vprašanja

Ali je izvorna koda pool igre berljiva ali pomanjšana?

Berljiva. JavaScript v source/src in game/src je navaden in oblikovan, brez pomanjšanih ali zapakiranih datotek.

Ali potrebujem Node.js ali korak gradnje?

Ne. Datoteke urejaš v source/ in jih kopiraš v game/. Node.js 20 ali novejši je potreben le, če želiš zagnati izbirne teste.

Ali lahko CPU naredim lažjega ali težjega?

Da. Izbira udarcev za CPU je v src/core/ai.js, ločena od fizike, zato jo lahko uglasiš, ne da bi spremenil gibanje krogel.

Ali deluje na telefonih?

Da. Podprt je dotik in kontrole se prilagodijo zaslonu. Potreben je WebGL2, zmogljivost pa je odvisna od naprave, zato preizkusi na telefonih, ki jih uporabljajo tvoji igralci.

Ali bodo igralci obdržali napredek, če igro premaknem na novo domeno?

Ne. Shranjevanja pripadajo izvoru brskalnika, zato sprememba domene začne igralce od začetka. Pred zagonom izberi končni naslov.

Ali lahko dodam spletni večigralec?

Ne samo s to izdajo. Potrebuje svoj strežnik in razvoj. Lahko ga ponudimo kot delo po meri.

Komu ustreza ta koda za pool

Ustreza portalu ali spletnemu mestu, ki želi igro osmica v svojem katalogu, agenciji, ki enemu naročniku dostavi igro bilijarda z blagovno znamko, in razvijalcu, ki želi prebrati, kako sta napisani fizika in pravila pool igre, brez 3D knjižnice na poti. Manj ustreza, če tvoj načrt temelji na spletnih tekmah ali skupni lestvici.

Preden kupiš, igraj demo na telefonu in prenosniku ter odpri zemljevid datotek v priročniku. Če se delitev med fiziko, pravili in CPU ujema s tem, kako načrtuješ delo, je ostalo nekaj popoldnevov sprememb.

Preizkusi demo Velvet Pool in kupi licenco

Potrebuješ spremembe ali več licenc? Zahtevaj ponudbo