Opas

Biljardipelin lähdekoodi: 8-pallo HTML5-paketin sisällä

Fysiikka, säännöt, tietokonevastustaja ja tallennukset erillisissä tiedostoissa: mitä Velvet Pool -lähdekoodi sisältää ja mitä ostaja muuttaa ensin.

Velvet Poolin kuvitus: tanko valkoisen pallon takana vihreällä pöydällä, pallot 3, 8 ja 4 nurkkataskun lähellä.

Biljardipelin lähdekoodi kannattaa ostaa, kun kolme asiaa on erillisissä, luettavissa tiedostoissa: pallojen fysiikka, 8-pallon säännöt ja tietokonevastustaja. Jos ne ovat sekaisin, jokainen pöydän värin tai tietokoneen vaikeustason muutos muuttuu virheenjäljitystehtäväksi. Velvet Pool, meidän 8-pallopohjamme, pitää ne erillään, ja tämä opas käy paketin läpi tiedosto kerrallaan.

Käymme läpi, miten koodi on järjestetty, mitä ostaja yleensä muuttaa ensin, miten pelin voi isännöidä tai paketoida sovellukseksi, mitä lisenssi sallii ja mitä versio jättää pois. Jokainen tiedostonimi alla tulee pelin mukana tulevasta ostajan oppaasta.

Lyhyesti: Velvet Pool on puhdasta JavaScriptiä WebGL2:lla, ilman 3D-kirjastoa ja ilman käännösvaihetta. Muokkaat tiedostoa, kopioit sen game-kansioon ja lataat sivun uudelleen.

Mitä tämä biljardipelin lähdekoodi sisältää

Velvet Pool on valmis 8-pallopeli, ei moottori eikä aloituspohja. Lataus sisältää neljä kansiota: game/ on valmis ladattava käännös, source/ on sama peli kehittäjäversiona README-tiedostolla, package.json:lla ja testeillä, documentation/ sisältää kuvitetun oppaan englanniksi ja portugaliksi, ja THIRD-PARTY-LICENSES/ säilyttää fonttien lisenssitekstit.

Itse peli pelaa 8-palloa rikkeineen, pallo kädessä (ball-in-hand) -säännöllä ja täysien ja raidallisten pallojen valinnalla. Tietokoneen vaikeustasoja on kolme: Easy (helppo), Medium (keskitaso) ja Hard (vaikea). Mukana on ilmainen harjoituspöytä kumoamisella, pallon asettelulla ja uudelleenrakentamisella sekä kaksinpeli samalla laitteella. Pelaajat lisäävät valkoiselle pallolle seurannan, vedon tai sivupyörityksen, ja paikalliset saavutukset avaavat viisi pöydän väriä ja viisi tangon tyyliä. Käyttöliittymä on 14 kielellä.

  • Pino: vanilla JavaScript, ES-moduulit ja WebGL2. Ei Three.js:ää eikä muuta koodikirjastoa.
  • Koodi: selkeää, muotoiltua JavaScriptiä kansioissa source/src ja game/src. Mitään ei ole pienennetty tai koottu yhteen.
  • Testit: valinnaiset, Node.js 20:lla tai uudemmalla. Ne tarkistavat fysiikan, 8-pallon säännöt, tietokonepelit ja käännösavaimet.
  • Versio kirjoitushetkellä: 1.1.0, päivitetty 22. lokakuuta 2026.

Katso Velvet Poolin listaus, demo ja käsikirja

Miten tiedostot on järjestetty

game/ ja source/ käyttävät samaa rakennetta, joten polku toisessa kansiossa osoittaa samaan tiedostoon toisessa. Tärkein jako biljardipelissä on src/core/ (simulaatio ja säännöt) ja src/game/ (kaikki, mihin pelaaja koskee).

  • src/core/physics.js: pallosimulaatio, pyöritys ja laidan vastaus.
  • src/core/rules.js: 8-pallon säännöt ja rikkeiden päätökset.
  • src/core/ai.js: miten tietokone valitsee lyöntinsä.
  • src/game/controls.js: tähtäys, voima ja pyörityksen syöttö.
  • src/game/progress.js: saavutukset, pöydän värit, tangot ja ottelupisteet.
  • src/game/i18n.js: tekstit 14 kielellä, luettelo LANGS-muuttujassa.
  • src/game/localRecords.js: paikallinen pistehistoria.
  • src/game/audio.js: efektit ja musiikin toisto.
  • css/style.css ja css/fonts.css: teema, responsiivinen asettelu ja fonttimäärittelyt.
  • assets/: kuvitus, ääni ja fontit, logotiedostot kansiossa assets/logo/.

