Одобрен · скоро на Stake

Кейс · Vampir: Graveyard Shift

Вампир в ночную смену. Одобрен Stake Engine.

Дядя Владо устроился на единственную работу, которая подходит под его график: ночным сторожем на деревенском кладбище. Всю настоящую работу делают его летучие мыши. Мы придумали игру, сделали весь её арт и звук, анимировали героя, просимулировали математику, собрали клиент и провели его через ревью Stake Engine. Вот вся работа целиком, с настоящими файлами.

Или посмотрите настоящий максимальный выигрыш 25 000×: Blood Moon Shift из опубликованных books ▶18+ · Играйте ответственно

6×5Выплаты в любом месте + каскады
5Режимов ставок, от 1× до 1000×
96,50%RTP в каждом режиме
25 000×Макс. выигрыш в каждом режиме
500 000books просимулировано и прогнано по правилам100 000 на режим ставок · 0 ошибок
14 / 14проверок математических рисков уровня 3 звезды пройденоплюс все 5 критических тестов Stake
36 октребований платформы в нашем ревью перед отправкой0 провалов · 3 для человека · 1 н/п
11отснятых клипов дяди Владоцикл ожидания + 10 сценок

Ночная смена на камеру.

Vampir сделан только для Stake, поэтому смотреть его — здесь. Каждый клип и кадр в этом разделе — настоящая сборка игры, которая играет настоящие раунды из опубликованных books. Раунды выбрали мы, заплатила за них математика.

Растущие мыши. Мышь — это wild: она остаётся на поле при каждом каскаде и получает +1 каждый раз, когда поле осыпается. Здесь две мыши дорастают до ×5 и ×7 за шесть каскадов.

Та же игра на телефоне
  • Базовая игра6×5: от 8 одинаковых символов в любом месте, потом поле осыпается.
  • Укус ВладоКаждая мышь на поле удваивается. Примерно 1 базовый раунд из 80.
  • Bloody WinСамое большое празднование, от 150×.
  • Меню покупкиТри смены за 100×, 300× и 1 000×, у каждой RTP 96,50%.
  • 03:00Только в Blood Moon: каждая мышь удваивается ещё раз.
  • Feature Win25 000,00 при ставке 1,00: потолок.

Одобрен · скоро на StakeЗаписано с настоящей сборки игры: реальные раунды из опубликованных books.

01 · Бриф

Сделан для топа лобби.

Клиента здесь нет: Vampir — наша собственная игра. Мы изучили, что общего у топ-10 игр платформы, записали этот профиль до того, как что-либо нарисовать, и сверяли с ним каждое решение.

Проверка названия до первого скетча. Слота под названием «Graveyard Shift» не нашлось. От «Night Shift» отказались, потому что уже есть «Knight Shift», а раз у одного известного вампирского слота уже есть летучие мыши-вайлды, наши должны были выглядеть и вести себя не как у всех.
Яркий 2D-мультфильм→Толстые контуры, ночная палитра: глубокий тёмно-синий, неоновый фиолетовый, бирюзовая обводка и один кроваво-красный акцент.
Чёрный юмор→Вампир, который работает по ночам, кусает поле, когда проголодается, и ненавидит чеснок (это символ).
Один звёздный персонаж→Дядя Владо всегда на экране: 11 отснятых клипов и бюст для телефонов.
Постоянные множители→Вайлды-мыши, которые не уходят при каскаде и растут на +1 с каждым.
Уровни фриспинов→Три смены за 4, 5 или 6+ гробов, каждая играется как одна ночь по часам.
Трёхуровневое меню покупки→Покупки за 100×, 300× и 1000× плюс режим Night Owl за 2×.
Пятизначный макс. выигрыш→25 000× в каждом режиме ставок, в рамках уровня риска 3 звезды.
02 · Хук

Три идеи, которые игрок
объяснит другу.

Одна механика, которая наша, один момент, который принадлежит Владо, и раунд фриспинов с часами на стене. Первые две можно попробовать прямо здесь.

Идея 1 · Растущие мыши

Мыши складываются. И никогда не уходят.

Мышь — это вайлд: она остаётся на поле во всех каскадах и получает +1 при каждом каскаде. Когда каскады заканчиваются, выигрыш спина умножается на сумму всех мышей на поле. Мыши складываются, но никогда не перемножаются.

Выигрыш каскада из настоящего опубликованного спина: 8,0× (11 могильных фонарей + 1 мышь = 12 символов)

Правила: MATH.md · Bats. Настоящий спин: base book #1 (выигрыш каскада 8,0×, сумма мышей ×2, 16,0× за спин). После первого каскада это просто игрушка.

