[change] 更新README和LICENSE

main
walon 2023-09-09 19:52:13 +08:00
parent 7270e9194d
commit 1168d51e93
3 changed files with 31 additions and 39 deletions

View File

@ -1,6 +1,6 @@
MIT License MIT License
Copyright (c) 2022 focus creative games Copyright (c) 2023 Code Philosophy Technology Ltd.
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

@ -1,12 +1,9 @@
- [README 中文](./README_zh.md) - [README 中文](./README_zh.md)
- [README English](./README.md) - [README English](./README.md)
# HybridCLR # HybridCLR
Unity Package for HybridCLR
[![license](http://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/focus-creative-games/hybridclr/blob/main/LICENSE) [![license](http://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/focus-creative-games/hybridclr/blob/main/LICENSE)
![logo](https://github.com/focus-creative-games/hybridclr/raw/main/docs/images/logo.jpg) ![logo](https://github.com/focus-creative-games/hybridclr/raw/main/docs/images/logo.jpg)
@ -14,13 +11,11 @@ Unity Package for HybridCLR
<br/> <br/>
<br/> <br/>
HybridCLR is the excellent work of **Code Philosophy** company. We hope to profoundly change the entire industry through our ingenuity and help game teams make better games. HybridCLR is a **almost perfect** full-platform native c# hot update solution for Unity with complete features, zero cost, high performance, and low memory**.
HybridCLR is a **almost perfect** full-platform native c# hot update solution for Unity with complete features, zero cost, high performance, and low memory.
HybridCLR expands the ability of il2cpp, making it change from pure [AOT](https://en.wikipedia.org/wiki/Ahead-of-time_compilation) runtime to 'AOT+Interpreter' hybrid runtime, and then natively supports dynamic loading of assembly , so that the games packaged based on il2cpp backend can be executed not only on the Android platform, but also on IOS, Consoles and other platforms that limit JIT efficiently in **AOT+interpreter** hybrid mode, completely supporting hot updates from the bottom layer. HybridCLR expands the ability of il2cpp, making it change from pure [AOT](https://en.wikipedia.org/wiki/Ahead-of-time_compilation) runtime to 'AOT+Interpreter' hybrid runtime, and then natively supports dynamic loading of assembly , so that the games packaged based on il2cpp backend can be executed not only on the Android platform, but also on IOS, Consoles and other platforms that limit JIT efficiently in **AOT+interpreter** hybrid mode, completely supporting hot updates from the bottom layer.
HybridCLR not only supports the traditional fully interpreted execution mode, but also pioneered [Differential Hybrid Execution](https://hybridclr.doc.code-philosophy.com/en/docs/business/ultimate/differentialhybridexecution) technique. That is, you can add, delete, or modify the AOT dll at will, and intelligently make the changed or newly added classes and functions run in interpreter mode, but the unchanged classes and functions run in AOT mode, so that the running performance of the hot-updated game logic basically reaches the original AOT level. HybridCLR not only supports the traditional fully interpreted execution mode, but also pioneered [Differential Hybrid Execution](https://hybridclr.doc.code-philosophy.com/en/docs/business/differentialhybridexecution) technique. That is, you can add, delete, or modify the AOT dll at will, and intelligently make the changed or newly added classes and functions run in interpreter mode, but the unchanged classes and functions run in AOT mode, so that the running performance of the hot-updated game logic basically reaches the original AOT level.
Welcome to embrace modern native C# hot update technology! ! ! Welcome to embrace modern native C# hot update technology! ! !
@ -38,9 +33,9 @@ Welcome to embrace modern native C# hot update technology! ! !
- Memory efficient. The classes defined in the hot update script occupy the same memory space as ordinary c# classes, which is far superior to other hot update solutions. [Memory and GC](https://hybridclr.doc.code-philosophy.com/en/docs/basic/memory) - Memory efficient. The classes defined in the hot update script occupy the same memory space as ordinary c# classes, which is far superior to other hot update solutions. [Memory and GC](https://hybridclr.doc.code-philosophy.com/en/docs/basic/memory)
- Due to the perfect support for generics, libraries that are not compatible with il2cpp due to AOT generics issues can now run perfectly under il2cpp - Due to the perfect support for generics, libraries that are not compatible with il2cpp due to AOT generics issues can now run perfectly under il2cpp
- Support some features not supported by il2cpp, such as __makeref, __reftype, __refvalue directives - Support some features not supported by il2cpp, such as __makeref, __reftype, __refvalue directives
- [Differential Hybrid Execution](https://hybridclr.doc.code-philosophy.com/en/docs/business/ultimate/differentialhybridexecution) - [Differential Hybrid Execution](https://hybridclr.doc.code-philosophy.com/en/docs/business/differentialhybridexecution)
## working principle ## Working Principle
HybridCLR is inspired by mono's [mixed mode execution](https://www.mono-project.com/news/2017/11/13/mono-interpreter/) technology, and provides additional AOT runtimes such as unity's il2cpp The interpreter module is provided to transform them from pure AOT runtime to "AOT + Interpreter" hybrid operation mode. HybridCLR is inspired by mono's [mixed mode execution](https://www.mono-project.com/news/2017/11/13/mono-interpreter/) technology, and provides additional AOT runtimes such as unity's il2cpp The interpreter module is provided to transform them from pure AOT runtime to "AOT + Interpreter" hybrid operation mode.
@ -54,7 +49,7 @@ More specifically, HybridCLR does the following:
- Implemented an efficient register interpreter - Implemented an efficient register interpreter
- Provide a large number of instinct functions to improve the performance of the interpreter - Provide a large number of instinct functions to improve the performance of the interpreter
## The difference from other popular c# hot update schemes ## The Difference From Other C# Hot-Update Solution
HybridCLR is a native c# hot update solution. In layman's terms, il2cpp is equivalent to the aot module of mono, and HybridCLR is equivalent to the interpreter module of mono, and the combination of the two becomes a complete mono. HybridCLR makes il2cpp a full-featured runtime, natively (that is, through System.Reflection.Assembly.Load) supports dynamic loading of dlls, thereby supporting hot updates of the ios platform. HybridCLR is a native c# hot update solution. In layman's terms, il2cpp is equivalent to the aot module of mono, and HybridCLR is equivalent to the interpreter module of mono, and the combination of the two becomes a complete mono. HybridCLR makes il2cpp a full-featured runtime, natively (that is, through System.Reflection.Assembly.Load) supports dynamic loading of dlls, thereby supporting hot updates of the ios platform.
@ -62,36 +57,35 @@ Just because HybridCLR is implemented at the native runtime level, the types of
Other hot update solutions are independent vm, and the relationship with il2cpp is essentially equivalent to the relationship of embedding lua in mono. Therefore, the type system is not uniform. In order to allow the hot update type to inherit some AOT types, an adapter needs to be written, and the type in the interpreter cannot be recognized by the type system of the main project. Incomplete features, troublesome development, and low operating efficiency. Other hot update solutions are independent vm, and the relationship with il2cpp is essentially equivalent to the relationship of embedding lua in mono. Therefore, the type system is not uniform. In order to allow the hot update type to inherit some AOT types, an adapter needs to be written, and the type in the interpreter cannot be recognized by the type system of the main project. Incomplete features, troublesome development, and low operating efficiency.
## Compatibility ## Supported Versions And Platforms
- Support 2019.4.x, 2020.3.x, 2021.3.x, 2022.3.x, 2023.2.x series LTS versions - Support 2019.4.x, 2020.3.x, 2021.3.x, 2022.3.x full series of LTS versions. The `2023.2.0ax` version is also supported, but not released to the public.
- Supports all platforms supported by il2cpp. At present, it has fully supported PC (Win32 and Win64), macOS (x86, x64, Arm64), Android (armv7, armv8), iOS (64bit), WebGL, **WeChat applet platform**, and the remaining platforms are yet to be tested. - Supports all il2cpp supported platforms
- Tested a large number of common game libraries, and did not find a library that is natively compatible with il2cpp but incompatible after using HybridCLR. As long as the library can work under the il2cpp backend, it can work normally under HybridCLR. Even those libraries that are incompatible with il2cpp due to AOT issues can now run normally because of HybridCLR's ability to expand il2cpp.
## Stability Status ## Stability Status
At present, **extremely stable** official versions 1.x, 2.x, and 3.x have been released, which are sufficient to meet the stability requirements of large and medium-sized commercial projects. Since the first game was launched on June 7, 2022, only one small bug occurred in the online project, and it was quickly fixed within a few hours. HybridCLR has been widely verified as a very efficient and stable solution for hot update of Unity.
At present, at least thousands of commercial game projects have completed access, and hundreds of them have been launched on both ends. The online projects include games such as MMORPG, heavy card, and heavy tower defense. The official versions of **extremely stable** 1.x, 2.x, and 3.x are currently released, which are sufficient to meet the stability requirements of large and medium-sized commercial projects.
At present, at least thousands of commercial game projects have been integrated, and hundreds of them have been launched on both ends. The online projects include MMORPG, heavy card, heavy tower defense and other games. **Most top game companies** (such as Tencent and NetEase) are already using HybridCLR.
Most leading companies such as Tencent, NetEase, Baidu, funplus, Perfect, Stacked Paper, and Byte have already connected to multiple projects and will soon (or already) go online. You can read the [game projects in top game companies](https://hybridclr.doc.code-philosophy.com/en/docs/other/businesscase) those are using HybridCLR and has been launched.
## Support and Contact ## Support And Contact
- Official 1 group: 651188171 (full) - Official 1 group: 651188171 (full)
- Novice group 1: 428404198 (full) - Novice QQ group 1: 428404198 (full)
- Novice group 2: **680274677 (recommended)** - Novice QQ group 2: **680274677 (recommended)**
- QQ reward mutual aid group: 762953653. Offer a reward for asking questions and solving problems quickly.
- discord channel [https://discord.gg/BATfNfJnm2](https://discord.gg/BATfNfJnm2) - discord channel [https://discord.gg/BATfNfJnm2](https://discord.gg/BATfNfJnm2)
- Business cooperation email: business@code-philosophy.com - Business cooperation email: business#code-philosophy.com
- [Commercial support](https://hybridclr.doc.code-philosophy.com/en/docs/business/intro) - [Commercial Support](https://hybridclr.doc.code-philosophy.com/en/docs/business/intro)
## About the author ## About The Author
**walon** : Founder of **Code Philosophy (code philosophy)** **walon** : Founder of **Code Philosophy (code philosophy)**
Graduated from the Department of Physics of Tsinghua University, won the CMO gold medal in 2006, a member of the National Mathematical Olympiad Training Team, and was recommended to Tsinghua University for basic courses. Focus on game technology, good at developing architecture and basic technical facilities. Graduated from the Department of Physics of Tsinghua University, won the CMO gold medal in 2006, a member of the National Mathematical Olympiad Training Team, and was recommended to Tsinghua University for basic courses. Focus on game technology, good at developing architecture and basic technical facilities.
## license ## License
HybridCLR is licensed under the [MIT](https://github.com/focus-creative-games/hybridclr/blob/main/LICENSE) license HybridCLR is licensed under the [MIT](https://github.com/focus-creative-games/hybridclr/blob/main/LICENSE) license

View File

@ -10,13 +10,11 @@
<br/> <br/>
<br/> <br/>
HybridCLR是 **Code Philosophy代码哲学** 公司的代表作品,我们希望通过我们的聪明才智深刻地改变整个行业,帮助游戏团队制作出更优秀的游戏。
HybridCLR是一个**特性完整、零成本、高性能、低内存**的**近乎完美**的Unity全平台原生c#热更方案。 HybridCLR是一个**特性完整、零成本、高性能、低内存**的**近乎完美**的Unity全平台原生c#热更方案。
HybridCLR扩充了il2cpp的代码使它由纯[AOT](https://en.wikipedia.org/wiki/Ahead-of-time_compilation) runtime变成AOT+Interpreter 混合runtime进而原生支持动态加载assembly使得基于il2cpp backend打包的游戏不仅能在Android平台也能在IOS、Consoles等限制了JIT的平台上高效地以**AOT+interpreter**混合模式执行,从底层彻底支持了热更新。 HybridCLR扩充了il2cpp的代码使它由纯[AOT](https://en.wikipedia.org/wiki/Ahead-of-time_compilation) runtime变成AOT+Interpreter 混合runtime进而原生支持动态加载assembly使得基于il2cpp backend打包的游戏不仅能在Android平台也能在IOS、Consoles等限制了JIT的平台上高效地以**AOT+interpreter**混合模式执行,从底层彻底支持了热更新。
HybridCLR不仅支持传统的全解释执行模式还开创性地实现了 [Differential Hybrid Execution差分混合执行技](https://hybridclr.doc.code-philosophy.com/docs/business/ultimate/differentialhybridexecution) 差分混合执行技术。即可以对AOT dll任意增删改会智能地让变化或者新增的类和函数以interpreter模式运行但未改动的类和函数以AOT方式运行让热更新的游戏逻辑的运行性能基本达到原生AOT的水平。 HybridCLR不仅支持传统的全解释执行模式还开创性地实现了 [Differential Hybrid Execution差分混合执行技](https://hybridclr.doc.code-philosophy.com/docs/business/differentialhybridexecution) 差分混合执行技术。即可以对AOT dll任意增删改会智能地让变化或者新增的类和函数以interpreter模式运行但未改动的类和函数以AOT方式运行让热更新的游戏逻辑的运行性能基本达到原生AOT的水平。
欢迎拥抱现代原生C#热更新技术 欢迎拥抱现代原生C#热更新技术
@ -34,7 +32,7 @@ HybridCLR不仅支持传统的全解释执行模式还开创性地实现了 [
- 内存高效。 热更新脚本中定义的类跟普通c#类占用一样的内存空间,远优于其他热更新方案。[内存与GC](https://hybridclr.doc.code-philosophy.com/docs/basic/memory) - 内存高效。 热更新脚本中定义的类跟普通c#类占用一样的内存空间,远优于其他热更新方案。[内存与GC](https://hybridclr.doc.code-philosophy.com/docs/basic/memory)
- 由于对泛型的完美支持使得因为AOT泛型问题跟il2cpp不兼容的库现在能够完美地在il2cpp下运行 - 由于对泛型的完美支持使得因为AOT泛型问题跟il2cpp不兼容的库现在能够完美地在il2cpp下运行
- 支持一些il2cpp不支持的特性如__makeref、 __reftype、__refvalue指令 - 支持一些il2cpp不支持的特性如__makeref、 __reftype、__refvalue指令
- [Differential Hybrid Execution差分混合执行技](https://hybridclr.doc.code-philosophy.com/docs/business/ultimate/differentialhybridexecution) - [Differential Hybrid Execution差分混合执行技](https://hybridclr.doc.code-philosophy.com/docs/business/differentialhybridexecution)
## 工作原理 ## 工作原理
@ -58,28 +56,28 @@ HybridCLR是原生的c#热更新方案。通俗地说il2cpp相当于mono的ao
其他热更新方案则是独立vm与il2cpp的关系本质上相当于mono中嵌入lua的关系。因此类型系统不统一为了让热更新类型能够继承AOT部分类型需要写适配器并且解释器中的类型不能为主工程的类型系统所识别。特性不完整、开发麻烦、运行效率低下。 其他热更新方案则是独立vm与il2cpp的关系本质上相当于mono中嵌入lua的关系。因此类型系统不统一为了让热更新类型能够继承AOT部分类型需要写适配器并且解释器中的类型不能为主工程的类型系统所识别。特性不完整、开发麻烦、运行效率低下。
## 兼容性 ## 支持的版本与平台
- 支持2019.4.x、2020.3.x、2021.3.x、2022.3.x、2022.2.x 系列LTS版本 - 支持2019.4.x、2020.3.x、2021.3.x、2022.3.x全系列LTS版本。`2023.2.0ax`版本也已支持,但未对外发布。
- 支持所有il2cpp支持的平台。目前已完善支持 PC(Win32和Win64)、macOS(x86、x64、Arm64)、Android(armv7、armv8)、iOS(64bit)、WebGL、**微信小程序平台**,剩余平台有待测试。 - 支持所有il2cpp支持的平台
- 测试过大量游戏常见库未发现跟il2cpp原生兼容但使用HybridCLR后不兼容性的库。只要能在il2cpp backend下工作的库都可以在HybridCLR下正常工作。甚至那些与il2cpp因为AOT问题不兼容的库现在因为HybridCLR对il2cpp的能力扩充反而可以正常运行了。
## 稳定性状况 ## 稳定性状况
当前已经发布了**极其稳定**的1.x、2.x、3.x正式版本足以满足大中型商业项目的稳定性要求。自2022.6.7上线第一个游戏起线上项目中只发生过一起小bug并且迅速地在几个小时内被修复 HybridCLR已经被广泛验证是非常高效、稳定的Unity热更新解决方案
目前至少有上千个商业游戏项目完成接入其中有几百款已经双端上线上线的项目中包括MMORPG、重度卡牌、重度塔防之类的游戏。 当前发布了**极其稳定**的1.x、2.x、3.x正式版本足以满足大中型商业项目的稳定性要求。
目前至少有上千个商业游戏项目完成接入其中有几百款已经双端上线上线的项目中包括MMORPG、重度卡牌、重度塔防之类的游戏。**绝大多数头部游戏公司**如腾讯、网易都已经在使用HybridCLR。
可查看我们已知的头部公司中使用HybridCLR并且已经上线的[项目列表](https://hybridclr.doc.code-philosophy.com/docs/other/businesscase)。
大多数头部公司如腾讯、网易、百度、funplus、完美、叠纸、字节都已经接入多个项目并且很快要或者已经上线。
## 支持与联系 ## 支持与联系
- 官方1群651188171 - 官方1群651188171
- 新手1群428404198 - 新手1群428404198
- 新手2群**680274677推荐** - 新手2群**680274677推荐**
- QQ悬赏互助群762953653。悬赏提问快速解决问题。
- discord频道 https://discord.gg/BATfNfJnm2 - discord频道 https://discord.gg/BATfNfJnm2
- 商业合作邮箱: business@code-philosophy.com - 商业合作邮箱: business#code-philosophy.com
- [商业化支持](https://hybridclr.doc.code-philosophy.com/docs/business/intro) - [商业化支持](https://hybridclr.doc.code-philosophy.com/docs/business/intro)
## 关于作者 ## 关于作者