Unity → CoreCLR

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 минут и очень обнадёживающе. Продолжать не верить всё сложнее. Ждём ⏱

7
4 комментария