Техническое задание: Survival-игра на Unity (2D, Top-Down)
Краткое описание проекта
Необходимо разработать 2D игру в жанре survival с видом сверху. Игрок появляется в подземелье и должен выживать, отбивая волны врагов, собирая разбросанные по карте предметы для усиления своего персонажа. Пока герой жив, начисляются очки. Цель - создать динамичный и цепляющий геймплей, подходящий для демонстрации в портфолио.
Основные механики и условия победы/поражения
Условия победы (на выбор):
- Продержаться заданное время (например, 3-5 минут).
- Выдержать определенное количество волн (например, 5-10).
Условие поражения:
- Здоровье героя падает до нуля.
Динамика сложности:
- Волны врагов появляются через фиксированные промежутки времени.
- С каждой новой волной враги становятся сильнее: увеличивается здоровье, урон и/или количество юнитов.
- Случайным образом на карте появляются предметы для усиления.
Технические требования и игровой процесс
Управление:
- Перемещение: клавиши WASD или стрелки.
- Атака: отдельная кнопка для ближнего или дальнего боя.
Характеристики персонажа:
- Здоровье (HP)
- Скорость передвижения
- Наносимый урон
Система врагов (FSM - конечный автомат состояний):
- Idle - состояние ожидания перед активацией.
- Follow - преследование игрока.
- Attack - нанесение урона игроку (при столкновении или через анимацию).
- Dead - проигрыш анимации/эффекта и удаление объекта.
Система урона:
- Игрок наносит урон по врагам при активации атаки (проверка через коллайдер).
- Игрок получает урон от врагов при столкновении или по таймеру, пока враг находится в зоне атаки.
Предметы усиления:
- Аптечка (восстановление здоровья).
- Бафф скорости (временное увеличение скорости передвижения).
- Бафф урона (временное увеличение наносимого урона).
Интерфейс пользователя (UI)
Требуется реализовать следующий набор интерфейсов. Допустимо использование готовых графических ассетов.
- Индикатор здоровья (HP Bar) игрока.
- Счетчик (отображающий время выживания или количество побежденных врагов).
- Кнопка паузы в игровом процессе.
- Главное меню для начала игры.
- Экран окончания игры (поражения).
Техническая реализация
- Движок: Unity.
- Графика: 2D, стиль top-down. Для графики можно использовать ресурсы с открытых библиотек.
- Камера: Простое следование за игроком или реализация с помощью Cinemachine 2D.
- Тестирование: Необходимо предоставить как минимум один модульный тест, проверяющий логику уменьшения здоровья.