GameFrameX.Utility
1.2.0-beta10
See the version list below for details.
dotnet add package GameFrameX.Utility --version 1.2.0-beta10
NuGet\Install-Package GameFrameX.Utility -Version 1.2.0-beta10
<PackageReference Include="GameFrameX.Utility" Version="1.2.0-beta10" />
paket add GameFrameX.Utility --version 1.2.0-beta10
#r "nuget: GameFrameX.Utility, 1.2.0-beta10"
// Install GameFrameX.Utility as a Cake Addin #addin nuget:?package=GameFrameX.Utility&version=1.2.0-beta10&prerelease // Install GameFrameX.Utility as a Cake Tool #tool nuget:?package=GameFrameX.Utility&version=1.2.0-beta10&prerelease
GameFrameX介绍:
GameFrameX 是基于GeekServer是一个开源的分区分服
的游戏服务器框架,采用C# .Netcore开发,开发效率高,性能强,跨平台,并内置不停服热更新机制。可以满足绝大部分游戏类型的需求,特别是和Unity3D协同开发更佳。
设计理念:大道至简,以简化繁
程序集说明
程序集名称 | 介绍 | 用途 |
---|---|---|
GameFrameX.Launcher | 程序启动入口 | 用于编写启动逻辑 |
GameFrameX.Hotfix | 热更新逻辑和处理程序对象放置区(该部分为热更新内容) | 用于编写逻辑的地方(主要工作区 ,目录和Apps 目录结构一致) |
GameFrameX.Apps | 组件和实体对象放置区(该部分不能热更新) | 用于编写基础逻辑和数据存储(功能的添加修改主要工作区 ,目录结构按照ServerType 划分和HotFix 对应) |
GameFrameX.Config | 配置文件对象和配置文件放置区 | 用于编写配置文件的类和文件的映射(目前由LuBan自动生成) |
GameFrameX.Proto | 数据通讯协议对象放置区 | 用于编写通讯协议对象 |
GameFrameX功能:
1.跨平台
使用C# .Netcore开发(可以跨平台,可以跨平台,可以跨平台),.Netcore现在功能和性能都已经十分强大和稳健,不管是在windows还是linux上部署起来都很简便。
2.全面异步编程
全部采用异步编程(async/await),让逻辑代码变得整洁优雅,清晰易懂,让代码写起来行如流水。
3.TPL(Task Parallel Library) Actor模型
Actor模型构建于强大的TPL DataFlow之上,让Actor模型如虎添翼。(不了解Actor模型,可以搜一下相关资料,Akka,Orleans都是采用的Actor模型)了解更多
4.Actor入队透明化
内部会自动处理线程上下文, 编译期间会通过Source Generator自动生成入队代码, 开发人员无需关心多线程以及入队逻辑, 只需要像调用普通函数一样书写逻辑。了解更多
5.Actor死锁检测
Actor模型本身是存在死锁的情况,且不容易被发现。内部可检测环路死锁(即:A->B->C->A),并采用调用链重入机制消除环路死锁。了解更多
6.支持不停服更新
采用组件+状态的设计,状态只有属性,没有方法,组件只用方法,没有属性,并通过代理的方式全部放到热更dll中,运行时重新加载dll即可热更所有逻辑。了解更多
7.网络模块
网络模块采用SuperSocket的默认服务器Kestrel,支持协议多(Tcp,udp,Http123,websocket,signalr等),而且性能高了解更多
8.持久化透明
采用Nosql作为数据存储,状态的持久化全透明,框架会自动序列化/反序列,让开发人员更加专注于业务逻辑,无需操心数据库。 了解更多
9.Timer/Scheduler/Event
内置线程安全的Timer,Scheduler,Event系统,轻松应对游戏服务器常见的定时,任务计划,事件触发等业务需求。了解更多
10.定期释放不活跃内存数据
以功能系统级别的粒度,定期剔除内存中不活跃的玩家数据,尽最大可能减少服务器内存开销。
运行
- 安装.NetCore8.0
- 安装mongodb4.x
- 打开git clone本项目
- 用VisualStudio 或者Rider打开Server.sln 启动 G
ameFrameX.Launcher
- 打开Unity工程,打开Launcher 场景,运行查看日志
文档&例子&Demo
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net8.0
- GameFrameX.Extension (>= 1.2.0-beta10)
- GameFrameX.Log (>= 1.2.0-beta10)
- Newtonsoft.Json (>= 13.0.3)
- Standart.Hash.xxHash (>= 4.0.5)
NuGet packages (12)
Showing the top 5 NuGet packages that depend on GameFrameX.Utility:
Package | Downloads |
---|---|
GameFrameX.NetWork
GameFrameX.NetWork |
|
GameFrameX.NetWork.HTTP
GameFrameX.NetWork.HTTP |
|
GameFrameX.DataBase
GameFrameX.DataBase |
|
GameFrameX.Core.Abstractions
GameFrameX.Core.Abstractions |
|
GameFrameX.Core
GameFrameX.Core |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.2.0-beta9 | 178 | 12/3/2024 |
1.2.0-beta8 | 150 | 12/3/2024 |
1.2.0-beta7 | 153 | 11/24/2024 |
1.2.0-beta6 | 145 | 11/24/2024 |
1.2.0-beta5 | 153 | 11/24/2024 |
1.2.0-beta4 | 154 | 11/24/2024 |
1.2.0-beta3 | 247 | 11/23/2024 |
1.2.0-beta15 | 0 | 12/27/2024 |
1.2.0-beta14 | 32 | 12/26/2024 |
1.2.0-beta13 | 167 | 12/19/2024 |
1.2.0-beta12 | 148 | 12/16/2024 |
1.2.0-beta11 | 146 | 12/12/2024 |
1.2.0-beta10 | 148 | 12/11/2024 |
1.2.0-beta1 | 266 | 8/28/2024 |
1.1.1-beta9 | 217 | 8/21/2024 |
1.1.1-beta7 | 214 | 8/21/2024 |
1.1.1-beta6 | 189 | 8/20/2024 |
1.1.1-beta5 | 190 | 8/20/2024 |
1.1.1-beta4 | 146 | 8/4/2024 |
1.1.1-beta3 | 169 | 8/3/2024 |
1.1.1-beta2 | 129 | 8/3/2024 |
1.1.1-beta1 | 130 | 7/29/2024 |
1.1.0 | 233 | 7/20/2024 |
1.1.0-beta5 | 120 | 7/29/2024 |
1.1.0-beta4 | 121 | 7/29/2024 |
1.1.0-beta3 | 126 | 7/29/2024 |
1.1.0-beta2 | 120 | 7/29/2024 |
1.1.0-beta1 | 149 | 7/28/2024 |
1.0.7-beta13 | 176 | 7/19/2024 |
1.0.7-beta12 | 155 | 7/19/2024 |
1.0.7-beta11 | 164 | 7/18/2024 |
1.0.7-beta10 | 171 | 7/16/2024 |
1.0.6-beta7 | 151 | 7/16/2024 |
1.0.6-beta5 | 141 | 7/12/2024 |
1.0.6-beta4 | 145 | 7/11/2024 |
1.0.6-beta3 | 144 | 7/9/2024 |
1.0.6-beta2 | 162 | 7/9/2024 |
1.0.6-beta1 | 177 | 7/9/2024 |
1.0.6-bata6 | 143 | 7/15/2024 |
1.0.5 | 182 | 7/5/2024 |
1.0.5-beta2 | 155 | 7/6/2024 |
1.0.5-beta1 | 140 | 7/6/2024 |
1.0.5-beta | 157 | 7/6/2024 |
1.0.4 | 172 | 7/4/2024 |
1.0.3 | 147 | 7/4/2024 |
1.0.0 | 171 | 7/3/2024 |
0.0.7-beta | 162 | 7/4/2024 |
0.0.6-beta | 113 | 7/4/2024 |