Перейти к содержимому

Snapchat Web Lenses: как превратить HTML5-игру в игру для Snapchat с помощью PlayCanvas

abe ·

Snapchat теперь запускает веб-игры в формате Web Lenses, а PlayCanvas — движок, который рекомендует Snap. Правила, ограничения, API и пошаговый путь от веб-сборки до опубликованной линзы.

Обложка Snapchat Web Lenses: четыре вертикальные веб-игры на телефонах и надпись Snapchat + PlayCanvas, Веб-игра в Snap

Snapchat Web Lenses позволяют взять обычную HTML5-игру, упаковать сборку в zip и опубликовать её внутри Snapchat как линзу (Lens). Игры — первый сценарий использования, функция находится в бете, и хотя подойдёт любой веб-фреймворк, Snap рекомендует PlayCanvas и использует его во всей документации. Открывать Lens Studio при этом не нужно вообще.

PlayCanvas объявил о поддержке 23.10.2026 — сразу вместе с четырьмя первыми играми, которые уже доступны. В этом руководстве разберём, что такое Web Lens, какие жёсткие ограничения должна соблюдать сборка, что даёт Web Lens API, и пройдём практический путь из пяти шагов: от веб-сборки до игры, которую игроки находят по названию или Snapcode.

Snapchat Web Lenses в двух словах

Что это Веб-приложение, упакованное в zip и опубликованное как линза Snapchat
Платформы Snapchat для iOS и Android
Экран Полноэкранный портретный режим 9:16 (альбомный не поддерживается)
Движок Любой веб-фреймворк; Snap рекомендует PlayCanvas
Размер пакета Zip до 8 MB, index.html до 1 MB в корне архива
Среда выполнения Поддерживаются WebAssembly (в том числе многопоточный), Web Workers и eval()
Песочница Нет доступа к сети, камере, микрофону и датчикам движения
Функции Snapchat Таблицы лидеров, Bitmoji и хранилище через Web Lens API
Статус Бета; детали могут меняться

Первые игры на PlayCanvas в формате Snapchat Web Lenses: Bloom, Ball Smasher, Snake Showdown и Bitmoji Ski на вертикальных экранах телефонов, изображение: PlayCanvas и авторы игр

Почему это важно для разработчиков веб-игр

По данным отчёта Snap за второй квартал 2026 года, Snapchat ежемесячно пользуются 971 миллион человек, а игровые линзы Game Lenses, по словам Snap, охватывают более 175 миллионов человек в месяц. Web Lenses открывают эту аудиторию веб-разработчикам без страницы в магазине приложений и без установки: игрок запускает игру так же, как пробует любую другую линзу.

Первые цифры от разработчиков показывают, на что можно рассчитывать:

Игра Студия Жанр Что сообщил разработчик
Bloom NOWWA Уютная садовая головоломка В среднем около 260 секунд за сессию, почти 30% возвращаются на следующий день
Ball Smasher MetaM Уличный баскетбольный шутер Прототип за несколько часов, миллионы запусков за несколько дней
Snake Showdown Elanra Studios Битва змеек 7 миллионов запусков от 1,8 миллиона игроков за первые четыре недели
Bitmoji Ski Snap Лыжная аркада Сделана за один день, 6 миллионов показов в день

Что касается монетизации, программа Lens+ Payouts позволяет подходящим авторам (от 18 лет, в поддерживаемых странах) сделать линзу эксклюзивной для подписчиков Lens+ и Platinum и получать долю дохода в зависимости от вовлечённости. Кроме того, Snap приглашает разработчиков присылать идеи оригинальных игр для Web Lenses, чтобы получить финансирование на разработку; в приоритете игры с социальной механикой вроде таблиц лидеров.

Правила, которым должна соответствовать сборка

Большинство отклонённых загрузок — следствие нескольких типичных ошибок упаковки, поэтому разберитесь с ними до того, как напишете хоть строчку игрового кода.

