Unity-разработчики. Миниигра 3 в ряд для платформ Android/IOS (Дистанционная работа)
(проект не опубликован)

Бюджет не указан

Задание: Unity-разработчики. Миниигра 3 в ряд для платформ Android/IOS (Дистанционная работа)

0. Срок сдачи работы: 14 календарных дней с момента утверждения Исполнителя. 1. Общие требования Мини-игра «3 в ряд» (далее — Match-3) реализуется исключительно C#-скриптами и ресурсами Unity, без сторонних ассетов из Asset Store. Вся логика находится на одном экране (Canvas в отдельной сцене Assets/Scenes/Match3.unity). Реализуется классическая механика: поле 8 × 8 (константы вынести) свайп/клик ↔ обмен соседними фишками проверка совпадений 3+ каскад (обвал сверху) начисление очков ограничение ходов или таймер (экспортировать обе логики через ScriptableObject). Без сетевого кода; всё офлайн. Мини-игра должна быть плагином: помещается в подпапку Assets/MiniGames/Match3; не затрагивает существующие сцены/скрипты; помещена в namespace MiniGames.Match3; экспортируется prefab-ом Match3Controller.prefab (достаточно перетащить на сцену хоста). Код читаемый, XML-комментарии, правило + #pragma warning disable 0649 запрещено. Zero-GC в Update: никакого new в горячем цикле. Использовать пул объектов. Все публичные константы → [SerializeField] private. Анимация — через DOTween (добавь UPM ссылкой, но не лезь в чужие manifest.json). Unit-тесты (NUnit 3) на генерацию поля, поиск матчей, каскад. 2. Структура проекта Путь Файл/папка Сущность Assets/ корень проекта └─MiniGames/Match3/ всё, что ты создаёшь   ├─Scripts/ C#-код   │  ├─BoardManager.cs управление полем   │  ├─Gem.cs MonoBehaviour фишки   │  ├─InputController.cs ввод   │  ├─MatchFinder.cs алгоритм поиска   │  ├─BoardSpawner.cs генерация/респаун   │  ├─ScoreManager.cs очки/UI   │  └─Match3Installer.cs DI-контейнер (Zenject)   ├─Prefabs/   │  └─Gem.prefab модель фишки   ├─Materials/ материалы фишек   ├─Scenes/   │  └─Match3.unity отдельная сцена   ├─Tests/ unit-тесты   └─README.md краткое руководство Важно: никаких ресурсов/файлов вне указанного дерева. 3. Требования к коду и арту Фишка: вектор или PNG 512², шесть цветов. Sprite-анимация «подсветка». UI: минимальный — счёт, «Rest Moves»/«Timer», кнопка Exit вызывает OnExit() (выходит к хост-сцене). Сборка: Android + iOS (IL2CPP), WebGL (отдельный билд-таргет). Документация: сгенерировать Docs/ через DocFX либо Rider-doc-тул. Unit-тесты: запускаются командой TestRunner.RunAll() без GUI. 4. Acceptance criteria Билд сцены Match3.unity на пустом проекте ≤ 60 МБ Android-apk. FPS ≥ 60 на Android MediaTek G90 / iPhone 8. Нет GC-alloc в Profiler (крестики в PlayerLoop < 0.5 KB). Излишние зависимости отсутствуют; package-lock чист. Полное покрытие unit-тестами логики ≥ 80 %. Интеграция в основной проект Заказчика выполняется за ≤ 30 минут (просто копипапка и префаб). 5. Игра должна быть размещена на GitHub в приватном репозитории с доступом по классическому токену. Если потребуется доработка, нужно будет делать соответствующие коммиты.