Идея 2 · Укус Владо

Иногда ему хочется перекусить.

После спина в базовой игре, который закончился выигрышем и хотя бы одной мышью на поле, дядя Владо может укусить: каждая мышь удваивается до применения множителя. Решает book, клиент его только проигрывает.

Vlado’s Bite, рисованный заголовок из игры Наведите, и он укусит
1 из 80базовых раундов с укусом (1,25%)
1 из 28,5с включённым Night Owl (3,50%)
Идея 3 · Ночная смена

Фриспины — это одна ночь по часам.

4, 5 или 6+ гробов запускают Graveyard, Overtime или Blood Moon Shift: 10 спинов, по одному в час начиная с 21:00. Мыши остаются на всю ночь и продолжают расти. В полночь каждая мышь удваивается, а в 03:00 прилетает новая. Три гроба во время смены добавляют 5 спинов, и часы идут дальше 07:00. Ниже — настоящая Blood Moon Shift, записанная из финального клиента.

Рисованный циферблат из игры
21:00

Graveyard Shift

4 гроба. Мыши падают с ×1, в полночь удваиваются.

Базовая игра1 из 346
Покупка100×

Overtime Shift

5 гробов. Каждая выпавшая мышь стартует с ×3, мышь в 03:00 тоже.

Базовая игра1 из 4571
Покупка300×

Blood Moon Shift

6+ гробов. Мыши удваиваются в полночь и ещё раз в 03:00.

Базовая игра1 из 63 977
Покупка1000×

Частоты на раунд базовой игры: sdk/games/vampir/MATH.md · Final stats. Записи: финальный клиент играет настоящие books из опубликованной математики.

03 · Процесс

От чистого листа до одобренной игры. С пруфами.

Каждая картинка ниже — реальный файл из проекта: тесты, которые мы выбросили, направление, которое оставили, и записи финального клиента.

01
Концепт

Диздок до первого пикселя.

Питч, поле, выплаты, фичи, режимы ставок и цели на нескольких страницах. У математики своя спецификация с контрактом событий, который клиент потом читал строчка за строчкой.

GDDСпека математикиКонтракт событийПроверка названия

Vampir: Graveyard Shift · GDD v0.1

Питч
Дядя Владо устроился на единственную работу, которая подходит под его график: ночным сторожем на деревенском кладбище. Всю настоящую работу делают его летучие мыши.
Поле
6 барабанов × 5 рядов, платят 8+ одинаковых символов в любом месте, каскады.
Хук
Мыши несут множитель и складываются, а не перемножаются.
Смена
10 спинов, часы с 21:00 до 07:00. В полночь каждая мышь удваивается.
Цели
Частота выигрышей около 1 из 3 · фриспины около 1 из 250 (в релизе 1 из 320, см. 09) · макс. выигрыш 25 000×.
02
Арт · тесты стиля

Два стиля, один состав.

Прежде чем определиться, мы проверили стиль на одних и тех же персонажах: яркий мультфильм с толстыми контурами и процедурный cel-shaded 3D-набор, собранный в Blender.

Тест стиля: яркий мультяшный 2D-дядя Владо
Яркий 2D-мультфильм
Тест стиля: cel-shaded 3D-символы из Blender
Cel-shaded 3D, Blender
03
Арт · направление

Потом настоящий бой: A против B.

Герой и четыре символа в обоих вариантах. B: целиком смоделирован и отрендерен в Blender. A: 2D-иллюстрация, доработанная в Krita и зариганная в Spine. Потяните ползунок. Победил A, а B отправился в стол.

Направление A: нарисованные Владо, гроб, мышь, кубок и череп Направление B: те же персонажи, смоделированные в Blender B · всё в 3DA · иллюстрация (оставили) ⇆
04
Арт · звезда

Кастинг дяди Владо.

На пробы пришли 3D-версия и три бородатых дубля. Роль получили усы. Эта картинка стала кадром, с которого начинается и которым заканчивается каждый его клип, так что, что бы он ни делал, он всегда возвращается в одну и ту же позу.

Кастинг: 3D-Владо
3D-версия
Кастинг: бородатый Владо, дубль 1
Дубль 1
Кастинг: бородатый Владо, дубль 2
Дубль 2
Кастинг: бородатый Владо, дубль 3
Дубль 3
ПРИНЯТФинальный дядя Владо
Тот самый
05
Арт · символы

Десять символов, одна рука.

