GeekServer 项目推荐
项目基础介绍和主要编程语言
GeekServer 是一个开源的分区分服游戏服务器框架,采用 C# 和 .NET Core 开发。它旨在提供高开发效率、强性能和跨平台支持,特别适合与 Unity3D 协同开发游戏服务器。
项目核心功能
- 跨平台支持:基于 .NET Core 开发,支持在 Windows 和 Linux 上部署。
- 全面异步编程:全部采用异步编程(async/await),使逻辑代码整洁优雅,清晰易懂。
- TPL Actor 模型:构建于 TPL DataFlow 之上,增强 Actor 模型的性能。
- Actor 入队透明化:自动处理线程上下文,开发人员无需关心多线程和入队逻辑。
- Actor 死锁检测:内部可检测环路死锁,并采用调用链重入机制消除死锁。
- 支持不停服更新:采用组件+状态设计,运行时重新加载 DLL 即可热更所有逻辑。
- 网络模块:替换 DotNetty,采用 Asp.Net 的默认服务器 Kestrel,支持多种协议。
- 持久化透明:采用 NoSQL 作为数据存储,状态的持久化全透明。
- Timer/Scheduler/Event:内置线程安全的 Timer、Scheduler 和 Event 系统。
- 定期释放不活跃内存数据:以功能系统级别的粒度,定期剔除内存中不活跃的玩家数据。
- 高效的通信协议:基于 MessagePack,提供工具生成多态注册信息,序列化和反序列化效率极高。
- 一键导表工具:GeekConfig 工具将策划配置表转化为二进制数据,并提供 API 供游戏调用。
项目最近更新的功能
- 网络模块优化:替换 DotNetty,采用 Asp.Net 的默认服务器 Kestrel,提升性能和协议支持。
- Actor 死锁检测:新增环路死锁检测功能,采用调用链重入机制消除死锁。
- 持久化透明:进一步优化 NoSQL 数据存储,提升数据持久化效率。
- 高效的通信协议:基于 MessagePack,提供工具生成多态注册信息,提升序列化和反序列化效率。
- 一键导表工具:GeekConfig 工具新增功能,支持更多类型的配置表导出。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考