Для формализации своих идей о том как надо делать код, а так же в качестве наглядного примера правильно выполненного Unity-проекта с чистым кодом, я, помимо основной работы, сделал небольшой проект, в котором собрал все свои наработки наиболее качественного кода для создания проектов на Unity.
Что под капотом?
- 100% свой собственный код, никаких посторонних библиотек, кроме Stateless. Никаких third-party элементов кода.
- Развитая система анимаций, прозрачно микширующая все анимации персонажей из отдельных блоков.
- Система анимации управляет персонажем. Добавление нового функционала в большинстве случаев возможно без создания новых анимаций и нового кода под него. Игра делается без кода — я просто собираю «детали лего».
- Поведение персонажа определяется смешиванием поведений (по тем же принципам что и в анимациях).
- Развитая система инвентаря прозрачна и сделана в Unity way. Любой объект есть объект — всё как в реальной жизни, что сильно облегчает понимание и управление. Это же делает систему прозрачной с точки зрения сериализации и сохранения — мы просто выгружаем JSON со списком объектов.
- Развитый ИИ, построенный на конечных автоматах, PID и системах нечёткой логики. Противники умеют общаться между собой, обмениваться информацией об игроке, пугаться и действовать сообща. ИИ управляет как действиями противников, так и игрока, персонаж игрока также обладает интеллектом — сам понимает куда и когда наводить оружие, куда смотреть, что делать и так далее.
- Мощная система взаимодействий, унифицирующая все взаимодействия в игре.
- Нулевая связность кода. Поведения выполняют команды, транслируемые в игре. Они не знают друг о друге (и им это не надо).
Что дальше?
- Реализация нейросетевого ИИ на основе UnityML.
- Реализация генетических алгоритмов (новые поколения противников должны приспосабливаться к поведению игрока и вырабатывать оптимальную стратегию на уровне эволюции).
- Ну и конечно же, новые модельки спецэффекты и прочее — стоковые, всё же, унылые.
Когда это всё делать? Да если бы я знал. Но ту версию, которая сейчас уже есть, вы можете скачать и оценить по ссылке.