Исходный код игры в пул: что внутри HTML5-пакета Velvet Pool
Физика, правила и компьютерный соперник в отдельных файлах: что есть в исходниках Velvet Pool и что покупатель меняет первым делом.

Исходный код игры в пул стоит покупать, если три вещи лежат в отдельных читаемых файлах: физика шаров, правила восьмёрки и компьютерный соперник. Если они переплетены, каждая правка цвета сукна или сложности CPU превращается в отладку. Velvet Pool, наш шаблон восьмёрки, разводит их по разным файлам, и это руководство проходит по его пакету файл за файлом.
Мы расскажем, как организован код, что покупатель обычно меняет первым, как разместить игру или обернуть её в приложение, что разрешает лицензия и чего нет в издании. Все имена файлов ниже взяты из руководства покупателя, которое идёт вместе с игрой.
Коротко: Velvet Pool написан на простом JavaScript поверх WebGL2, без 3D-библиотеки и без этапа сборки. Вы правите файл, копируете его в папку игры и перезагружаете страницу.
Что входит в исходный код игры в пул
Velvet Pool — готовая игра в восьмёрку, а не движок и не стартовый набор. В загрузке четыре папки: game/ — готовая к загрузке сборка, source/ — та же игра как издание для разработчика с README, package.json и тестами, documentation/ — иллюстрированное руководство на английском и португальском, а THIRD-PARTY-LICENSES/ хранит тексты лицензий на шрифты.
Сама игра ведётся по правилам восьмёрки: фолы, шар в руке, сплошные или полосатые шары. Есть три уровня CPU (лёгкий, средний и сложный), бесплатный стол для тренировки с отменой хода, расстановкой шаров и новой раскладкой, а также матчи на двоих на одном устройстве. Игроки добавляют белому шару подкрутку вперёд, назад или боковой спин, а локальные достижения открывают пять расцветок сукна и пять стилей кия. Интерфейс доступен на 14 языках.
- Стек: чистый JavaScript, ES-модули и WebGL2. Three.js и других библиотек нет.
- Код: простой отформатированный JavaScript в source/src и game/src. Ничего не минифицировано и не собрано в бандл.
- Тесты: необязательные, нужен Node.js 20 или новее. Они проверяют физику, правила восьмёрки, матчи CPU и ключи переводов.
- Версия на момент написания: 1.1.0, обновлена 22 октября 2026 года.
Посмотреть страницу Velvet Pool, демо и руководство
Как организованы файлы
game/ и source/ имеют одинаковую структуру, поэтому путь в одной папке указывает на тот же файл в другой. Самое важное разделение для игры в пул — между src/core/ (симуляция и правила) и src/game/ (всё, с чем взаимодействует игрок).
- src/core/physics.js: симуляция шаров, спин и отскок от бортов.
- src/core/rules.js: правила восьмёрки и решения о фолах.
- src/core/ai.js: как CPU выбирает удар.
- src/game/controls.js: ввод прицела, силы и спина.
- src/game/progress.js: достижения, сукна, кии и подсчёт матчей.
- src/game/i18n.js: тексты на 14 языках, перечисленные в LANGS.
- src/game/localRecords.js: локальная история результатов.
- src/game/audio.js: воспроизведение эффектов и музыки.
- css/style.css и css/fonts.css: тема, адаптивная раскладка и объявления шрифтов.
- assets/: графика, аудио и шрифты; файлы логотипов — в assets/logo/.
Поскольку физика, правила и CPU вынесены в отдельные модули, можно сделать компьютер мягче, не трогая движение шаров, или поменять правило фола, не перенастраивая борта. Такое разделение — главное, что стоит искать в любом бильярдном коде, который вы покупаете.
Что покупатель меняет первым
Большинство проектов идут в одном порядке. Сначала то, что видят игроки, затем то, что они чувствуют, а правила оставляют напоследок: в правилах легче всего внести ошибку.
- Брендинг: замените логотипы в assets/logo/ и поправьте соответствующие размеры в CSS. Белая марка разрешена, поэтому ваше название или название клиента может заменить наше.
- Внешний вид стола: цвета и шрифты находятся в css/style.css. Определения сукна и киев — в progress.js. Не меняйте их ID, иначе игроки потеряют косметику, которую уже открыли.
- Тексты и языки: каждая строка находится в i18n.js. Правьте нужные формулировки; список языков — в LANGS.
- Сложность CPU: выбор удара находится в ai.js. Настраивайте по одному уровню за раз и сыграйте полный матч против него.
- Физика: трение, спин и отскок от бортов — в physics.js. Небольшие изменения здесь дают большой эффект, поэтому после каждого запускайте тесты.
- Правила: домашние варианты относятся к rules.js. Фолы и шар в руке проверяйте вручную, а не только набором тестов.
Порядок работы одинаков для всех пунктов: правите файл в source/, копируете его по тому же пути в game/, открываете папку через HTTP и перезагружаете страницу. Руководство покупателя советует менять одну функцию за раз и после каждой правки проверять меню, матч, паузу, экран результата и перезагрузку страницы.
Размещение, встраивание или обёртка в приложение
Хостинг — самая простая часть. Загрузите всё содержимое game/ в папку, например public_html/velvet-pool/, сохраните вложенные папки и откройте адрес. На стороне сервера не нужны npm, терминал, PHP, база данных или аккаунт. Достаточно хостинга, который отдаёт статические файлы по HTTPS.
- Не открывайте index.html двойным кликом: браузеры блокируют модули игры на file://. Для локальной проверки запустите python -m http.server 8765 внутри game/.
- Если экран пустой, проверьте, что WebGL2 включён и что регистр букв в именах файлов сохранён.
- Если браузер отказывается загружать модуль, ваш сервер отдаёт .js с неправильным MIME-типом.
- Во встроенном iframe на портале разрешите полноэкранный режим и автовоспроизведение.
Всё, что нужно игре во время работы, находится внутри game/, поэтому ничего не загружается с CDN или другого сайта. Тем не менее при каждой новой загрузке страницы игра обращается к вашему хостингу, так что это не приложение для офлайн-установки. Игра работает на сенсорных экранах: игроки целятся на столе и тянут регулятор силы.
Нативные проекты приложений в пакет не входят. Если вы хотите игру в Google Play или App Store, один из распространённых путей — обёртка вроде Capacitor, которую её создатели описывают как кроссплатформенную нативную среду для мобильных приложений на веб-коде. Создание и поддержка проекта для магазина — ваша работа или услуга, которую мы оцениваем отдельно.
Чего не включает это издание
Velvet Pool — локальное браузерное издание. В нём нет онлайн-мультиплеера и приватных комнат, онлайн-рейтинга, облачных аккаунтов и рекламного SDK. Двое могут играть на одном устройстве, а личные результаты в подходящих матчах с CPU сохраняются в браузере. Тренировки и матчи на одном устройстве счёт не сохраняют.
Онлайн-игра требует собственного сервера и разработки. Это настоящий проект, поэтому закладывайте бюджет с самого начала, а не ждите, что шаблон сам в него вырастет. Если каталогу нужны ещё спортивные игры, эти две тоже продаются как готовые браузерные издания.
Puttide: мини-гольф в 3D с 30 лунками, тоже на простом JavaScript
Golazo: настольный футбол с 50 национальными сборными
Лицензия и цена в одном абзаце
Velvet Pool стоит $39. До 30 ноября 2026 года акция «Чёрная пятница» даёт скидку 15% на каждый шаблон, поэтому он стоит $33,15, а заказ из двух и более шаблонов получает дополнительную скидку от 5% до 20%. Каждая покупка — бессрочная неэксклюзивная лицензия на один конечный продукт, ваш или клиента. Внутри продукта можно менять код, графику и аудио и ставить свой бренд. Игроки могут играть бесплатно или с рекламой. Перепродавать сам шаблон или его код отдельно нельзя. Шесть месяцев поддержки входят в стоимость, или 12, если при оплате выбрано продление; индивидуальная работа, хостинг и интеграция с SDK или порталом оцениваются отдельно.
Прочитать полные условия лицензии и поддержки
Часто задаваемые вопросы
Исходный код игры в пул читаемый или минифицированный?
Читаемый. JavaScript в source/src и game/src простой и отформатированный, без минифицированных или собранных в бандл файлов.
Нужны ли Node.js или этап сборки?
Нет. Вы правите файлы в source/ и копируете их в game/. Node.js 20 или новее нужен только если хотите запускать необязательные тесты.
Можно ли сделать CPU легче или сложнее?
Да. Выбор удара у CPU находится в src/core/ai.js, отдельно от физики, поэтому его можно настраивать, не меняя движение шаров.
Работает ли игра на телефонах?
Да. Поддерживается сенсорный ввод, управление подстраивается под экран. Нужен WebGL2, а производительность зависит от устройства, поэтому проверьте телефоны, которыми пользуются ваши игроки.
Сохранят ли игроки прогресс, если я перееду на новый домен?
Нет. Сохранения привязаны к источнику браузера, поэтому смена домена начнёт игру у игроков с нуля. Выберите финальный адрес до запуска.
Можно ли добавить онлайн-мультиплеер?
Не с одним только этим изданием. Нужны собственный сервер и разработка. Мы можем оценить это как индивидуальную работу.
Кому подходит этот код игры в пул
Он подходит порталу или сайту, которые хотят видеть игру в восьмёрку в каталоге; агентству, которое делает брендированный бильярд для одного клиента; и разработчику, который хочет прочитать, как написаны физика бильярда и правила, без 3D-библиотеки на пути. Хуже подойдёт, если ваш план опирается на онлайн-матчи или общую таблицу лидеров.
Перед покупкой сыграйте в демо на телефоне и ноутбуке и откройте карту файлов в руководстве. Если разделение на физику, правила и CPU совпадает с тем, как вы планируете работать, остальное — несколько рабочих дней правок.