Koska fysiikka, säännöt ja tietokone ovat erillisiä moduuleja, voit tehdä tietokoneesta anteliaamman koskematta pallojen liikkeeseen, tai muuttaa rikkeen sääntöä koskematta laitojen säätöön. Tuo erottelu on tärkein asia, jota kannattaa etsiä mistä tahansa ostamastasi biljardikoodista.

Mitä ostaja muuttaa ensin

Useimmat projektit etenevät samassa järjestyksessä. Aloita siitä, mitä pelaajat näkevät, siirry siihen, mitä he tuntevat, ja jätä säännöt viimeiseksi, koska ne ovat helpoin paikka tuoda virhe.

  1. Brändäys: korvaa logotiedostot kansiossa assets/logo/ ja säädä vastaavat koot CSS:ssä. White label on sallittu, joten oma nimesi tai asiakkaasi nimi voi korvata meidän nimemme.
  2. Pöydän ulkoasu: värit ja fontit ovat tiedostossa css/style.css. Pöydän ja tangon määritykset ovat tiedostossa progress.js. Pidä niiden tunnukset vakaina, tai pelaajat menettävät jo avaamansa kosmetiikan.
  3. Tekstit ja kielet: jokainen merkkijono on tiedostossa i18n.js. Muokkaa tarvitsemaasi sanamuotoa; kielten luettelo on LANGS-muuttujassa.
  4. Tietokoneen vaikeus: laukauksen valinta on tiedostossa ai.js. Säädä yhtä tasoa kerrallaan ja pelaa koko ottelu sitä vastaan.
  5. Fysiikka: kitka, pyöritys ja laidan vastaus ovat tiedostossa physics.js. Pienet muutokset vaikuttavat paljon, joten aja testit jokaisen muutoksen jälkeen.
  6. Säännöt: kotisäännöt kuuluvat tiedostoon rules.js. Testaa rikkeet ja pallo kädessä käsin sekä testisarjalla.

Työnkulku on sama kaikissa: muokkaa tiedostoa kansiossa source/, kopioi se game/-kansion samaan polkuun, tarjoa kansio HTTP:n yli ja lataa sivu uudelleen. Ostajan opas ehdottaa, että muutetaan kerralla yhtä ominaisuutta ja testataan valikko, ottelu, tauko, tulosnäkymä ja uudelleenlataus jokaisen muutoksen jälkeen.

Isännöinti, upottaminen tai paketointi sovellukseksi

Isännöinti on yksinkertaisin osa. Lataa kaikki game/-kansion sisältö kansioon, kuten public_html/velvet-pool/, säilytä alikansiot ja avaa osoite. Palvelimella ei tarvita npm:ää, päätettä, PHP:tä, tietokantaa tai tiliä. Riittää staattisia tiedostoja HTTPS:llä tarjoava palvelu.

  • Älä avaa index.html:ää kaksoisnapsauttamalla: selaimet estävät pelimoduulit file://-osoitteella. Paikallista testiä varten aja python -m http.server 8765 kansiossa game/.
  • Jos ruutu jää tyhjäksi, tarkista, että WebGL2 on käytössä ja että tiedostonimien isot ja pienet kirjaimet ovat oikein.
  • Jos selain hylkää moduulin, palvelimesi lähettää .js-tiedoston väärällä MIME-tyypillä.
  • Portaalin iframe-kehyksessä salli koko näyttö ja automaattinen toisto.

Kaikki pelin ajonaikaisesti tarvitsema on game/-kansion sisällä, joten mitään ei ladata CDN:stä tai toiselta sivustolta. Jokainen uusi sivulataus osuu silti palvelimellesi, joten kyse ei ole asennettavasta offline-sovelluksesta. Peli toimii kosketusnäytöillä: pelaajat tähtäävät pöydällä ja vetävät voimasäätimestä.

Natiivit sovellusprojektit eivät kuulu pakettiin. Jos haluat pelin Google Playhyn tai App Storeen, yleinen reitti on Capacitor, jonka tekijät kuvaavat monialustaiseksi natiiviajoympäristöksi mobiilisovellusten tekemiseen verkkokoodilla. Sovelluksen rakentaminen ja ylläpito on sinun työtäsi tai palvelu, jonka hinnoittelemme erikseen.

Mitä tämä versio jättää pois

