提交 e13b22f7 编写于 作者: T tanghai

ET3.0发布!

上级 3fac9b7b
......@@ -2,6 +2,19 @@
__讨论QQ群 : 474643097__
# ET 3.0发布啦! 3.0是ET非常完善的一个版本,在2.0的基础上增加了如下功能:
1.客户端全热更支持,逻辑,消息,事件,config,UI等等全部可以热更了
2.System改成了事件机制,awake,update,start等system可以在不同模块多次订阅
3.消息去掉了继承结构,其它客户端对接起来,更方便了。
4.增加了初步的Module机制,目录结构更清晰,社区分享代码更方便了。
5.优化了代码,3.0的代码更加清晰,结构更加合理,前后端代码几乎一模一样了
# ET的功能:
### 1.可用VS单步调试的分布式服务端,N变1
一般来说,分布式服务端要启动很多进程,一旦进程多了,单步调试就变得非常困难,导致服务端开发基本上靠打log来查找问题。平常开发游戏逻辑也得开启一大堆进程,不仅启动慢,而且查找问题及其不方便,要在一堆堆日志里面查问题,这感觉非常糟糕,这么多年也没人解决这个问题。ET框架使用了类似守望先锋的组件设计,所有服务端内容都拆成了一个个组件,启动时根据服务器类型挂载自己所需要的组件。这有点类似电脑,电脑都模块化的拆成了内存,CPU,主板等等零件,搭配不同的零件就能组装成一台不同的电脑,例如家用台式机需要内存,CPU,主板,显卡,显示器,硬盘。而公司用的服务器却不需要显示器和显卡,网吧的电脑可能不需要硬盘等。正因为这样的设计,ET框架可以将所有的服务器组件都挂在一个服务器进程上,那么这个服务器进程就有了所有服务器的功能,一个进程就可以作为整组分布式服务器使用。这也类似电脑,台式机有所有的电脑组件,那它也完全可以当作公司服务器使用,也可以当作网吧电脑。
### 2.随意可拆分功能的分布式服务端,1变N
......@@ -32,7 +45,7 @@ erlang语言一大优势就是位置透明的消息机制,用户完全不用
### 7.客户端热更新一键切换
因为ios的限制,之前unity热更新一般使用lua,导致unity3d开发人员要写两种代码,麻烦的要死。之后幸好出了ILRuntime库,利用ILRuntime库,unity3d可以利用C#语言加载热更新dll进行热更新。ILRuntime一个缺陷就是开发时候不支持VS debug,这有点不爽。ET框架使用了一个预编译指令ILRuntime,可以无缝切换。平常开发的时候不使用ILRuntime,而是使用Assembly.Load加载热更新动态库,这样可以方便用VS单步调试。在发布的时候,定义预编译指令ILRuntime就可以无缝切换成使用ILRuntime加载热更新动态库。这样开发起来及其方便,再也不用使用狗屎lua了
### 8.客户端全热更新
客户端可以实现所有逻辑热更新,包括协议
客户端可以实现所有逻辑热更新,包括协议,config,ui等等
### 9.客户端服务端用同一种语言,并且共享代码
下载ET框架,打开服务端工程,可以看到服务端引用了客户端很多代码,通过引用客户端代码的方式实现了双端共享代码。例如客户端服务端之间的网络消息两边完全共用一个文件即可,添加一个消息只需要修改一遍。
### 10.KCP ENET TCP协议无缝切换
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册