Аркадалық слоттарда ойын қозғалтқыштарын (Unity, Unreal) пайдалану

Аркада слоттары кинематографиялық, тұрақты FPS және қатаң математикалық адалдықты талап етеді. Unity және Unreal визуалды, өндірістік және мультиплатформалық құралдарды жабады, ал сервер RNG/төлемдер үшін жауап береді. Төменде - мобайл/веб/РС нақтылығы бар шешім қаңқасы.

1) Базалық сәулет

```
[Клиент Unity/Unreal]
├─ UI/UX (UGUI/UI ToolkitUMG)
─ Анимациялар (TimelineSequencer)
├─ VFX (VFX GraphNiagara)
─ Сахна/шағын ойындар логикасы (CC++)
─ Нетворкинг (WebSocket/HTTP, Protobuf/JSON)
TLS + pinning
[Ойын бэкенди]
─ Серверлік RNG/слот математикасы (сертификаттар.)
─ Экономика/теңгерім/ (Remote Config)
─ Прогресті/пасстарды/коллекцияларды сақтау орны
─ Антифрод/лимиттер/жауапты ойын
─ Талдау/АВ/эксперименттер/фичефлагтар
```

Қағидаттар: клиент - визуалды және енгізу; арқаның және мета-төлемнің нәтижесі - серверде; барлық наградалар/теңгерім - серверлік валидациясы бар конфигада. RTP-инварианттық - міндетті.

2) Қозғалтқышты таңдау: Unity қашан, Unreal қашан

Unity: мобайл және WebGL, SDK, Addressables, C-стек, UGUI/UI Toolkit, VFX Graph. 2D/стильді 3D, жеңіл клиент, жылдам итерация, көп Тайтл үшін қолайлы
жалпы код-негіздемесі бар.
Unreal: high-end 3D, кинематографиялық қорап, Sequencer, Niagara, қуатты C++ -render, дизайнерлер үшін блупринттер. Премиум 3D-көріністер, күрделі камералық қойылым, РС/консоль үшін қолайлы; мобайльде - тәжірибелі команда және ойластырылған оңтайландыру болған кезде.
Таңдау критерийлері: мақсатты құрылғылар, талап етілетін ойын-сауық, команданың құзыреті, мерзімдері, билд/патчинг сүйектері, веб-клиенттің талаптары.

3) Мазмұн пайплайны және деректер

Unity

Мазмұн стримингіне арналған Addressables; нұсқасы бар каталогтар.
ScriptableObjects төлем кестелері, миссиялар, жиындар үшін; Remote Config арқылы реттеу.
Timeline үшін кіріс бонустар/биг-вин көріністер.
VFX Graph батчинг бойынша профильді ұтыс эффектілері үшін.

Unreal

Патчтарға арналған Pak-файлдар/Chunking; PrimaryAsset Labels и ChunkId.
DataTable/DataAsset; Күй үшін Gameplay Tags.
Қате көріністеріне арналған Sequencer; LOD бар FX үшін Niagara.
Асинхронды жүктеу үшін 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) Мобайл/веб/РС бойынша оңтайландыру

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

Оқиғалар/маусымдар үшін Chunking, DLC-күбілері бар Pak-файлдар; IoStore.
Mobile: ауыр фичтерді өшіру (толық динамикалық GI/қымбат көлеңкелер), мобильді рендерді пайдалану.
Патчинг: delta-чанк-деңгейдегі патчтар, деректер нұсқасы кодтан бөлінген.

10) Аналитика, A/B, қашықтағы конфигурация

Оқиғалар: 1-ші марапатқа дейінгі уақыт, бонус кіріс жиілігі, скип сахнасының пайызы, FPS/жады, прогресс тереңдігі, аяқталған миссиялардың үлесі, «құрғақ» сессиялар.
A/B: кат-сахналардың ұзақтығы, FX тығыздығы, «маяктар» наградаларының мәндері, миссиялардың күрделілігі, UI-орналастыру.
Remote Config/ficheflags: шығарылмай жылдам түзетулер.
Құпиялылық: агрегатталған метриктер, GDPR/CCPA; ажыратылатын жеке сәйкестендіргіштер.

11) Клиенттің қауіпсіздігі

TLS pinning, сертификатты тексеру, реплика-қорғау.
Конфигурациялардың хэш-қолтаңбасы; анти-тампер (бүтіндігін тексеру).
Барлық наградаларды/прогресті серверлік валидациялау; экономикалық маңызы бар операциялар үшін «соқыр» клиент.
Боттардың детекциясы: таймингтердің вариативтілігі, сессиялардың аномалиялары, қайталанатын паттерндерге эвристика.

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

Git + LFS/Perforce (UE) ауыр ассеталарға арналған; қысқа фичеветкалармен trunk-based.
CI/CD: құрастырылуын/өлшемін/профилін тексеру; Addressables/ChunkId.
Релизге дейін Gate-метриктер: FPS 60 ± 5 референс-құрылғыларда отырусыз, жадының тұрақтылығы, жүктеу уақыты <5-8 с (бірінші кіріс), биг-шарап көрінісі ≤ 2. 5 c.

13) Сандық бағдарлар (бастау үшін)

Draw calls мобайл: ≤ 120; десктоп ≤ 300.
Текстуралар: 2k максимумы негізгі фондар үшін, қалғаны ≤ 1k; әрқашан мип.
Аудио: жеңімпаз тақырыптар ≤ 3 с; стемалар (ambient/SFX/UI/fanfare), ducking -6... -9 dB.
Жүктеу: суық бастау ≤ 8 с, қайталама ≤ 3 с; жалқаулық жүктеме FX/бонустар.
Бонус көрінісі: кіріспе 0. 8–1. 5 с, жүлделердің соңғы кадры ≤ 1 с, бірден қайтару.

14) Енгізу чек-парағы

1. Мақсаттарды белгілеу: платформалар, FPS, клиенттің өлшемі, бюджеттер.
2. Сервер құрылымы мен жауапкершілік шегін анықтау (RNG/экономика/прогресс).
3. Ойын-сауық/уақыт/құзыреттілік критерийлері бойынша қозғалтқышты таңдау.
4. Мазмұн пайплайнын баптау (AddressablesPak/Chunks), Remote Config.
5. UI/UX-ті ұтыстардың оқылымдылығымен және қол жетімділігімен іске асыру.
6. VFX/камераны timing/impact/settle схемасы бойынша жинау, ұзақтығын шектеу.
7. Телеметрия, A/B және өнімділік алаңдарын енгізу.
8. Мақсатты девайстарға (LOD, компрессия, батчинг) оңтайландырудан өту.
9. Қауіпсіздікті жабу (pinning, anti-tamper, сервер валидациясы).
10. Девайс-тесттер, бюджет фикс, релиз-гейт өткiзу.
11. Бағдарламаны жаңартусыз патчинг/маусымдық мазмұнды баптау.
12. Деректер бойынша экономиканың тұрақты ребалансының және көрнекі тығыздықтың жоспары.

Қорытынды: Unity және Unreal жоғары визуалды және ыңғайлы пайплайн қамтамасыз ете отырып, аркада слоттарының өндірісін жеделдетеді. Математикадан сервер-беделін ұстап тұру, басқарылатын ойын-сауық (камера/FX/аудио) құру және бюджеттерде өнімділікті сақтау өте маңызды. Бұл тәсіл кезінде слот RTP бойынша әділ, құрылғыларда жылдам және көрсетілімде қызықты болып қалады - дәл сол «Аркада слоттары: жай ғана айналудан көп» бөлімін күтеді.