Idle Miner — Геймдизайн-документ
1. Введение
Общее описание
Ивент "Сокровища бездны" — упрощённая версия Zombie Miner без меты, мёрджа рабочих и перетаскивания. Игрок направляет до трёх рабочих на расчистку руды и сундуков на вертикальном поле, получая ресурсы и углубляясь вниз. Основной цикл: выбрал объект → отправил рабочего → подождал → собрал награду → улучшил рабочего → повторил.
Фича в игровом цикле
- Заменяет LuckyBoard в ротации ивентов. LuckyBoard убирается из ротации, но не выпиливается из игры — будет переделан и использован по-другому.
- Ротация остаётся как сейчас, просто вместо LuckyBoard появляется IdleMiner (AbyssTreasures или ещё как назовём в Unity).
- Открывается как все остальные события.
- Валюта зарабатывается через OrderBoard (как у других ивентов) + покупки в магазине через паки (баланс аналогичен другим ивентам).
2. Логика работы фичи
Ввод фичи
- Событие появляется в ротации вместо LuckyBoard.
- Открывается как все остальные события (по расписанию ротации).
- Туториал: экран-подсказка по кнопке "i".
Поле
Вертикальная сетка шириной 10–12 клеток (точное число не определено) с прокруткой вверх или вниз (зависит от настройки Direction в конфиге арены). Клетки должны влезать в экран на узких устройствах.
В каждой клетке может находиться:
| Тип | Размеры | Интерактивность |
|---|---|---|
| Непроходимое препятствие / декорация | 1x1, 1x2, 2x1, 2x2 | Нельзя расчистить |
| Руда | по пресету (1x1, 2x2, 3x3) | Расчищаемый объект, дроп по пресету |
| Сундук | 1x1, 2x2, 3x3 | Расчищаемый объект, может содержать несколько предметов |
У расчищаемых объектов есть уровень. Чем выше уровень — тем больше времени на добычу.
Крайний случай: На широких экранах видно больше клеток — лишние заполняются декоративным мусором без функционала.
Типы руды (пресеты)
Пресет задаётся один раз в конфиге события на каждый тип руды:
| Параметр | Описание |
|---|---|
| Иконка | Визуальное представление |
| Размер | 1x1, 2x2 или 3x3 |
| Мин. уровень рабочего | Ниже этого уровня рабочий не может расчищать объект |
| Базовое время расчистки | Время на 1-м уровне объекта рабочим минимального уровня |
| % роста времени за уровень объекта | Каждый уровень увеличивает время |
| % снижения времени за доп. уровень рабочего | Считается аналогично росту за уровень объекта |
| Минимальное время расчистки | Нижний порог — даже сильный рабочий не расчищает за 0 сек |
Пресет дропа (RewardByWeight) |
Список наград с весами |
Формула времени расчистки (из черновика): если на 1-м уровне объект расчищается за 1 минуту, а процент роста 10%, то на 3-м уровне расчистка будет занимать 1 × 1.2 = 1.2 минуты. Снижение за уровень рабочего считается аналогично. Округление до 10 сек.
Крайний случай: Минимальное время расчистки не даёт даже сильным рабочим расчищать мгновенно.
Дроп-система
Используется общая система наград RewardByWeight. Каждая запись в Rewards[]:
- Weight (float) — вес (определяет вероятность выпадения)
- Reward (IReward) — любой тип награды из общей системы: ResourceReward (золото, гемы, энергия и т.д.), ChestReward, и другие. Тип и количество задаются внутри Reward.
При расчистке из всего списка выбирается ровно одна награда случайно по весам.
Возможные типы наград:
| Награда | Описание |
|---|---|
| Золото | Основная валюта |
| Гемы (алмазы) | Премиум валюта |
| Случайные блупринты | Чертежи предметов |
| PetEgg | Яйцо питомца |
| PetBone | Кости питомца |
| Инструменты шахты | Лопата / бур / ТНТ |
| Energy (бургеры) | Энергия |
Пример: 5000 Золото (вес 2), 50 Гемы (вес 1), 1 ItemKey (вес 0.5) — мы закончили расчищать и, согласно весам, выпало что-то одно.
Крайний случай: Дроп не зависит от уровня руды, только от типа пресета.
Экземпляр объекта на арене
Задаётся в префабе на арене:
- Тип руды — ссылка на пресет
- Уровень руды
Рабочие
Максимум 3 рабочих:
| Рабочий | Доступность |
|---|---|
| 1-й | Есть всегда |
| 2-й | Покупается за спец. валюту |
| 3-й | Покупается за спец. валюту |
Доступность клеток: - Рабочий расчищает только клетку, соседнюю с уже расчищенной зоной - У недоступных объектов вместо уровня рисуем замочек
Позиционирование: - Рабочий телепортируется к объекту мгновенно (бег пока не делаем) - При добыче встаёт в соседнюю свободную клетку рядом с объектом - Если все соседние заняты другими рабочими — занимающий рабочий автоматически телепортируется в ближайшую свободную клетку, освобождая место - При покупке нового рабочего — появляется в ближайшей к центру экрана свободной доступной клетке - Домики рабочих используются как декор, без функционала
Крайний случай: Если свободных клеток нет — добыча не начинается.
Анимации:
| Анимация | Описание |
|---|---|
| Работает (3 ракурса) | Расчищает предмет выше, ниже себя и сбоку (зеркалим для лево/право) |
| Ничего не делает | Всегда лицом к нам |
- На поле у рабочего рисуется его уровень (как у всех предметов)
- При апгрейде рабочего камера переводится к рабочему
Апгрейд рабочих
Стоимость задаётся вручную для каждого уровня в Unity. Максимального уровня нет — как заданные значения закончились, стоимость каждого следующего апа дороже на последний заданный шаг.
Пример из черновика: стоимость для первых 5 уровней: 1, 3, 7, 15, 25. Последний шаг = 25 − 15 = 10. Дальше: 35, 45, 55, ...
Связи с другими системами: Уровень рабочего — главная метрика лидерборда. Также определяет, какие объекты рабочий может расчищать и скорость расчистки.
Расчистка клетки — жизненный цикл
Начало: 1. Игрок тапает по доступному нерасчищенному объекту 2. Появляется панель расчистки (см. раздел «Интерфейс») 3. Нажимает "Начать добычу" → рабочий телепортируется к объекту, начинается добыча
Работа: - Рабочий рисуется рядом с объектом, который расчищает - Уровень объекта отображается - Под кругом уровня — таймер (формат: всегда одна единица — или часы, или минуты, или секунды) - У рабочего на поле тоже рисуется его уровень
Завершение: - Рабочий стоит рядом с расчищенным объектом, отдыхает - Если расчищали кристаллы — вместо кристалла рисуем добытый ресурс - Если расчищали сундук — открытый сундук - По тапу собираем награду, соседние объекты после этого становятся доступны для расчистки
Сбор предметов с поля
- Ресурс и его количество всплывают вверх (эффект как в MazeArena)
- Без экрана награды и эффекта полёта ресурса в зону
- Исключение: сбор награды из сундука — может быть несколько предметов (также как в MazeArena)
3. Интерфейс
Основной интерфейс события
| Элемент | Описание |
|---|---|
| Таймер | Как обычно |
| Лидерборд | Игроки соревнуются по макс. уровню рабочего. Формат: <иконка рабочего> Ур N |
| Кнопка "i" | Типовой туториал: "зарабатывай валюту — трать на рабочих" (Вова сверстает экран) |
| Кнопки рабочих (×3) | Кнопки прокачки рабочих |
| Кнопка магазина | Как обычно |
| Кнопка "Закрыть" | Как обычно |
При входе камера фокусируется на свободном рабочем самого высокого уровня.
Тап по недоступной клетке (замочек)
Панель не появляется, ничего не происходит.
Тап по доступной нерасчищенной клетке → Панель расчистки
По тапу на нерасчищенную доступную клетку показываем панель расчистки. В ней показываем объект и его уровень, требуемый уровень рабочего. Далее одно из трёх состояний:
- Есть свободный рабочий нужного уровня:
- Текст над уровнем рабочего: "Отправить работать"
<иконка рабочего>уровень N — пишем уровень самого прокачанного свободного рабочего, именно он пойдёт расчищать- Время на расчистку. Определяется уровнем указанного выше рабочего
- Кнопка "Начать добычу" — закрывает панель, начинаем добычу
- Есть рабочий нужного уровня, но он занят:
- Текст над уровнем рабочего: "Можем ускорить"
<иконка рабочего>уровень N — пишем уровень рабочего, которого дешевле всего ускорить- Время на расчистку. Определяется уровнем указанного выше рабочего
- Кнопка "Ускорить рабочего" — открывает панель ускорения нужного рабочего
- Нет рабочего нужного уровня:
- Текст над уровнем рабочего: "Требуется рабочий"
<иконка рабочего>уровень N — пишем минимально требуемый уровень для этого объекта- Время на расчистку. Определяется минимальным требуемым уровнем рабочего
- Кнопка "Улучшить рабочего" — закрывает панель (кнопки улучшения в основном интерфейсе)
Тап по клетке в процессе расчистки → Панель ускорения
- Уровень объекта
- Уровень рабочего, который тут занят
- Анимация рабочего на объекте (слева от объекта, долбит объект)
- Объект в панели совпадает с тем, что расчищается на уровне
- Время до конца расчистки
- Кнопка "Ускорить
<спец. ресурс>N"
Отображение процесса на поле
- Рабочий рисуется рядом с объектом, который расчищает
- Уровень объекта отображается
- Под кругом уровня — таймер. Формат времени: всегда пишем что-то одно — или часы, или минуты, или секунды
- У рабочего на поле тоже рисуется его уровень
4. Конфижные настройки
Пресет типа руды (на каждый тип):
| Имя | Описание |
|---|---|
| Иконка | Визуальное представление |
| Размер | 1x1, 2x2, 3x3 |
| Мин. уровень рабочего | Кто может расчищать |
| Базовое время расчистки | На 1-м уровне объекта минимальным рабочим |
| % роста времени за уровень объекта | Увеличение времени за каждый уровень |
| % снижения времени за доп. уровень рабочего | Уменьшение времени за уровень выше минимального |
| Минимальное время расчистки | Нижний порог |
| Пресет дропа (RewardByWeight) | Список наград с весами |
Экземпляр руды (на префабе на арене):
| Имя | Описание |
|---|---|
| Тип руды | Ссылка на пресет |
| Уровень руды | Уровень конкретного экземпляра |
Рабочие:
| Имя | Описание |
|---|---|
| Стоимость апгрейда по уровням | Задаётся вручную, далее линейный рост с последним шагом |
| Стоимость покупки 2-го рабочего | Спец. валюта |
| Стоимость покупки 3-го рабочего | Спец. валюта |
5. Экономика и баланс
Валюта
| Источник | Сток |
|---|---|
| OrderBoard (как у других ивентов) | Покупка 2-го рабочего |
| Паки в магазине (баланс как у других ивентов) | Покупка 3-го рабочего |
| Апгрейд рабочих | |
| Ускорение добычи |
Лидерборд
Соревнование по максимальному уровню рабочего. Формат: <иконка рабочего> Ур N.
6. Аналитика
[нет данных]
7. Читы
[нет данных]