Решения по стеку приняты при старте проекта (май 2026). Запись извлечена из замороженного
10-reference/tech-stack: сам список пакетов живёт вPackages/manifest.json, а вот причины выбора не хранились больше нигде.
Решили:
| Взяли | Отвергли | Почему |
|---|---|---|
| NGO | Mirror, FishNet | нужен host-authoritative кооп, и автор уже работал с NGO + Facepunch. FishNet мощнее (rollback, prediction), но это про соревновательный PvP — у нас игра «с друзьями», без античита |
| MPPM | ParrelSync | Unity 6 даёт Multiplayer Play Mode штатно; клон папки стал легаси-обходом |
| R3 | UniRx | UniRx легаси, R3 — официальный преемник от Cysharp. Брать точечно, под реактивные биндинги UI |
| LitMotion | DOTween | новее, zero-alloc, та же экосистема Cysharp |
| UI Toolkit + MVVM | uGUI + MVP везде | биндинги UI Toolkit сделаны под MVVM, а конфиг-UI редактора AI требует дизайн-системы. uGUI-гибрид оставлен там, где он честно лучше — боевой world-space HUD (бары, цифры урона) |
MVP против MVVM, чтобы разница не путалась: в MVP связь «вид ↔ данные» обновляется вручную через презентер — проще и привычнее в Unity, хорошо для uGUI и world-space. В MVVM вид подписан на наблюдаемые свойства и обновляется сам, но нужны биндинги (UI Toolkit или R3).
Почему именно так: выбор шёл не по «мощнее», а по совпадению с жанром и по тому, чем автор уже владеет. FishNet — ровно тот случай: объективно сильнее, и именно поэтому был бы ошибкой, потому что его сила окупается только в PvP, которого у нас нет.
Устарело, не переносить: та же таблица числила Easy Save 3 как выбранный бэкенд сейвов
(«подключим за ISaveService, когда понадобится шифрование или Cloud»). Это отменено 2026-07-26:
сейв наш собственный (JsonFileSaveService), ES3 остаётся только референсом и тянет за собой
com.unity.visualscripting, который нельзя удалять. Действующее положение — CLAUDE.md, раздел
«Сохранения».
Владелец правды: состав пакетов — Packages/manifest.json и Assets/Plugins/; правила слоёв —
CLAUDE.md; сейвы — CLAUDE.md §Сохранения.