Unity → CoreCLR
Unity очень давно упоминают о планах по переводу своего runtime на CoreCLR. Я до сих пор помню эту статью из 2022, а это даже не точка старта. И вот на прошедшем Unite они вновь подняли эту тему и уже полные уверенности заявили, что этому быть и уже очень скоро.
На их канале на днях вышло подробное видео c GDC, рассказывающее о деталях этого перехода. Что нас ждёт, когда, какие шаги будут предприняты и какие системы будут затронуты.
Постепенный переход начнётся уже в этом году, с версии 6.5 (6.4 уже вышла). И в версии 6.7 они уже собираются это всё публиковать в experimental режиме. Mono в конечном итоге будет выпилен совсем, как уже устаревшее решение.
Что они планируют:
- Современные актуальные возможности для C# и .NET в целом, в т.ч. новый GC;
- Замена Domain Reload на более хитрую модель через Assembly Load Context. Что должно значительно увеличить скорость работы с редактором и вход в PlayMode.
- Но это потребует аккуратности от разработчиков со статикой, обработчиками ивентов и прочими штуками, удерживающими ссылки на объекты слишком долго и приводящими к утечкам памяти (писал об этом тут).
- В помощь разработчикам в Project Auditor будут добавлены анализаторы для проверки всего, что мешает Domain Reload.
- BinaryFormatter станет и в Unity "запрещёнкой": его поддержку приберут.
- Обновят сериализатор. Станет быстрее и заимеет больше возможностей. В т.ч. даже обещают сериализовать словари.
- Более глубокая интеграция Entities в Runtime и более тесная с GameObject'ми и Transform'ами. В 6.5 появится общий Hierarchy View для энтитей и GO. А в 6.6 для GO и Transform будут предоставлены удобства для работы в Jobs.
- Обещают всяческие низкоуровневые оптимизации и улучшения.
- AI в профайлер, говорят, встроят. Логгер оптимизируют.
И ещё большая горстка комментариев и тезисов. Весьма насыщенно для своих 20 минут и очень обнадёживающе. Продолжать не верить всё сложнее. Ждём ⏱