Velvet Pool on paikallinen selainversio. Siinä ei ole verkkomoninpeliä eikä yksityisiä huoneita, verkkotulostauluja, pilvitilejä eikä mainos-SDK:ta. Kaksi ihmistä voi pelata yhdellä laitteella, ja kelvollisten tietokonepelien henkilökohtaiset tulokset tallentuvat selaimeen. Harjoitus- ja samalla laitteella pelatut ottelut eivät tallenna pistettä.

Verkkopeli vaatii oman palvelimen ja kehitystyötä. Se on oikea projekti, joten varaa siihen budjetti alusta alkaen sen sijaan, että odottaisit pohjan kasvavan siksi. Jos katalogiisi tarvitaan lisää urheilupelejä, nämä kaksi myydään myös valmiina selainversioina.

Puttide: 3D-minigolf, 30 reikää, myös tavallisella JavaScriptillä

Golazo: pöytäjalkapallo, 50 maajoukkuetta

Lisenssi ja hinta yhdessä kappaleessa

Velvet Poolin listahinta on 39 dollaria. Black Friday -tarjous antaa 15 % alennuksen kaikista pelipohjista 30. marraskuuta 2026 asti, joten se maksaa 33,15 dollaria. Kahden tai useamman pelipohjan tilauksessa saa lisäksi 5–20 % alennuksen. Jokainen osto on ikuinen, ei-yksinomainen lisenssi yhteen lopputuotteeseen, omaasi tai yhden asiakkaasi. Saat muuttaa koodia, kuvitusta ja ääntä kyseisessä tuotteessa ja laittaa siihen oman brändisi. Pelaajat voivat käyttää peliä ilmaiseksi tai mainosten kautta. Et saa myydä pohjaa tai sen koodia erikseen. Kuuden kuukauden tuki sisältyy, tai 12 kuukautta kassalla valittavalla laajennuksella. Mukautettu työ, isännöinti sekä SDK- tai portaaliintegraatio hinnoitellaan erikseen.

Lue koko lisenssi- ja tukiehdot

Usein kysytyt kysymykset

Onko biljardipelin lähdekoodi luettavaa vai pienennettyä?

Luettavaa. JavaScript kansioissa source/src ja game/src on selkeää ja muotoiltua, eikä tiedostoja ole pienennetty tai koottu yhteen.

Tarvitsenko Node.js:n tai käännösvaiheen?

Et. Muokkaat tiedostoja kansiossa source/ ja kopioit ne kansioon game/. Node.js 20 tai uudempi tarvitaan vain, jos haluat ajaa valinnaiset testit.

Voinko tehdä tietokoneesta helpomman tai vaikeamman?

Kyllä. Tietokoneen laukausvalinta on tiedostossa src/core/ai.js, erillään fysiikasta, joten voit säätää sitä muuttamatta pallojen liikettä.

Toimiiko se puhelimilla?

Kyllä. Kosketusohjaus on tuettu ja ohjaimet mukautuvat näyttöön. WebGL2 vaaditaan, ja suorituskyky riippuu laitteesta, joten testaa pelaajiesi puhelimet.

Säilyvätkö pelaajien edistyminen, jos siirrän pelin uuteen domainiin?

Eivät. Tallennukset kuuluvat selaimen alkuperään, joten domainin vaihto aloittaa pelaajat alusta. Valitse lopullinen osoite ennen julkaisua.

Voinko lisätä verkkomoninpelin?

Ei pelkällä tällä versiolla. Se vaatii oman palvelimen ja kehitystyötä. Voimme tarjota sen mukautettuna työnä.

Kenelle tämä biljardikoodi sopii

Se sopii portaalille tai sivustolle, joka haluaa 8-pallopelin katalogiinsa, toimistolle, joka toimittaa brändätyn biljardipelin yhdelle asiakkaalle, ja kehittäjälle, joka haluaa lukea, miten pallofysiikka ja säännöt on kirjoitettu ilman 3D-kirjastoa. Se sopii huonommin, jos suunnitelmasi nojaa verkkootteluihin tai yhteiseen tulostauluun.

Kokeile demo puhelimella ja kannettavalla ennen ostamista, ja avaa käsikirjan tiedostokartta. Jos jako fysiikan, sääntöjen ja tietokoneen välillä vastaa tapaasi työskennellä, loput on muutaman päivän muokkausta.

Kokeile Velvet Poolin demoa ja osta lisenssi

Tarvitsetko muutoksia tai useita lisenssejä? Pyydä tarjous