ET8.1(一)简介

此系列文章逐个内容讲解ET8.1的新特性。
ET8.1 发布,带来以下新特性:
1. 多线程多进程架构,架构更加灵活强大,多线程设计详细内容请看多线程设计课程  
2. 抽象出纤程(Fiber)的概念,类似erlang的进程,非常轻松的创建多个纤程,利用多核,仍然是单线程开发的体验  
3. 纤程调度: 主线程,线程池,每个纤程一个线程,3种调度方式  
4. Fiber间通信的Actor消息机制  
5. Entity方面,domain改成IScene,只要实现IScene接口,Entity就是domain,这样定义domain更加自由  
6. 预测回滚的帧同步实现  想详细了解可以看帧同步课程  
7. protobuf换成了memorypack,实现无gc的网络  
8. 纯C#版的kcp库,性能非常强,由sj提交  
9. 热更dll改成用ide编译,更加方便,也可以Unity编辑器上按F6进行代码编译运行
10. sj利用source generater实现了代码自动模板功能,目前可以自动生成System类,开发者只需要定义Awake Update静态方法即可,特别方便  
11. sj开发了分析器,实现了EntitySystemOf,根据entity接口一键生成对应的system方法  
12. 客户端利用fiber实现网络独立线程(demo已实现),甚至可以把逻辑跟表现使用独立的纤程,更好的利用多核  
13. 帧同步demo直接利用纤程创建房间,更加方便  
14. 纯c#版寻路dotrecast,至此ET已经完全C#化,没有任何cpp代码了  
15. kcp跟软路由底层同时支持tcp跟websocket,当udp联不通的情况下,可以切换成tcp Websocket,并且支持运行时动态切换,玩家不掉线!  
16. 集成了sj的非托管容器库,性能爆炸  


选用ET开发游戏的18个理由  
1. 多进程多线程Actor架构,客户端跟服务端都可以轻松创建纤程(fiber)利用多核,比如客户端网络一个纤程,寻路一个纤程,帧同步逻辑层一个纤程,表现层一个纤程  
2. async await协程同步代码编写,避免回调地狱  
3. 0GC消耗,超强的MemoryPack序列化, 超强的网络层性能  
4. kcp支持,网络响应非常迅速,并且闪断wifi 4g都不会导致掉线,做竞技游戏必备  
5. kcp底层可以使用tcp udp Websocket协议,当udp联不通的情况下,可以切换成tcp Websocket,并且支持运行时动态切换,玩家不掉线!  
6. 软路由防攻击设计,买些垃圾主机就可以防住黑客攻击,比买高防省钱多了,并且用户不会掉线  
7. 双端C#开发,前后端共享代码,C#本身性能极强,仅次于CPP,不需要学一些乱起八糟的语言,很多独立游戏开发者,一个人就能用ET开发mmorpg游戏  
8. 强大的编译分析器,编译器就能帮助大家写出正确的ET风格的代码  
9. 客户端hybridclr热更新支持  
10. 客户端服务端均支持运行时热重载,客户端服务端不需要关闭进程就能修改代码,大大提升了开发效率以及运营效率  
11. 完善的demo,源码带有状态同步跟预测回滚的帧同步demo  
12. 完善的机器人开发机制,机器人直接共享客户端逻辑代码,减少95%机器人开发工作量,接入ai机器人非常轻松。大规模机器人压测,轻而易举  
13. 强大的ai开发机制,比行为树更加容易  
14. 强大的单元测试开发机制,每个单元测试都是整个游戏环境,不用搞mock隔离,开发起来非常轻松  
15. 优美的程序结构,数据跟方法完全分离  
16. all in one的开发体验,开发时只需要启动unity,发布的时候又可以单独发布服务端,并且可以跨windows跟linux平台  
17. 客户端服务端数据开发期完全可视化,开启ENABLE_VIEW宏即可在Unity Hierarchy面板中看到客户端跟服务端的所有的Entity对象以及字段的内容  
18. WebGL以及微信小游戏支持,有ET8的webgl版本,开发体验跟ET8完全一致,无缝对接ET8的服务器  
 
ET开源地址地址:egametang/ET: Unity3D Client And C# Server Framework (github.com)   qq群:474643097
posted @ 2024-04-01 15:29  Flamesky  阅读(561)  评论(0编辑  收藏  举报