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

OSCHINA-MIRROR/focus-creative-games-hybridclr

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README_EN.md

HybridCLR

license

logo

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

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

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

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

Документация

Особенности

  • Почти полная реализация спецификации ECMA-335, за исключением небольшого количества неподдерживаемых функций.
  • Нулевые затраты на обучение и использование. Для большинства разработчиков написание кода почти не ограничено. Код горячего обновления работает без проблем с кодом AOT, позволяя наследовать, использовать дженерики, отражение и другой код без дополнительного специального кода или генерации кода.
  • Полная поддержка многопоточности, включая volatile, ThreadStatic, async Task и связанные функции и характеристики. Это не поддерживается никакими другими решениями для горячего обновления.
  • Практически полная совместимость с рабочим процессом Unity. Это включает поддержку горячего обновления MonoBehaviour, ScriptableObject, технологии DOTS и корректную инициализацию скриптов горячего обновления, смонтированных на ресурсах, что не поддерживается никаким другим решением для горячего обновления.
  • Эффективное выполнение. Реализован высокоэффективный интерпретатор регистров со всеми показателями, значительно превосходящими другие решения для горячего обновления. Отчёт о тестировании производительности.
  • Эффективное использование памяти. Классы, определённые в скриптах горячего обновления, занимают то же пространство памяти, что и обычные классы C#, что намного превосходит другие решения для горячего обновления. Отчёт об использовании памяти.
  • Поддерживает MonoPInvokeCallback, обеспечивая хорошее взаимодействие с нативным кодом или другими языками, такими как Lua, JavaScript, Python.
  • Поддерживает некоторые функции, не поддерживаемые il2cpp, такие как __makeref, __reftype, __refvalue инструкции.
  • Поддерживает уникальную технологию Differential Hybrid Execution (DHE), которая позволяет произвольно добавлять, удалять и изменять DLL AOT. Она разумно запускает неизменные функции в режиме AOT и изменённые или вновь добавленные функции в режиме интерпретатора, приближая производительность логики игры с горячим обновлением к производительности нативного AOT.
  • Поддерживает технологию горячей перезагрузки, позволяя полностью выгружать сборки.
  • Поддерживает современную технологию шифрования DLL для эффективной защиты безопасности кода.

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

  • Поддерживаются все LTS-версии, включая 2019.4.x, 2020.3.x, 2021.3.x, 2022.3.x и 2023.2.x. 6000.0.x.

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

Поддерживает движок Tuanjie (Китай) и платформу HarmonyOS.

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

HybridCLR вдохновлён технологией смешанного выполнения Mono, предоставляя модуль интерпретатора для сред AOT, таких как il2cpp от Unity, превращая их из чистых сред AOT в гибридные режимы работы «AOT + Интерпретатор».

icon

В частности, HybridCLR сделал следующее:

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

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

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

На данный момент тысячи коммерческих игровых проектов интегрировали HybridCLR, более тысячи уже запущены в App Store и Google Play. Почти сотня из 500 лучших бесплатных игр для iOS используют HybridCLR, включая 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 )

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

Введение

HybridCLR — это решение для горячего обновления Unity C# с нулевыми затратами и высокой производительностью. Развернуть Свернуть
C++ и 2 других языков
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
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