Сверху портрет дяди Владо, кровавый кубок, могильный фонарь и ненавистная ему связка чеснока; ниже череп, надгробие, свеча и паук; плюс вайлд-мышь и скаттер-гроб. У каждого свой риг в Spine для выпадения и выигрыша, а крышка гроба правда открывается. Нажмите на символ, чтобы увидеть выплаты.

Выплаты в ставках, до множителя мышей: за 8–9, 10–11 и 12+ одинаковых символов в любом месте.
06
Арт · сцена

Одно кладбище, две ночи.

Лунный свет для базовой игры, кровавая луна для смены. Одна композиция на обе, поэтому начало фриспинов ощущается как перемена ночи, а не как загрузка нового уровня.

Фон смены под кровавой луной Фон базовой игры под полной луной Базовая играСмена ⇆
07
Арт · UI-кит

Ни одного CSS-градиента на кнопках.

Наша проверка перед отправкой охотилась за тем, за что ревьюеры снижают оценку: градиентные заливки, эмодзи вместо иконок, стоковые шрифты. Каждый элемент управления стал артом в стиле символов, а у каждого большого момента появилась своя рисованная надпись: 16 заголовков плюс золотые битмап-цифры для сумм, множителей и часов. Наведите на сову: это переключатель Night Owl, спящий и проснувшийся.

Рисованная кнопка спина Рисованный циферблат Рисованная золотая кнопка
Рисованная табличка покупки
Заголовок Big Bite
08
Анимация

Риг только гнёт картинку. Поэтому мы его сняли.

Для Владо сделали 11 видеоклипов из его собственной картинки: цикл ожидания (дыхание, качание плаща и фонаря, моргание, мышь оглядывается) и десять сценок. Клип стартует только тогда, когда цикл ожидания проходит через его неподвижную позу, поэтому он никогда не дёргается. Риг в Spine остаётся запасным вариантом, а большие моменты держат эффекты частиц.

Видео со stacked alphaSpine 4.2Частицы Effekseer

Семь из одиннадцати клипов, в размере для телефона. Та же техника, что и в игре: цвет сверху, альфа снизу, склеены на canvas.

09
Математика

Просимулировать. Оптимизировать. Сыграть. Поправить ощущения.

100 000 books на каждый режим ставок, оптимизатор, чтобы посадить каждый режим на 96,50%, а затем самый важный шаг: мы в неё сыграли. Базовая игра версии 1 ощущалась жадной между сменами, поэтому мы её перевзвесили: тот же RTP, тот же макс. выигрыш, больше выигрышей, ради которых стоит играть. Настоящий лог справа, полные цифры ниже.

check_stats.py · vampir
== base (cost 1) books=100000 zero-weight=0 LUT/book mismatches=0   RTP 96.500%   std 14.77/cost (raw 14.8)   median 0.00x   hit rate 31.17% (1 in 3.2); stake or better (1x+) 1 in 4.5   free spins 1 in 320.0, avg 115.6x, FS RTP 36.13%, base game RTP 60.37%   max win 25,000x, 1 in 6,250,006.4   vladoBite 1.25%, midnight 0.31%, newBat 0.31%   ... nightowl, shift, overtime, bloodmoon ...   [PASS] RTP in 96.0-96.7% for every mode   [PASS] max win 25,000x reached in every mode   [PASS] Volatility: max std dev (per unit cost) <= 60   [PASS] Tail Probability: P(>=25,000x) <= 0.005   failed classes: 0 []
Отрывок из sdk/games/vampir/check_stats.log, без правок, кроме сокращения.
10
Фронтенд

Первая играбельная версия против финального клиента.

Та же сцена, то же поле, совсем другая игра. Тяжёлую работу делает наш общий движок (PixiJS 8 с DOM-HUD), а слой игры добавляет часы, мышей, сову и Владо. Отображение следует за books: каждое значение мыши, укус, полночь и выигрыш приходят из события book. На клиенте ничего не решается.

Никаких проигрышей под видом выигрышейКолонки досыпаются волнойСимволы с мипмапамиПоле, которое не стоит на местеБюст Владо на телефонах
Финальный клиент: рисованный интерфейс, рамка и кнопки Ранний играбельный билд с плоскими CSS-кнопками Первая версияРелиз ⇆
Финальный клиент на телефоне, бюст Владо рядом с логотипом
11
Ревью

Сначала мы провалили собственное ревью.

Перед отправкой мы прогнали билд по всем опубликованным требованиям, с мок-сервером, отдающим настоящие books: размеры экрана от 1280×720 до 400×225 и телефон 425×812, пять валют плюс свипстейк-монеты, социальные формулировки, реплеи, незавершённый раунд. Первый проход нашёл два провала. Мы исправили оба, перепроверили и только потом нажали «Отправить».

