Использование игровых движков (Unity, Unreal) в аркадных слотах

Аркадные слоты требуют кинематографичности, стабильного FPS и строгой математической честности. Unity и Unreal закрывают визуал, инструменты продакшна и мультиплатформенность, а сервер отвечает за RNG/выплаты. Ниже — каркас решения с конкретикой под мобайл/веб/PC.

1) Базовая архитектура


[Клиент Unity/Unreal]
├─ UI/UX (UGUI/UI Toolkit | UMG)
├─ Анимации (Timeline | Sequencer)
├─ VFX (VFX Graph | Niagara)
├─ Логика сцены/мини-игр (C| C++)
└─ Нетворкинг (WebSocket/HTTP, Protobuf/JSON)
│
TLS + pinning
│
[Игровой бэкенд]
├─ Серверный RNG/математика слота (сертифиц.)
├─ Экономика/баланс/конфиг (Remote Config)
├─ Хранилище прогресса/пассов/коллекций
├─ Антифрод/лимиты/ответственная игра
└─ Аналитика/AB/эксперименты/фичефлаги

Принципы: клиент — визуал и ввод; исход спина и мета-выплаты — на сервере; все награды/баланс — в конфиге с серверной валидацией. RTP-инвариантность — обязательна.

2) Выбор движка: когда Unity, когда Unreal

Unity: быстрый выход на мобайл и WebGL, широкий стор SDK, Addressables, C-стек, UGUI/UI Toolkit, VFX Graph. Предпочтителен для 2D/стилизованного 3D, лёгкого клиента, быстрой итерации, большого количества Тайтл

ов с общим код-основанием.

Unreal: high-end 3D, кинематографичность из коробки, Sequencer, Niagara, мощный C++-рендер, блупринты для дизайнеров. Предпочтителен для премиальных 3D-сцен, сложной камерной постановки, PC/консоль; на мобайле — при наличии опытной команды и продуманной оптимизации.

Критерии выбора: целевые устройства, требуемая зрелищность, компетенции команды, сроки, косты билда/патчинга, требования веб-клиента.

3) Пайплайн контента и данные

Unity

Addressables для стриминга контента; каталоги с версионированием.

ScriptableObjects под таблицы выплат, миссии, коллекции; разруливание через Remote Config.

Timeline для вступлений бонусов/биг-вин сцен.

VFX Graph для эффектов выигрыша с профилированием по батчингу.

Unreal

Pak-файлы/Chunking для патчей; PrimaryAsset Labels и ChunkId.

DataTable/DataAsset под конфиги; Gameplay Tags для состояний.

Sequencer для кат-сцен; Niagara для FX с LOD.

StreamableManager для асинхронной подгрузки.

Общее: строгая схема версий, разделение «код vs данные», «горячие» параметры — только с сервера.

4) UI/UX и читаемость

Unity: UGUI (надёжно) или UI Toolkit (современные лэйауты).

Unreal: UMG + Slate для кастомных виджетов.

Отрисовка: один контурный счётчик выигрыша (ease-out), чёткие контрасты, маски для подсветки кластеров/линий.

Скип/ускорение сцен без потери ключевых сигналов.

Доступность: режим снижения FX, цветовые профили дальтонизма, субтитры, предупреждение о вспышках.

5) Анимации/камеры/VFX

Схема «anticipation → impact → settle», длительность биг-вин ≤ 2.5 с.

Камера: статичный рабочий план + короткие (≤1.2 с) события; ограничение крена/зумов.

FX: Niagara/VFX Graph с капом эмиттеров, GPU-частицы, сортировка прозрачностей, минимум овердроу.

Синк аудио: ±20 мс к пикам анимаций, ducking фоновой дорожки при выигрышах.

6) Оптимизация под мобайл/веб/PC

Цели FPS: 60 (идеал), фейл-сейф 30. Время кадра 16.7/33.3 мс.

Бюджеты сцены (ориентиры):
  • Мобайл mid-range: 80–120k трис/кадр, ≤120 draw calls, динамических теней минимум.
  • Десктоп: 180–300k трис, ≤200–300 draw calls.
  • Текстуры: атласы, компрессия (ASTC/ETC2 на мобайле, BCn на десктопе), мип-уровни, ограничение 4k только для крупных бэкграундов.
  • Освещение: baked/миксованные, Light Probe/Reflection Probe; на UE — отключать дорогое GI на мобайле; на Unity — URP (для мобайл) с простыми шейдерами.
  • Лоды/импостеры: 2–3 уровня; агрессивный culling фона.
  • Шейдеры: контроль вариативности, prewarm; на Unity — SRP Batcher; на UE — материал-инстансы вместо дубликатов.
  • WebGL: Unity WebGL — лёгкие сцены; отключить тяжёлые пост-эффекты, использовать статичный фон, оптимизировать размер бандла. Pixel Streaming UE — только для промо/высокобитрейтных каналов (латентность).
  • Память: цель мобайл ≤ 256–400 МБ на сцену; пулы для VFX/аудио; выгрузка ассетов при смене режимов.

