1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/focus-creative-games-hybridclr

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 10 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 30.11.2024 07:43 bf7a841

HybridCLR

HybridCLR — это «полнофункциональное, беззатратное, высокопроизводительное и низкопотребляющее» почти идеальное решение для горячего обновления Unity на разных платформах.

HybridCLR расширяет код времени выполнения il2cpp, превращая его из чистого AOT в гибридный режим AOT + Interpreter, что позволяет динамически загружать сборки и полностью поддерживать горячее обновление. Игры, использующие технологию HybridCLR, могут эффективно работать не только на платформе Android, но и на IOS, консолях и WebGL, а также на других платформах, поддерживающих il2cpp.

Благодаря хорошей поддержке спецификации ECMA-335 и высокой совместимости с рабочим процессом разработки Unity, проекты Unity после подключения к HybridCLR могут практически бесшовно получать возможность горячего обновления кода C#, при этом разработчикам не нужно менять свои повседневные привычки и требования к разработке. HybridCLR впервые снизил сложность реализации решения для горячего обновления кода Unity до почти нулевого уровня.

Добро пожаловать в мир современной технологии горячего обновления C#!

Документы

Особенности

  • Почти полная реализация спецификации ECMA-335, за исключением небольшого количества неподдерживаемых функций ([https://hybridclr.doc.code-philosophy.com/docs/basic/notsupportedfeatures]).
  • Нулевые затраты на обучение и использование. Для большинства разработчиков написание кода практически не ограничено. Код горячего обновления работает без швов с кодом AOT, и можно свободно писать код, включая наследование, дженерики и рефлексию. Не требуется писать какой-либо специальный код или выполнять генерацию кода.
  • Полная поддержка многопоточности, включая, помимо прочего, volatile, ThreadStatic, async Task и другие связанные функции и особенности. Это не поддерживается другими решениями для горячего обновления.
  • Практически полная совместимость с рабочим процессом Unity. Включая, помимо прочего, поддержку горячего обновления MonoBehaviour, ScriptableObject и DOTS, ресурсы, прикреплённые к скриптам горячего обновления, могут быть правильно созданы, чего не поддерживают другие решения для горячего обновления.
  • Высокая производительность. Реализован чрезвычайно эффективный интерпретатор регистров, все показатели значительно превосходят другие решения для горячего обновления. Отчёт о тестировании производительности.
  • Эффективное использование памяти. Классы, определённые в горячем обновлении, занимают столько же памяти, сколько обычные классы C#, что намного лучше, чем у других решений для горячего обновления. Отчёт об использовании памяти.
  • Поддержка MonoPInvokeCallback, позволяющая хорошо взаимодействовать с собственным кодом или другими языками, такими как Lua, JavaScript и Python.
  • Поддержка некоторых функций, которые не поддерживает il2cpp, таких как __makeref, __reftype и __refvalue.
  • Поддержка инновационной технологии дифференциального гибридного выполнения (DHE), которая позволяет произвольно добавлять и удалять функции в AOT dll, разумно запуская неизменённые функции в режиме AOT и новые или изменённые функции в интерпретируемом режиме, позволяя логике игры с горячим обновлением достичь производительности, близкой к уровню нативного AOT.
  • Поддержка технологии горячей перезагрузки, позволяющей полностью выгружать сборки.
  • Поддержка современных технологий шифрования dll для эффективной защиты кода.

Поддерживаемые версии и платформы

  • Поддерживает серии LTS 2019.4.x, 2020.3.x, 2021.3.x, 2022.3.x, 2023.2.x и 6000.0.x.
  • Поддерживает все платформы, поддерживающие il2cpp.
  • Поддерживает движок Unity и платформу HarmonyOS.

Принцип работы

HybridCLR вдохновлён технологией смешанного выполнения mono mixed mode execution и предоставляет интерпретатор для il2cpp и других AOT сред выполнения, превращая их из чистых AOT во «AOT + Interpreter».

Конкретно говоря, HybridCLR выполняет следующие задачи:

  • Реализует высокоэффективный анализатор метаданных (dll).
  • Модифицирует модуль управления метаданными для динамической регистрации метаданных.
  • Создаёт компилятор набора инструкций IL в набор инструкций пользовательского регистра.
  • Реализует эффективный интерпретатор регистра.
  • Предоставляет большое количество встроенных функций для повышения производительности интерпретатора.

Стабильность

HybridCLR широко признан как высокоэффективное и стабильное решение для горячего обновления в Unity, которое может удовлетворить требования стабильности и производительности крупных и средних коммерческих проектов.

В настоящее время существует тысячи коммерческих игровых проектов, использующих HybridCLR, более тысячи из которых уже выпущены в App Store и Google Player, и около сотни из них входят в топ-500 бесплатных игр iOS. Эти выпущенные проекты включают MMORPG, интенсивные карточные игры и интенсивные игры Tower Defense. Большинство ведущих отечественных игровых компаний уже используют HybridCLR.

Вы можете просмотреть список известных компаний, использующих HybridCLR и уже выпущенных проектов здесь.

Поддержка и связь

  • Официальная группа 1: 651188171 (полная).
  • Новая группа 1: 428404198 (полная).
  • Новая группа 2: 680274677 (рекомендуется).
  • Канал Discord: https://discord.gg/BATfNfJnm2.
  • Коммерческий почтовый ящик: business#code-philosophy.com.
  • Коммерческая поддержка.

Об авторе

walon: Code Philosophy (Код философии) основатель.

Выпускник физического факультета Университета Цинхуа, золотой призёр CMO 2006 года, член национальной тренировочной команды по математике, рекомендован для поступления в базовый класс физики Университета Цинхуа. Он специализируется на игровых технологиях и хорош в разработке архитектуры и базовых технологических платформ.

Лицензия

HybridCLR лицензирован под лицензией MIT.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/focus-creative-games-hybridclr.git
git@api.gitlife.ru:oschina-mirror/focus-creative-games-hybridclr.git
oschina-mirror
focus-creative-games-hybridclr
focus-creative-games-hybridclr
main