Ревью перед отправкой36 ок · 0 провалов
  • 181Авторизуется на игровом сервере при запускеPASS
  • 275Свой загрузчик, без загрузчика платформыPASS
  • 25RTP и макс. выигрыш указаны в правилахPASS
  • 31Дорогие режимы просят подтвержденияPASS
  • 219EUR, USD, CAD, MXN, JPY отображаются верноPASS
  • 77Социальные формулировки вездеPASS
  • 171Реплеи загружаются и играютсяPASS
  • 195Окно 400×225: карточка покупки перекрывала менюFIXED
  • 235В гайде не было переключателя Night OwlFIXED
3 пункта оставлены для человеческого глаза: контент, оригинальность, настоящий телефон.✓ Одобрено
04 · Математика

Цифры, которые можно проверить.

Прямо из нашей симуляции опубликованных lookup-таблиц: 100 000 books на режим ставок, математика версии 1 с перенастроенной базовой игрой. В PDF — полная таблица, методика и проверки рисков.

96,50%RTP в каждом режиме ставокlookup-таблицы: 96,5000%
25 000×Макс. выигрыш в каждом режимесмотреть, как он выпадает ▶
1 из 3,21Частота выигрышей в базовой игре31,17% раундов
1 из 320Смена из базовой игры1 из 160 с Night Owl
Режим ставкиЦенаRTPЧастота выигрышейМедианный раундВозврат ≥ ценыСт. откл. / ценаМакс. выигрыш 25 000×
Базовая играМыши, укусы, смена
1×96,50%1 из 3,210×1 из 4,5014,771 из 6 250 006
Night OwlБольше мышей и гробов
2×96,50%1 из 3,130×1 из 4,5011,051 из 3 125 001
Graveyard ShiftБонус-бай, 4 гроба
100×96,50%каждый раунд31,1×1 из 5,202,131 из 50 000
Overtime ShiftБонус-бай, мыши стартуют с ×3
300×96,50%каждый раунд126,7×1 из 3,291,351 из 19 984
Blood Moon ShiftБонус-бай, двойные удвоения
1000×96,50%каждый раунд523,1×1 из 3,651,211 из 2500

Из чего складываются 96,50% базовой игры

Доля возвращённой ставки, базовый режим.

Базовая игра60,37%
Фриспины (смена)36,13%

Какая смена выпадает

Доля смен, запущенных в базовой игре.

Graveyard · в среднем 97,6×92,50%
Overtime · в среднем 292,4×7,00%
Blood Moon · в среднем 974,8×0,50%

Как часто что случается

Базовый режим, на раунд.

  • Любой выигрыш1 из 3,21
  • Выигрыш от 1×1 из 4,50
  • Множитель мышей от ×21 из 17,4
  • Укус Владо1 из 80
  • Смена (любой уровень)1 из 320
  • Средняя смена115,6×
  • Ретриггер в купленной смене20,4–23,0%

Раунды базовой игры по выплате

Доля от всех раундов базового режима. Раунды, запускающие смену, показаны фиолетовым. Линейная шкала: хвост есть, просто он тонкий.

Только books базовой игры. У Night Owl те же доли начиная с 2×, при двойных суммах. В диапазоне 100×+ 191 book, в среднем 202×.

Риск против лимитов уровня 3 звезды

Худший режим ставок по каждой проверке. Красная отметка — это лимит.

Мы сыграли в v1. Она казалась жадной. Мы поправили ощущения, а не RTP.

Базовая игра до и после перевзвешивания lookup-таблицы. Сессии: 20 000 симулированных сессий по 200 спинов.

Базовая играv1v2 (релиз)
RTP96,50%96,50%
Доля RTP, выплаченная вне смены52,2%62,6%
Выигрыш от 1×1 из 6,431 из 4,50
Крошки (выигрыши меньше ставки)17,09%8,95%
Множитель мышей от ×21 из 361 из 17
Укус Владо1 из 1451 из 80
Смена1 из 2501 из 320
Сессии без выигрыша от 1× за первые 20 спинов3,19%0,56%
Самая долгая серия без выигрышей, медианная сессия22 спина16 спинов
Макс. выигрыш 25 000×1 из 6 250 0061 из 6 250 006