Схема публикации Web Lens: веб-код, zip не больше 8 MB, загрузка, проверка и экран телефона 9:16

  1. Только портретный режим. Линзы работают на весь экран в формате 9:16. С самого начала проектируйте камеру, HUD и кнопки под одну руку.
  2. Zip не больше 8 MB. Ограничение касается сжатого загружаемого архива. Считайте это потолком, а не целью: чем меньше zip, тем быстрее загрузка, а время до начала игры важнее всего.
  3. index.html в корне, не больше 1 MB. Упаковывайте содержимое папки сборки, а не саму папку. Пусть index.html будет тонкой точкой входа: не встраивайте в него весь бандл или большие data: URL.
  4. Только относительные пути. Пишите ./a/game.js, а не /a/game.js — и в HTML, и в вызовах fetch() во время работы. В Vite задайте base: './'.
  5. Прямые слеши внутри zip. В Windows команда PowerShell Compress-Archive записывает обратные слеши и ломает пути. Используйте пункт Проводника «Сжатая ZIP-папка», zip -r или Node-скрипт с пакетом archiver, а затем проверьте результат через unzip -l.

Правильная и неправильная структура zip для Web Lens: index.html в корне архива против index.html внутри папки dist

Песочница: чего Web Lens не умеет

Web Lens полностью автономна. Она не может выходить в сеть, пользоваться камерой и микрофоном или читать датчики движения, а localStorage и IndexedDB очищаются при каждом запуске. На практике это значит:

  • Все скрипты, модели, текстуры, шрифты и звуки должны лежать внутри zip.
  • Никакой аналитики, удалённой конфигурации и онлайн-бэкенда для мультиплеера.
  • Прогресс нужно сохранять через функцию Storage в Web Lens API.

Схема песочницы Web Lens: сеть, камера, микрофон и датчики движения заблокированы, а таблицы лидеров, Bitmoji и хранилище доступны

Web Lens API: таблицы лидеров, Bitmoji и хранилище

API от Snap (npm-пакет @snap/web-lens-api) связывает вашу игру со Snapchat. Вызовите init() один раз при старте и проверяйте isSupported() перед использованием каждой функции. Вне Snapchat — на компьютере или локальном dev-сервере — API отвечает встроенной заглушкой с тестовыми данными, так что разрабатывать можно без телефона. Главное, чтобы игра оставалась играбельной, если какой-то функции нет.

Функция Что делает Что важно знать
Leaderboards (таблицы лидеров) Отправляет счёт и открывает фирменную панель рейтинга Snapchat Счёт — только целое число; для забегов на время используйте сортировку по возрастанию; друзья могут получить уведомление, когда их рекорд побит
Bitmoji Загружает Bitmoji игрока как 3D-модель GLB со скелетом или как 2D-изображение по плечи URL истекает примерно через пять минут; Bitmoji приходят без анимаций; всегда добавляйте в сборку персонажа по умолчанию
Storage (хранилище) Небольшое хранилище «ключ — значение», привязанное к аккаунту игрока Каждое значение — JSON до 32 KiB, всего 100 KiB на линзу на игрока; сохраняйте при изменении прогресса и когда страница скрывается

Хорошая таблица лидеров награждает то, что игрокам хочется улучшать, — точность, скорость или выживание — и делает новую попытку доступной в один тап. Сохранению прогресса стоит уделить столько же внимания: решите, что должно пережить сессию (лучший счёт, открытый уровень), а что можно спокойно сбрасывать.

