Легенда

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

Цель игры

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

Инструменты

  1. Unity — движок для разработки игры.
  2. Rider или Visual Studio — IDE для написания и отладки скриптов.
  3. Git — для контроля версий проекта.
  4. Zenject — фреймворк для внедрения зависимостей между скриптами.
  5. Object Pool — основной паттерн для оптимизации производительности при создании и удалении игровых объектов.

Важные моменты

  1. Баланс сложности: волны противников должны становиться сложнее с каждой новой волной. Необходимо продумать, как сделать игру интересной и бросающей вызов. Каждая последующая арена также должна быть более сложной для прохождения, если игрок не проходит арену до конца с 1 раза – это нормально.
  2. Оптимизация производительности: при большом количестве объектов (противников, эффектов и т.д.) используйте пул объектов для минимизации нагрузки на систему.
  3. Интерфейс: важны удобные и понятные элементы интерфейса для отображения здоровья, очков, времени до следующей волны и возможных улучшений во время игры и между игровыми сессиями в магазине.
  4. Механика улучшений: игрок должен иметь возможность выбирать улучшения после каждой волны и после прохождения арены.
  5. Разнообразие врагов: различия в поведении и характеристиках противников добавят динамику и поддержат интерес.

Пошаговый план реализации

  1. Настройка проекта и импорта ресурсов

    💡 Убедитесь, что все ассеты размещены в соответствующих папках в проекте Unity (например, “Sprites”, “Scripts”, “Prefabs”), старайтесь поддерживать чистоту в проекте.

  2. Создание арены и размещение основных элементов

  3. Создание персонажа игрока и системы движения

    💡 Используйте Input.GetAxis() для управления движением персонажа, а Rigidbody — для физического взаимодействия. Префабы снарядов должны быть настроены как отдельные объекты для последующего использования в пуле.