7) Логика аркадных механик

Мини-игры (pick/timing/aim) — локальная логика и валидация на сервере (если награда значима).

Геймификация (уровни/миссии/пассы) — прогресс хранится на сервере; клиент читает только вид.

Волатильность профиля фриспинов (много×маленькое vs мало×большое) — контролируется сервером, клиент показывает выбор.

8) RNG, выплаты, комплаенс

Исход спина/бонуса — строго серверный RNG/математика, клиент не хранит сиды, не симулирует EV.

Сервер возвращает результат + доказуемую трассировку; клиент — визуал.

Ограничение «false choice»: при pre-draw клиент обязан информировать, что порядок открытия не влияет на EV.

Логи аудита, лимиты, ответственные напоминания (сессия, депозиты в RMG, либо мягкие лимиты в social).

RTP не меняется из-за анимаций/времени сцен.

9) Сборка, патчинг и мультиплатформа

Unity

AndroID:IL2CPP + ARM64; Split APK/ABB; Addressables Remote Catalog для «горячих» обновлений.

iOS: IL2CPP + Metal; Bitcode (если требуется), App Thinning; On-Demand Resources при тяжёлых ассетах.

PC/WebGL: отдельные профили качества; CDN для бандлов.

Unreal

Pak-файлы с Chunking, DLC-чанки для событий/сезонов; IoStore.

Mobile: выключить тяжёлые фичи (полноценный динамический GI/дорогие тени), использовать мобильный рендерер.

Патчинг: delta-патчи чанк-уровня, версия данных отделена от кода.

10) Аналитика, A/B, удалённая конфигурация

События: время до 1-й награды, частота бонус-входов, процент скипа сцен, FPS/память, глубина прогресса, доля завершённых миссий, «сухие» сессии.

A/B: длительность кат-сцен, плотность FX, значения наград «маяков», сложность миссий, UI-раскладки.

Remote Config/фичефлаги: мгновенные правки без релиза.

Приватность: аггрегированные метрики, GDPR/CCPA; отключаемые персональные идентификаторы.

11) Безопасность клиента

TLS pinning, проверка сертификата, реплей-защита.

Хэш-подпись конфигов; анти-тампер (обфускация/проверки целостности).

Серверная валидация всех наград/прогресса; «слепой» клиент для экономически значимых операций.

Детекция ботов: вариативность таймингов, аномалии сессий, эвристики на повторяющиеся паттерны.

12) Командный пайплайн

Git + LFS/Perforce (UE) для тяжёлых ассетов; trunk-based с короткими фичеветками.

CI/CD: проверка сборки/размеров/профиля; авто-генерирование Addressables/ChunkId.

Gate-метрики перед релизом: FPS 60±5 без просадок на референс-девайсах, стабильность памяти, время загрузки < 5–8 c (первый вход), биг-вин сцена ≤ 2.5 c.

13) Числовые ориентиры (для старта)

Draw calls мобайл: ≤120; десктоп ≤300.

Текстуры: 2k максимум для ключевых фонов, остальное ≤1k; всегда мипы.

Аудио: победные темы ≤3 c; стемы (ambient/SFX/UI/fanfare), ducking -6…-9 dB.

Загрузка: холодный старт ≤8 c, повторный ≤3 c; ленивые подгрузки FX/бонусов.

Сцена бонуса: вступление 0.8–1.5 c, финальный кадр приза ≤1 c, мгновенный возврат.

14) Чек-лист внедрения

1. Зафиксировать цели: платформы, FPS, размер клиента, бюджеты.

2. Определить архитектуру и границы ответственности сервера (RNG/экономика/прогресс).

3. Выбрать движок по критериям зрелищности/времени/компетенций.

4. Настроить пайплайн контента (Addressables | Pak/Chunks), Remote Config.

5. Реализовать UI/UX с читаемостью выигрышей и доступностью.

6. Собрать VFX/камеры по схеме timing/impact/settle, ограничить длительности.

7. Ввести телеметрию, A/B и алерты производительности.

8. Пройти оптимизацию под целевые девайсы (LOD, компрессия, батчинг).

9. Закрыть безопасность (pinning, анти-тампер, серверная валидация).

10. Провести девайс-тесты, фикс бюджетов, релиз-гейт.

11. Настроить патчинг/сезонный контент без обновления приложения.

12. План регулярного ребаланса экономики и визуальной плотности по данным.

Вывод: Unity и Unreal ускоряют производство аркадных слотов, обеспечивая высокий визуал и удобный пайплайн. Критично удерживать сервер-авторитет по математике, строить управляемую зрелищность (камера/FX/аудио) и держать производительность в бюджетах. При таком подходе слот остаётся честным по RTP, быстрым на устройствах и зрелищным в подаче — ровно то, что ожидает раздел «Аркадные слоты: больше, чем просто вращения».

Caswino Promo