От веб-сборки до опубликованной линзы за 5 шагов

  1. Выберите рабочий процесс. Либо PlayCanvas Engine в обычном JavaScript-проекте (идеально для работы с ИИ-ассистентом для кода), созданном командой npm create playcanvas@latest my-lens -- --starter web-lens, либо браузерный PlayCanvas Editor, который подключается к ИИ-ассистентам через свой Editor MCP Server. Стартовый шаблон уже настраивает портретную раскладку, безопасную зону, относительные пути, упаковку и Web Lens API.
  2. Добавьте PlayCanvas Skills (по желанию). Команда npx skills add playcanvas/skills учит совместимых ИИ-агентов для кода настраивать в PlayCanvas сцены, анимацию, HUD и эффекты.
  3. Собирайте под телефон. Держите HUD внутри env(safe-area-inset-*), потому что Snapchat рисует свою кнопку закрытия у верхнего края; масштабируйте движение по прошедшему времени (многие телефоны работают на 120 Hz); запускайте звук только после жеста пользователя и ставьте игру на паузу, когда линза скрыта. Импортируйте классы движка по имени, чтобы бандлер мог выбросить неиспользуемый код, сжимайте текстуры и не включайте source maps.
  4. Интегрируйте API. Отправляйте счёт в конце игры, загружайте Bitmoji, если он нужен, и сохраняйте прогресс через Storage.
  5. Упакуйте, загрузите и отправьте на проверку. В проекте на стартовом шаблоне npm run package собирает zip и проверяет его по правилам Snap. Затем войдите в My Lenses, создайте Web Lens, загрузите zip и добавьте название, иконку PNG 512 × 512 и 5-секундное превью-видео 720 × 1280. После проверки игроки смогут найти игру по названию или Snapcode.

Не хотите писать код совсем? Easy Lens, ИИ-конструктор линз от Snap, теперь умеет создавать игры Web Lens на PlayCanvas по текстовому запросу; он доступен подписчикам Lens+ в веб-версии Easy Lens.

Какие игры лучше всего подходят для Web Lens?

Подходит Не подходит
Аркады, головоломки и игры на рекорд под один палец Игры в альбомной ориентации или под клавиатуру и мышь
Короткие сессии с мгновенным перезапуском Длинные сессии, зависящие от сервера
Небольшие сжатые ассеты Загрузка тяжёлых ассетов во время игры
Соревнование через таблицы лидеров Онлайн-мультиплеер в реальном времени

Начните с небольшого проекта, где путь от запуска до игры короткий. Проверьте сенсорное управление, края экрана, звук, паузу и перезапуск на реальном телефоне (npx vite preview --host позволяет открыть сборку в браузере телефона) и записывайте каждое изменение под платформу, чтобы будущие обновления их не затёрли.

Официальные подробности — в документации Web Lenses от Snap, в требованиях платформы и в анонсе PlayCanvas.

Частые вопросы

Что такое Snapchat Web Lens?

Web Lens — это веб-приложение, которое работает внутри Snapchat как линза. Вы делаете его на веб-технологиях, упаковываете сборку в zip и загружаете через My Lenses без Lens Studio.

Обязательно ли использовать PlayCanvas?

Нет. Подойдёт любой веб-фреймворк, но Snap рекомендует PlayCanvas, и в его документации используется PlayCanvas вместе с Vite.

Какого размера может быть игра Web Lens?

Сжатый zip — до 8 MB, а index.html в его корне — до 1 MB. Это ограничения беты, поэтому перед загрузкой проверьте актуальные требования.

Может ли Web Lens пользоваться интернетом или мультиплеерными серверами?

Нет. Web Lens не может выходить в сеть, поэтому все ассеты должны быть упакованы в сборку, а онлайн-бэкенды для мультиплеера не подходят. Таблицы лидеров работают через Web Lens API.

Как сохранять прогресс игрока?

Используйте функцию Storage в Web Lens API. Обычное хранилище браузера при каждом открытии линзы пустое.

Можно ли заработать на игре Web Lens?

Подходящие авторы могут участвовать в Lens+ Payouts — программе, которая делится доходом с линз, эксклюзивных для подписчиков Lens+ и Platinum. Кроме того, Snap принимает заявки на финансирование игр.

Похожие статьи

Обзоры игр

Petal Ward: бесплатная браузерная игра про защиту от ёкаев и 8 советов, как продержаться все 8 волн

Petal Ward — бесплатная игра про защиту от ёкаев, которая запускается в любом браузере на телефоне или компьютере. Рассказываем, как она устроена, как работает…

Читать далее
Загрузка игры…

VENOGAME / PLAYBOOK

Моя арена

На этом устройстве. Без регистрации.

Нажмите сердечко и соберите свою коллекцию.