Все работы
0
рантайм-зависимостей
10
игровых механик
1 билд
телефон и десктоп
Активный кликер под Яндекс.Игры: комбо, криты, престиж, оффлайн-доход. Ноль рантайм-зависимостей, один билд на телефон и десктоп.
Что требовалось
Нужен был каркас, с которого можно быстро собирать кликеры под площадку: чтобы SDK, сейвы, реклама и покупки были решены один раз, а от игры к игре менялись только баланс и ассеты.
Что я сделал
- Десять механик: комбо до x3, криты, "фруктовое безумие" x10, золотые сферы, генераторы пассивного дохода, престиж, оффлайн-доход, ачивки, персонажи и скины
- Прослойка Platform: игра не дёргает Яндекс напрямую - SDK подхватывается, если есть на странице, иначе всё работает в голом браузере
- Облачные сейвы с локальной копией и разбором конфликта по свежести - прогресс не пропадает у анонима и при обрыве сети
- Rewarded-ролики, межстраничная реклама и покупки с ценами из каталога площадки, а не зашитыми в код
- Русский и английский; ключ перевода - сама русская строка, поэтому забытый перевод видно на экране, а не по пустому идентификатору
- Пайплайн ассетов: графика в WebP, звук в Opus/AAC через sharp и ffmpeg
- Один билд на мобилку и десктоп - переключение чисто на CSS, точка перелома 900px
Что получилось
Весь баланс живёт в одном src/balance.ts, чисел больше нигде нет. В сборке ноль сторонних рантайм-зависимостей: TypeScript и Vite нужны только на этапе сборки.