资讯动态

ET 框架实战指南:单进程搭起分布式 Unity 游戏服务器

发布时间:2026/9/17 7:31:12 来源:尧图企业网站定制
ET 框架实战指南单进程搭起分布式 Unity 游戏服务器【免费下载链接】ETUnity3D Client And C# Server Framework项目地址: https://gitcode.com/GitHub_Trending/et/ETET 框架是一套 Unity 3D 客户端与 C# 服务端共享代码的开源游戏开发框架同时覆盖状态同步与帧同步两类联机模式。它最实用的一点是让全部服务器组件先跑在一个进程里完成开发和调试发布时再拆成多进程部署。![ET 框架帧同步 Demo 的加载画面](https://raw.gitcode.com/GitHub_Trending/et/ET/raw/5cab01f7a8bee5f49f4781eebe9e2b1c6d7ebe0f/Packages/cn.etetet.lockstep/Assets/GameRes/Loading/Sprites/Warrior_Background2 1.png?utm_sourcegitcode_repo_files)ET 仓库自带帧同步lockstepDemo加载界面资源 分布式服务端开发的三个老问题传统分布式游戏服务端要同时拉起登录服、网关服、战斗服、聊天服一堆进程启动慢不说想单步调试几乎做不到找问题基本只能靠翻日志。功能越来越多时还会遇到搬家问题比如聊天功能原先挂在中心服后来想拆成独立服务牵动的迁移代码一大片。ET 的做法是把每个服务端功能做成独立组件。开发时把全部组件挂进同一个进程发布时换一份多进程配置不同服务器挂载不同组件拆分几乎不用改代码。 设计思路拆解一切皆组件数据是数据逻辑是逻辑组件化指把游戏里的玩家、怪物、场景拆成实体Entity可理解为游戏里的对象和挂在上面的组件Component即对象携带的一块数据。和 Unity 的 GameObject 思路一致玩家实体上可以同时挂网络、属性、技能等组件随意组合。组件本身只放数据不放方法所有逻辑写成扩展方法放在热更 DLL 里。数据和行为分离也为后面的热更新打下了基础。单进程模拟整个分布式服务器开发阶段把所有类型的服务器组件挂在同一个进程上这一个进程就具备整套分布式服务器的能力可以直接单步调试整条链路。上线时把一份配置拆成多进程登录、网关、战斗各挂各的组件。N 变 1 做开发1 变 N 做部署。C# 跨平台Windows 上写Linux 上跑服务端用 C# 加 .NET Core 开发.NET Core 是跨平台运行时同一份代码能在不同操作系统上运行。日常在 Windows 上用 Rider 写代码、断点调试部署到 Linux 只需装好 .NET 运行时代码一行不改。仓库还带了代码同步脚本可以把代码推到 Linux 机器上再编译启动。 三步跑通 Demo准备环境安装 Rider 2024.3 或更高版本安装最新 .NET 8 SDKmacOS 用 Homebrew 装 .NET 8 和 PowerShell 7使用 Unity 6000.0.25。克隆并初始化克隆仓库git clone https://gitcode.com/GitHub_Trending/et/ET在项目根目录执行pwsh ./Scripts/Initialize-Project.ps1完成初始化。用 Unity Hub 的 Open 打开 ET 文件夹并在 Edit → Preferences → External Tools 里把脚本编辑器设为 Rider。编译与运行编译完整的 ET.sln 解决方案需能正常下载 NuGet 包打开 Init 场景点 Play即可体验客户端与服务器同进程的集成运行也可以走 ET → StateSync → Init或 ET → LockStep → Init安装对应 Demo 包再通过 ET → Loader → Server Tools 独立启动服务器进程。遇到问题时优先查看 ET/Logs 目录里的 Error 日志运行指南中列了常见的出错原因比如中文目录、缺 .NET 8、服务端工程没编译全等。 进阶能力不停服的热更新服务端沿用守望先锋式热更设计组件里只有数据方法全部在热更 DLL 中运行时重新加载 DLL 就能更新全部逻辑不用重启服务器。开发中改完代码直接热重载Unity 菜单 ET → Reload或按 F7进程不关。客户端走 HybridCLR 的 C# 热更路线协议、配置、UI 等逻辑都可以进热更包发布后随时打补丁。TCP、ENet、KCP 多协议切换网络层不只支持 TCP还支持可靠 UDP 协议的 ENet 与 KCP底层同时可用 TCP 和 WebSocket 兜底UDP 联不通时可运行时动态切换玩家不掉线。框架作者实测过丢包率 5% 时 TCP 下的 MOBA 手感已经明显变差而 ENet 在丢包 20% 时依然不卡。KCP 属于可靠 UDP 协议注意要自己加心跳否则 20 秒收不到包服务端会断开连接。内置 AI 框架框架自带 AI 框架包含行为树等常见实现写 AI 的流程被简化到接近写 UI。行为树相关能力沉淀在 Packages/cn.etetet.behaviortree/ 包中支持 Unity 编辑器内可视化编辑与运行调试。 真实表现商业 MMO《千古风流》基于 ET 从零开发64 核 128G 内存的单物理机单服承载 1.5W 在线线上为生态考虑把单服限制在 6000 人此时 CPU 占用约 30%。线上当时跑的是 Debug 版本若换 Release 版本并开启优化性能还能翻倍单物理机可达 3W 在线。该项目上线 5 个月运行稳定。 继续深入仓库的 Book 目录是框架自带的文档体系按主题分章Book/1.1运行指南.md环境搭建与运行步骤Book/4.1组件式设计.md组件化架构详解Book/5.4Actor模型.md分布式通信的 Actor 消息机制Book/6.1AI框架.mdAI 框架总览Book/6.2AI框架-行为机.md行为机的实现与应用如果你是想独立做 MMO 的开发者或者需要一套前后端共享代码的联机方案这套框架值得完整过一遍状态同步与帧同步两条路线都有现成 DemoC# 服务端的学习成本也不高上手后可以按自己的项目逐步替换 Demo 逻辑。【免费下载链接】ETUnity3D Client And C# Server Framework项目地址: https://gitcode.com/GitHub_Trending/et/ET创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价