# [English](https://github.com/egametang/Egametang/blob/master/README-EN.md)
# __讨论QQ群 : 474643097__
# [ET论坛](https://et-framework.cn)
# ET6 发布!ET6相比ET5有巨大变化,可以说是凤姐变亦菲,6.0拥有如下惊人的特点
1. 客户端逻辑全热更新(基于ILRuntime),没有不能更的部分
2. 客户端服务端均可热重载,开发不用重启客户端服务端即可修改逻辑代码,开发极其方便
2. 机器人框架,方便压测服务端
3. 测试用例框架,方便编写服务端测试用例
4. AI框架,写AI比写UI还简单
5. 新的服务端架构,极其优美
6. 内外网kcp网络,性能强劲
# ET开发的商业mmo项目千古风流成功上线,64核128G内存的单服单物理机1.5W在线(实际线上策划为了生态限制为单服6000人同时在线,6000人的话cpu消耗约为30%)。为了堆栈行号正常,线上跑得是Debug版,如果使用Release版开启优化,性能还能翻一倍,达到单物理机3W在线!上线两个月来十分稳定。千古风流使用了ET框架从零开发,用时两年,这个开发速度可以说无人出其右。千古风流的成功上线证明了ET具备开发任何大型游戏的能力,开发速度,开发效率都令人叹为观止!千古风流使用到的客户端服务器技术:
1. 动态副本跟分线,按需分配,用完回收
2. 分线合线,分线人数较少会把多条线合并。合线功能基本上其它mmo游戏很少见到
3. 客户端服务端场景无缝切换,也就是无缝大世界技术
4. 跨服副本,跨服战场
5. 前后端一体化,利用客户端代码开发服务器压测机器人,4台24核机器轻松模拟1W人做任务
6. 千古风流各种ai设计,使用ET的全新开发的ai框架,使ai开发简单到跟写ui一样简单
7. 测试用例框架,大部分重要系统,千古风流都写了测试用例,跟市面上的测试用例不同,每个千古风流的测试用例都是一个完整的游戏环境,针对协议级别,不需要搞各种接口去mock。写起来非常快速。
8. 九宫格的aoi实现,动态调整看见的玩家,降低服务器负载
9. 防攻击,千古风流开发了软路由功能,即使攻击也只能攻击到软路由,一旦被攻击,玩家客户端发现几秒钟无响应,即可动态切换到其它软路由,用户几乎无感知。整个过程客户端网络连接不断开,数据不丢失。
10. 还有很多很多,这里就不啰嗦了
# ET的介绍:
ET是一个开源的游戏客户端(基于unity3d)服务端双端框架,服务端是使用C# .net core开发的分布式游戏服务端,其特点是开发效率高,性能强,双端共享逻辑代码,客户端服务端热更机制完善,同时支持可靠udp tcp websocket协议,支持服务端3D recast寻路等等
# ET的功能:
### 1.可用VS单步调试的分布式服务端,N变1
一般来说,分布式服务端要启动很多进程,一旦进程多了,单步调试就变得非常困难,导致服务端开发基本上靠打log来查找问题。平常开发游戏逻辑也得开启一大堆进程,不仅启动慢,而且查找问题及其不方便,要在一堆堆日志里面查问题,这感觉非常糟糕,这么多年也没人解决这个问题。ET框架使用了类似守望先锋的组件设计,所有服务端内容都拆成了一个个组件,启动时根据服务器类型挂载自己所需要的组件。这有点类似电脑,电脑都模块化的拆成了内存,CPU,主板等等零件,搭配不同的零件就能组装成一台不同的电脑,例如家用台式机需要内存,CPU,主板,显卡,显示器,硬盘。而公司用的服务器却不需要显示器和显卡,网吧的电脑可能不需要硬盘等。正因为这样的设计,ET框架可以将所有的服务器组件都挂在一个服务器进程上,那么这个服务器进程就有了所有服务器的功能,一个进程就可以作为整组分布式服务器使用。这也类似电脑,台式机有所有的电脑组件,那它也完全可以当作公司服务器使用,也可以当作网吧电脑。
### 2.随意可拆分功能的分布式服务端,1变N
分布式服务端要开发多种类型的服务器进程,比如Login server,gate server,battle server,chat server friend server等等一大堆各种server,传统开发方式需要预先知道当前的功能要放在哪个服务器上,当功能越来越多的时候,比如聊天功能之前在一个中心服务器上,之后需要拆出来单独做成一个服务器,这时会牵扯到大量迁移代码的工作,烦不胜烦。ET框架在平常开发的时候根本不太需要关心当前开发的这个功能会放在什么server上,只用一个进程进行开发,功能开发成组件的形式。发布的时候使用一份多进程的配置即可发布成多进程的形式,是不是很方便呢?随便你怎么拆分服务器。只需要修改极少的代码就可以进行拆分。不同的server挂上不同的组件就行了嘛!
### 3.跨平台的分布式服务端
ET框架使用C#做服务端,现在C#是完全可以跨平台的,在linux上安装.netcore,即可,不需要修改任何代码,就能跑起来。性能方面,现在.netcore的性能非常强,比lua,python,js什么快的多了。做游戏服务端完全不在话下。平常我们开发的时候用VS在windows上开发调试,发布的时候发布到linux上即可。ET框架还提供了一键同步工具,打开unity->tools->rsync同步,即可同步代码到linux上
```bash
./Run.sh Config/StartConfig/192.168.12.188.txt
```
即可编译启动服务器。
### 4.提供协程支持
C#天生支持异步变同步语法 async和await,比lua,python的协程强大的多,新版python以及javascript语言甚至照搬了C#的协程语法。分布式服务端大量服务器之间的远程调用,没有异步语法的支持,开发将非常麻烦。所以java没有异步语法,做单服还行,不适合做大型分布式游戏服务端。例如:
```c#
// 发送C2R_Ping并且等待响应消息R2C_Ping
R2C_Ping pong = await session.Call(new C2R_Ping()) as R2C_Ping;
Log.Debug("收到R2C_Ping");
// 向mongodb查询一个id为1的Player,并且等待返回
Player player = await Game.Scene.GetComponent<DBProxyComponent>().Query<Player>(1);
Log.Debug($"打印player name: {player.Name}")
```
可以看出,有了async await,所有的服务器间的异步操作将变得非常连贯,不用再拆成多段逻辑。大大简化了分布式服务器开发
### 5.提供类似erlang的actor消息机制
erlang语言一大优势就是位置透明的消息机制,用户完全不用关心对象在哪个进程,拿到id就可以对对象发送消息。ET框架也提供了actor消息机制,实体对象只需要挂上MailBoxComponent组件,这个实体对象就成了一个Actor,任何服务器只需要知道这个实体对象的id就可以向其发送消息,完全不用关心这个实体对象在哪个server,在哪台物理机器上。其实现原理也很简单,ET框架提供了一个位置服务器,所有挂载MailBoxComponent的实体对象都会将自己的id跟位置注册到这个位置服务器,其它服务器向这个实体对象发送消息的时候如果不知道这个实体对象的位置,会先去位置服务器查询,查询到位置再进行发送。
### 6.提供服务器不停服动态更新逻辑功能
热更是游戏服务器不可缺少的功能,ET框架使用的组件设计,可以做成守望先锋的设计,组件只有成员,无方法,将所有方法做成扩展方法放到热更dll中,运行时重新加载dll即可热更所有逻辑。
### 7.客户端使用C#热更新,热更新一键切换
可以使用csharp.lua或者ILRuntime稍加改造即可做客户端热更。再也
没有合适的资源?快使用搜索试试~ 我知道了~
ET-6.0服务器双端框架正式版.zip
共1623个文件
cs:800个
meta:629个
asset:26个
需积分: 15 4 下载量 29 浏览量
2021-11-30
09:52:09
上传
评论
收藏 34.33MB ZIP 举报
温馨提示
ET框架为c#编写的游戏双端框架,有千古风流主程熊猫原创,该框架集成热更新,AI框架等功能。与unity配合使用可使游戏开发事半功倍!
资源推荐
资源详情
资源评论
收起资源包目录
ET-6.0服务器双端框架正式版.zip (1623个子文件)
libkcp.a 58KB
Unity.Editor.asmdef 395B
Unity.Mono.asmdef 390B
Unity.ThirdParty.asmdef 323B
LightingData.asset 23KB
ProjectSettings.asset 21KB
NavMeshLayers.asset 9KB
QualitySettings.asset 6KB
InputManager.asset 6KB
GraphicsSettings.asset 2KB
Physics2DSettings.asset 1KB
MemorySettings.asset 1KB
EditorSettings.asset 1KB
UnityConnectSettings.asset 1005B
PackageManagerSettings.asset 1002B
NavMeshAreas.asset 884B
EditorUserSettings.asset 851B
DynamicsManager.asset 661B
ETBuildSettings.asset 498B
TagManager.asset 387B
EditorBuildSettings.asset 342B
AutoStreamingSettings.asset 331B
AudioManager.asset 328B
VFXManager.asset 273B
VersionControlSettings.asset 188B
TimeManager.asset 168B
XRSettings.asset 158B
NetworkManager.asset 151B
PresetManager.asset 120B
ClusterInputManager.asset 114B
win_startExcelExport.bat 60B
win_startProtoExport.bat 55B
solo_navmesh.bin 19KB
solo_navmesh.bin 19KB
StartSceneConfigCategory.bytes 150B
StartSceneConfigCategory.bytes 150B
StartZoneConfigCategory.bytes 58B
AIConfigCategory.bytes 58B
StartZoneConfigCategory.bytes 58B
AIConfigCategory.bytes 58B
UnitConfigCategory.bytes 49B
UnitConfigCategory.bytes 49B
StartProcessConfigCategory.bytes 35B
StartProcessConfigCategory.bytes 35B
StartMachineConfigCategory.bytes 33B
StartMachineConfigCategory.bytes 33B
ikcp.c 32KB
cwrsync.cmd 2KB
rsyncd.conf 227B
.tmux.conf 78B
NLog.config 6KB
App.config 237B
boot.config 0B
SkeletonController.controller 4KB
CRecastHelper.cpp 15KB
MyTest.cpp 5KB
RecastDll.cpp 2KB
tools.cpp 1KB
HotfixFlags.cpp 959B
ILIntepreter.cs 290KB
MetaType.cs 91KB
RuntimeTypeModel.cs 91KB
TypeModel.cs 77KB
Matrix4x4.cs 72KB
ET_ETAsyncTaskMethodBuilder_Binding.cs 58KB
ProtoReader.cs 57KB
CompilerContext.cs 57KB
AppDomain.cs 56KB
ET_ETAsyncTaskMethodBuilder_1_ILTypeInstance_Binding.cs 52KB
DebugService.cs 51KB
CLRRedirections.cs 49KB
ET_AsyncETVoidMethodBuilder_Binding.cs 43KB
ProtoWriter.cs 42KB
ILType.cs 42KB
BindingCodeGenerator.cs 41KB
Quaternion.cs 41KB
JsonMapper.cs 38KB
ValueMember.cs 37KB
OpCodeEnum.cs 35KB
DelegateAdapter.cs 33KB
MethodBindingGenerator_old.cs 32KB
MethodBindingGenerator.cs 32KB
TypeSerializer.cs 31KB
CLRType.cs 31KB
UncheckedList.cs 31KB
BclHelpers.cs 30KB
CrossBindingCodeGenerator.cs 27KB
Serializer.cs 27KB
NavMeshExporter.cs 27KB
ILTypeInstance.cs 27KB
ILMethod.cs 26KB
Entity.cs 25KB
JsonData.cs 25KB
CrossBindingMethodInfo.cs 24KB
ListDecorator.cs 24KB
Vector3.cs 24KB
Helpers.cs 24KB
BindingGeneratorExtensions.cs 24KB
DiscriminatedUnion.cs 24KB
Lexer.cs 23KB
共 1623 条
- 1
- 2
- 3
- 4
- 5
- 6
- 17
资源评论
高枫@向前冲
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功