Kod źródłowy gry bilardowej: w środku pakietu 8-ball HTML5
Fizyka, zasady, CPU i zapisy w osobnych plikach: co zawiera kod Velvet Pool i co kupujący zmienia jako pierwsze.

Kod źródłowy gry bilardowej warto kupić, gdy trzy rzeczy leżą w osobnych, czytelnych plikach: fizyka kul, zasady gry w 8-ball i przeciwnik sterowany przez komputer. Jeśli są splątane, każda zmiana koloru sukna albo trudności CPU zamienia się w sesję szukania błędów. Velvet Pool, nasz szablon 8-ball, trzyma je osobno, a ten przewodnik przechodzi przez pakiet plik po pliku.
Omawiamy, jak zorganizowany jest kod, co kupujący zwykle zmienia najpierw, jak go hostować albo opakować w aplikację, co pozwala licencja i czego edycja nie zawiera. Każda nazwa pliku poniżej pochodzi z przewodnika dla kupującego, który dołączony jest do gry.
W skrócie: Velvet Pool to zwykły JavaScript na WebGL2, bez biblioteki 3D i bez kroku budowania. Edytujesz plik, kopiujesz go do folderu gry i przeładowujesz stronę.
Co zawiera kod źródłowy gry bilardowej
Velvet Pool to gotowa gra 8-ball, a nie silnik ani zestaw startowy. Pobranie ma cztery foldery: game/ to gotowa do wgrania wersja, source/ to ta sama gra jako edycja dla programistów z README, package.json i testami, documentation/ zawiera ilustrowany przewodnik po angielsku i portugalsku, a THIRD-PARTY-LICENSES/ przechowuje teksty licencji czcionek.
Sama gra to 8-ball z faulami, bilą w ręce oraz pełnymi lub połówkami. Są trzy poziomy CPU (Easy, Medium i Hard), stół do swobodnego treningu z cofaniem, ustawianiem bil i ponownym ułożeniem trójkąta oraz mecze dwuosobowe na jednym urządzeniu. Gracze nadają bili białej rotację: follow, draw lub side spin, a lokalne osiągnięcia dają pięć kolorów sukna i pięć stylów kija. Interfejs występuje w 14 językach.
- Stos: czysty JavaScript, moduły ES i WebGL2. Bez Three.js ani innej biblioteki kodu.
- Kod: prosty, sformatowany JavaScript w source/src i game/src. Nic nie jest zminifikowane ani spakowane.
- Testy: opcjonalne, wymagają Node.js 20 lub nowszego. Sprawdzają fizykę, zasady 8-ball, mecze z CPU i klucze tłumaczeń.
- Wersja w chwili pisania: 1.1.0, zaktualizowana 22 października 2026.
Zobacz stronę Velvet Pool, demo i podręcznik
Jak zorganizowane są pliki
game/ i source/ mają ten sam układ, więc ścieżka w jednym folderze wskazuje ten sam plik w drugim. Podział najważniejszy dla gry bilardowej przebiega między src/core/ (symulacja i zasady) a src/game/ (wszystko, czego dotyka gracz).
- src/core/physics.js: symulacja kul, spin i odbicia od band.
- src/core/rules.js: zasady 8-ball i decyzje o faulach.
- src/core/ai.js: sposób, w jaki CPU wybiera uderzenie.
- src/game/controls.js: celowanie, siła i sterowanie spinem.
- src/game/progress.js: osiągnięcia, sukna, kije i punktacja meczów.
- src/game/i18n.js: teksty w 14 językach, wymienione w LANGS.
- src/game/localRecords.js: lokalna historia wyników.
- src/game/audio.js: odtwarzanie efektów i muzyki.
- css/style.css i css/fonts.css: motyw, układ dla różnych ekranów i deklaracje czcionek.
- assets/: grafika, audio i czcionki, z plikami logo w assets/logo/.
Ponieważ fizyka, zasady i CPU są osobnymi modułami, możesz uczynić CPU łagodniejszym bez ruszania sposobu, w jaki kule się toczą, albo zmienić regułę faulu bez ponownego strojenia band. To rozdzielenie jest główną rzeczą, której warto szukać w każdym kodzie bilardowym, który kupujesz.
Co kupujący zmienia najpierw
Większość projektów idzie w tej samej kolejności. Zacznij od tego, co widzą gracze, potem przejdź do tego, co czują, a zasady zostaw na koniec, bo to tam najłatwiej wprowadzić błąd.
- Branding: podmień pliki logo w assets/logo/ i dopasuj odpowiednie rozmiary w CSS. White label jest dozwolona, więc Twoja nazwa albo nazwa klienta może zastąpić naszą.
- Wygląd stołu: kolory i czcionki są w css/style.css. Definicje sukna i kijów są w progress.js. Zachowaj ich identyfikatory stałe, bo inaczej gracze stracą kosmetyki, które już zdobyli.
- Teksty i języki: każdy napis jest w i18n.js. Edytuj potrzebne sformułowania; lista języków jest w LANGS.
- Trudność CPU: wybór uderzenia jest w ai.js. Dostrajaj jeden poziom naraz i rozegraj z nim pełny mecz.
- Fizyka: tarcie, spin i odbicie od band są w physics.js. Małe zmiany robią tu dużą różnicę, więc po każdej uruchom testy.
- Zasady: wariacje domowe należą do rules.js. Sprawdzaj faule i bilę w ręce ręcznie, a nie tylko zestawem testów.
Przepływ pracy jest taki sam we wszystkich przypadkach: edytuj plik w source/, skopiuj go do tej samej ścieżki w game/, udostępnij folder przez HTTP i przeładuj. Przewodnik dla kupującego radzi zmieniać jedną funkcję naraz i po każdej zmianie sprawdzać menu, mecz, pauzę, ekran wyniku i przeładowanie strony.
Hosting, osadzanie i opakowanie w aplikację
Hosting to najprostsza część. Wgraj wszystko z game/ do folderu, na przykład public_html/velvet-pool/, zachowaj podfoldery i otwórz adres. Po stronie serwera nie ma npm, terminala, PHP, bazy danych ani konta. Wystarcza plan, który serwuje pliki statyczne przez HTTPS.
- Nie otwieraj index.html dwukrotnym kliknięciem: przeglądarki blokują moduły gry w file://. Do lokalnego testu uruchom python -m http.server 8765 wewnątrz game/.
- Jeśli ekran zostaje pusty, sprawdź, czy WebGL2 jest włączone i czy wielkość liter w nazwach plików się zgadza.
- Jeśli przeglądarka odrzuca moduł, serwer wysyła pliki .js z błędnym typem MIME.
- W iframe na portalu zezwól na pełny ekran i autoodtwarzanie.
Wszystko, czego gra potrzebuje w trakcie działania, znajduje się w game/, więc nic nie ładuje się z CDN ani z innej strony. Pierwsze wczytanie strony i tak sięga do Twojego hosta, więc to nie jest aplikacja instalowalna działająca offline. Działa na ekranach dotykowych: gracze celują na stole i ciągną regulator siły.
Projekty aplikacji natywnych nie są częścią pakietu. Jeśli chcesz grę na Google Play albo w App Store, jedną z typowych dróg jest opakowanie w Capacitor, które jego twórcy opisują jako wieloplatformowe środowisko natywne do budowania aplikacji mobilnych z kodu webowego. Budowanie i utrzymanie projektu sklepowego to Twoja praca lub usługa wyceniana osobno.
Czego edycja nie obejmuje
Velvet Pool to edycja lokalna, działająca w przeglądarce. Nie ma gry online ani prywatnych pokoi, rankingu online, kont w chmurze ani SDK reklam. Dwie osoby mogą grać na jednym urządzeniu, a osobiste wyniki z kwalifikujących się meczów z CPU zapisują się w przeglądarce. Trening i mecze na jednym urządzeniu nie zapisują wyniku.
Gra online wymaga własnego serwera i pracy programistycznej. To realny projekt, więc zaplanuj go od początku, zamiast liczyć, że szablon sam urośnie. Jeśli Twój katalog potrzebuje więcej gier sportowych, te dwie też są sprzedawane jako gotowe edycje do hostowania w przeglądarce.
Puttide: mini golf 3D z 30 dołkami, również w czystym JavaScript
Golazo: piłkarzyki stołowe z 50 reprezentacjami narodowymi
Licencja i cena w jednym akapicie
Velvet Pool kosztuje w cenie katalogowej 39 USD. Do 30 listopada 2026 promocja Black Friday obniża każdy szablon o 15%, więc gra kosztuje 33,15 USD, a zamówienia dwóch lub więcej szablonów dostają dodatkowo od 5% do 20% zniżki. Każdy zakup to wieczna, niewyłączna licencja na jeden produkt końcowy, Twój albo jednego klienta. Kod, grafikę i dźwięk w ramach tego produktu możesz zmieniać i umieścić na nim własną markę. Gracze mogą grać za darmo albo z reklamami. Nie wolno odsprzedawać samego szablonu ani jego kodu. Wsparcie trwa sześć miesięcy, a 12 miesięcy przy rozszerzeniu wykupionym przy zakupie; prace na zamówienie, hosting i integracje SDK lub portalu wyceniamy osobno.
Przeczytaj pełne warunki licencji i wsparcia
Najczęściej zadawane pytania
Czy kod źródłowy gry bilardowej jest czytelny czy zminifikowany?
Czytelny. JavaScript w source/src i game/src jest prosty i sformatowany, bez plików zminifikowanych ani spakowanych.
Czy potrzebuję Node.js albo kroku budowania?
Nie. Edytujesz pliki w source/ i kopiujesz je do game/. Node.js 20 lub nowszy jest potrzebny tylko wtedy, gdy chcesz uruchomić opcjonalne testy.
Czy mogę ułatwić albo utrudnić grę CPU?
Tak. Wybór uderzeń przez CPU znajduje się w src/core/ai.js, osobno od fizyki, więc możesz go stroić bez zmiany ruchu kul.
Czy działa na telefonach?
Tak. Obsługiwane jest sterowanie dotykowe, a elementy sterowania dopasowują się do ekranu. Wymagany jest WebGL2, a wydajność zależy od urządzenia, więc przetestuj telefony, z których korzystają Twoi gracze.
Czy gracze zachowają postępy, jeśli przeniosę grę na nową domenę?
Nie. Zapisy są przypisane do adresu strony w przeglądarce, więc zmiana domeny zaczyna grę od nowa. Wybierz ostateczny adres przed startem.
Czy mogę dodać grę online dla wielu graczy?
Nie samą tą edycją. Potrzebny jest własny serwer i praca programistyczna. Możemy to wycenić jako pracę na zamówienie.
Dla kogo jest ten kod bilardowy
Pasuje do portalu lub strony, która chce mieć w katalogu grę 8-ball, do agencji dostarczającej markową grę bilardową jednemu klientowi oraz do programisty, który chce przeczytać, jak zapisano fizykę i zasady bilarda bez biblioteki 3D po drodze. Gorzej pasuje, jeśli Twój plan zależy od meczów online albo wspólnej tabeli wyników.
Przed zakupem zagraj w demo na telefonie i na laptopie oraz otwórz mapę plików z podręcznika. Jeśli podział na fizykę, zasady i CPU odpowiada sposobowi, w jaki chcesz pracować, reszta to kilka popołudni zmian.
