English: please use your browser to translate to english
讨论QQ群 : 474643097 (已满) 新手请加新手群:688514974
公司黑名单:
成都三猩元宇宙公司,拖欠员工工资,拖欠本人咨询费用
商业项目(已出现多个一个人开发的MMO上线,足以证明ET的强大):
- 千古风流 大型mmo,团队100人2年开发完成
- 神选誓约
- 危境 一个技术一个策划开发的mmo,抖音可以搜索危境看直播
- 魔力回忆 许木大厨一个人开发的魔力宝贝
- 新生 steam上,一个人开发的科幻mmo
- 怒斩屠龙之乾坤剑指 传奇项目
- 魔法点点2 一个人开发
- 养不大
- 天天躲猫猫2(ios2019春节下载排行19)
- 牛虎棋牌
- 五星麻将
- 代号肉鸽:无限 一个人开发
- 卡车人生
- 掌门太闲 一个人开发
- 万世镜
- Culture & Chest
- 史莱姆大乱斗
- 魔灵幻想 一个技术
- Tank Clash: Blitz!
- 黑山之巅
ET9.0 发布!(西施)
- ET9改成了Package模式,任何功能可以制作成ET Package放到ET Package中心,用户能极其简单的集成到自己项目中。制作package请看上面的制作指南
- ETTask实现了传递上下文功能,可以去掉烦人的CancellationToken传递 感谢 花语梦蝶 提出的的新思路
- Entity简化,去掉了ChildrenDB跟ComponentDB,自定义序列化SortedDictionary,可以指定某个Child或者Componet跟不跟随Parent序列化
- Kcp改成非托管内存分配,GC更少,感谢 Molth 提交的代码
- LICENSE更改了,为了保证让的大家修改的代码所有人都能方便的使用,ET9使用了新的LICENSE,具体请看LICENSE文件
- YIUI Package 感谢亦亦开发
- FGUI Package 感谢IcePower开发
ET Packages
ET Packages制作指南
ET论坛
ET视频教程
运行指南
分析器说明
熊猫的三门课程,需要请加QQ 80081771:
- 网络游戏架构设计 基于ET7.2,共27集,讲解ET7.2的框架设计细节
- 帧同步设计 基于ET8,共12集,讲解预测回滚帧同步设计
- 多线程架构设计 基于ET8,共11集,讲解ET8的多线程设计
- WebGL小游戏框架,基于ET8,完善的网络,配置,热更等等,跟ET8使用一样
ET8.1 发布!
8.1跟8区别不大,代码结构完全没有变化,主要是编译方式的修改,可以在Unity中按F6进行编译,也可以在IDE中进行编译,运行中reload可以先按F6编译,再按F7进行热重载
ET8 发布! 貂蝉
- 多线程多进程架构,架构更加灵活强大,多线程设计详细内容请看多线程设计课程
- 抽象出纤程(Fiber)的概念,类似erlang的进程,非常轻松的创建多个纤程,利用多核,仍然是单线程开发的体验
- 纤程调度: 主线程,线程池,每个纤程一个线程,3种调度方式
- Fiber间通信的Actor消息机制
- Entity方面,domain改成IScene,只要实现IScene接口,Entity就是domain,这样定义domain更加自由
- 预测回滚的帧同步实现 想详细了解可以看帧同步课程
- protobuf换成了memorypack,实现无gc的网络
- 纯C#版的kcp库,性能非常强,由sj提交
- 热更dll改成用ide编译,更加方便
- sj利用source generater实现了代码自动模板功能,目前可以自动生成System类,开发者只需要定义Awake Update静态方法即可,特别方便
- sj开发了分析器,实现了EntitySystemOf,根据entity接口一键生成对应的system方法
- 客户端利用fiber实现网络独立线程(demo已实现),甚至可以把逻辑跟表现使用独立的纤程,更好的利用多核
- 帧同步demo直接利用纤程创建房间,更加方便
- 纯c#版寻路dotrecast,至此ET已经完全C#化,没有任何cpp代码了
- kcp跟软路由底层同时支持tcp跟websocket,当udp联不通的情况下,可以切换成tcp Websocket,并且支持运行时动态切换,玩家不掉线!
- 集成了sj的非托管容器库,性能爆炸
用ET的18个理由
- 多进程多线程Actor架构,客户端跟服务端都可以轻松创建纤程(fiber)利用多核,比如客户端网络一个纤程,寻路一个纤程,帧同步逻辑层一个纤程,表现层一个纤程
- async await协程同步代码编写,避免回调地狱
- 0GC消耗,超强的MemoryPack序列化, 超强的网络层性能
- kcp支持,网络响应非常迅速,并且闪断wifi 4g都不会导致掉线,做竞技游戏必备
- kcp底层可以使用tcp udp Websocket协议,当udp联不通的情况下,可以切换成tcp Websocket,并且支持运行时动态切换,玩家不掉线!
- 软路由防攻击设计,买些垃圾主机就可以防住黑客攻击,比买高防省钱多了,并且用户不会掉线
- 双端C#开发,前后端共享代码,C#本身性能极强,仅次于CPP,不需要学一些乱起八糟的语言,很多独立游戏开发者,一个人就能用ET开发mmorpg游戏
- 强大的编译分析器,编译器就能帮助大家写出正确的ET风格的代码
- 客户端hybridclr热更新支持
- 客户端服务端均支持运行时热重载,客户端服务端不需要关闭进程就能修改代码,大大提升了开发效率以及运营效率
- 完善的demo,源码带有状态同步跟预测回滚的帧同步demo
- 完善的机器人开发机制,机器人直接共享客户端逻辑代码,减少95%机器人开发工作量,接入ai机器人非常轻松。大规模机器人压测,轻而易举
- 强大的ai开发机制,比行为树更加容易
- 强大的单元测试开发机制,每个单元测试都是整个游戏环境,不用搞mock隔离,开发起来非常轻松
- 优美的程序结构,数据跟方法完全分离
- all in one的开发体验,开发时只需要启动unity,发布的时候又可以单独发布服务端,并且可以跨windows跟linux平台
- 客户端服务端数据开发期完全可视化,开启ENABLE_VIEW宏即可在Unity Hierarchy面板中看到客户端跟服务端的所有的Entity对象以及字段的内容
- WebGL以及微信小游戏支持,有ET8的webgl版本,开发体验跟ET8完全一致,无缝对接ET8的服务器
Benchmark
100W Ping Pong 平均耗时4秒左右,平均每秒收发20W的消息。这个网络性能远远超过主线程的需求,大家可以自己测试一下,测试方法:
Unity Menu->ServerTools select Benchmark, Start Watcher。然后在Logs目录,打开Debug日志等一会所有连接完成就能看到下面的日志了。
2022-12-02 22:19:48.9837 (C2G_BenchmarkHandler.cs:13) benchmark count: 1000001
2022-12-02 22:19:53.4621 (C2G_BenchmarkHandler.cs:13) benchmark count: 2000001
2022-12-02 22:19:57.0416 (C2G_BenchmarkHandler.cs:13) benchmark count: 3000001
2022-12-02 22:20:00.6186 (C2G_BenchmarkHandler.cs:13) benchmark count: 4000001
2022-12-02 22:20:04.1384 (C2G_BenchmarkHandler.cs:13) benchmark count: 5000001
2022-12-02 22:20:08.2236 (C2G_BenchmarkHandler.cs:13) benchmark count: 6000001
2022-12-02 22:20:12.2842 (C2G_BenchmarkHandler.cs:13) benchmark count: 7000001
2022-12-02 22:20:15.8544 (C2G_BenchmarkHandler.cs:13) benchmark count: 8000001
2022-12-02 22:20:19.4085 (C2G_BenchmarkHandler.cs:13) benchmark count: 9000001
2022-12-02 22:20:24.2969 (C2G_BenchmarkHandler.cs:13) benchmark count: 10000001
2022-12-02 22:20:41.1448 (C2G_BenchmarkHandler.cs:13) benchmark count: 11000001
2022-12-02 22:20:44.7174 (C2G_BenchmarkHandler.cs:13) benchmark count: 12000001
2022-12-02 22:20:48.3188 (C2G_BenchmarkHandler.cs:13) benchmark count: 13000001
2022-12-02 22:20:51.7793 (C2G_BenchmarkHandler.cs:13) benchmark count: 14000001
2022-12-02 22:20:55.3379 (C2G_BenchmarkHandler.cs:13) benchmark count: 15000001
2022-12-02 22:20:58.8810 (C2G_BenchmarkHandler.cs:13) benchmark count: 16000001
2022-12-02 22:21:02.5156 (C2G_BenchmarkHandler.cs:13) benchmark count: 17000001
2022-12-02 22:21:06.0132 (C2G_BenchmarkHandler.cs:13) benchmark count: 18000001
2022-12-02 22:21:09.5320 (C2G_BenchmarkHandler.cs:13) benchmark count: 19000001
ET7 发布! 18岁亦菲
- 调整结构,机器人工程与服务器合并,更易使用,一个进程同时可以做server,也能创建机器人,真正的ALL IN ONE! -- 已实现
- 客户端跟服务端合并,服务端代码全部放在了客户端,客户端中可以带一个服务端,开发超级方便,服务端发布的时候可以选择发布成Dotnet也可以发布成UnityServer,终极All IN ONE -- 已实现
- Entity可视化,客户端跟服务端所有的Entity都实现了可视化,开启ENABLE_CODES宏,运行游戏,查看Hierarchy面板,展开Init/Global/Scene(Process)即可看到 -- 已实现
- 因为所有代码都在Unity中,所以开发ET插件变得非常容易,直接使用Unity导入导出即可 -- 已实现
- 增加软路由,可以防各种网络攻击而不影响正常玩家,网游必备!-- 已实现