Проверки

  • Критические тесты Stake5 / 5 ок
  • Некритические проверки уровня 3 звезды14 / 14 ок
  • Books, прогнанные по правилам500 000 · 0 плохих
  • Строгая проверка books и lookup-таблиц0 плохих строк
  • Макс. выигрыш достижим в каждом режимеда
  • Полная пересборка, все пять режимов22 мин
Полная математика игры, 3 страницы.

Режимы ставок, волатильность, частоты фич, таблица выплат, методика симуляции и размеры выборок.

Скачать PDF ↓

Источники: sdk/games/vampir/MATH.md (итоговая статистика, базовая игра v2), check_stats.log, session_sim.log, check_bats.log, check_books.log. Теоретические значения из наших симуляций; отдельные сессии отличаются.

05 · Техстек

Что под плащом.

Скучные проверенные инструменты, применённые аккуратно. Клиент — только статические файлы: никаких внешних запросов, ничего, кроме игрового сервера.

∑

Математика

Математический SDK Stake Engine на Python, оптимизатор SDK, наше собственное перевзвешивание диапазонов и чекеры, которые прогоняют каждый book по правилам и контракту событий.

PythonMath SDKОптимизаторLookup-таблицы
⚡

Клиент

Наш общий слот-движок: WebGL-рендеринг с DOM-HUD, типизирован от начала до конца, собирается под каждую игру. Собственный слой Vampir добавляет часы, мышей, сову, герб и Владо.

TypeScriptPixiJS 8GSAPVite
✦

Движение

Риги в Spine для каждого символа, видео со stacked alpha для героя, эффекты частиц для больших моментов, прогретые за кадром во время стартового экрана, чтобы первый биг-вин не подтормаживал.

Spine 4.2EffekseerВидеоклипыМипмапы
✎

Арт

2D-иллюстрация по слоям с доработкой в Krita, 3D-тесты и пропсы в Blender и рисованная рамка точно по пропорциям поля, чтобы ничего не растягивалось.

KritaBlenderБитмап-шрифтыТекстуры для десктопа и мобайла
♫

Аудио

Звуковые эффекты из записей и синтеза, собранные в один спрайт; музыка смастерена в REAPER и поставляется в двух кодеках, чтобы каждому браузеру достался свой.

REAPER 7LUFS + true peakOpusAAC
✓

QA

Мок игрового сервера, отдающий настоящие books, пульт ревью для баланса, уровней ставок, валюты, социального режима и незавершённых раундов, и полный прогон по требованиям перед каждой отправкой.

Мок RGSРежим реплея5 вьюпортов7 валют
06 · Звук

Кладбище. Но весёлое.

Бриф для музыки: клавесин, орган, струнные пиццикато и терменвокс для готики, аккордеон и балканская медь для дяди Владо, всё в до миноре. Тональные звуковые эффекты — в той же тональности.

Луп базовой игры

Отрывок 40 с · полный луп в игре идёт 74,9 с
0:000:40

Пять треков, 23 эффекта

Луп базовой игры74,9 с
Луп смены62,0 с
Интро смены9,3 с
Биг-вин10,3 с
Рассвет5,8 с

Эффекты живут в одном спрайте на 40,7 с, собранном из записей дерева, скрипов, ткани, стекла и колоколов, перепитченных и наложенных на синтез в акустике каменного склепа:

крылья мышиукусскрип гробацерковный колоколтик-таксердцебиениеуханье совыпризракгромкапель+ ещё 13

Мастеринг по громкости (лупы на −17 и −16,5 LUFS, стингеры на −14 и −15,5) с true-peak-лимитером: каждый файл в релизе остаётся ниже 0 dBTP после кодирования. Лупы рендерятся со второго прохода подряд, поэтому входят в цикл уже устоявшимися.

07 · Результат

Одобрен. Теперь это планка.

Vampir: Graveyard Shift прошёл ревью Stake Engine и стал нашим первым слотом, одобренным для платформы. Каждая игра, которую мы начали после, должна взять планку, которую он поставил.

  • Диздок, спецификация математики и контракт событий
  • Математика для 5 режимов ставок: books, lookup-таблицы, демо-books, статистика
  • Фронтенд-пакет для десктопа и телефона с режимом реплея
  • Медиа для витрин: обложка, плитка, логотип и передние планы
  • Заметки для ревьюеров и страница запуска
Vampir: Graveyard Shift Одобрен · скоро на Stake

RTP 96,50% · макс. выигрыш 25 000×
5 режимов ставок · 6×5, выплаты в любом месте

18+ · Играйте ответственно

Хотите своего
Владо?

Игра на заказ со своей механикой или рескин одной из наших. В любом случае вы получите математику, books и все пруфы.