Руководство

Исходный код игры в пул: что внутри HTML5-пакета Velvet Pool

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

Арт Velvet Pool: кий выстроен за белым шаром на зелёном столе, рядом с угловой лузой шары 3, 8 и 4.

Исходный код игры в пул стоит покупать, если три вещи лежат в отдельных читаемых файлах: физика шаров, правила восьмёрки и компьютерный соперник. Если они переплетены, каждая правка цвета сукна или сложности 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 вынесены в отдельные модули, можно сделать компьютер мягче, не трогая движение шаров, или поменять правило фола, не перенастраивая борта. Такое разделение — главное, что стоит искать в любом бильярдном коде, который вы покупаете.

Что покупатель меняет первым

Большинство проектов идут в одном порядке. Сначала то, что видят игроки, затем то, что они чувствуют, а правила оставляют напоследок: в правилах легче всего внести ошибку.

  1. Брендинг: замените логотипы в assets/logo/ и поправьте соответствующие размеры в CSS. Белая марка разрешена, поэтому ваше название или название клиента может заменить наше.
  2. Внешний вид стола: цвета и шрифты находятся в css/style.css. Определения сукна и киев — в progress.js. Не меняйте их ID, иначе игроки потеряют косметику, которую уже открыли.
  3. Тексты и языки: каждая строка находится в i18n.js. Правьте нужные формулировки; список языков — в LANGS.
  4. Сложность CPU: выбор удара находится в ai.js. Настраивайте по одному уровню за раз и сыграйте полный матч против него.
  5. Физика: трение, спин и отскок от бортов — в physics.js. Небольшие изменения здесь дают большой эффект, поэтому после каждого запускайте тесты.
  6. Правила: домашние варианты относятся к 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 совпадает с тем, как вы планируете работать, остальное — несколько рабочих дней правок.

Попробуйте демо Velvet Pool и купите лицензию

Нужны правки или несколько лицензий? Запросите расчёт