GameFrameX.Core 1.2.0-beta7

This is a prerelease version of GameFrameX.Core.
There is a newer version of this package available.
See the version list below for details.
dotnet add package GameFrameX.Core --version 1.2.0-beta7
                    
NuGet\Install-Package GameFrameX.Core -Version 1.2.0-beta7
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="GameFrameX.Core" Version="1.2.0-beta7" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="GameFrameX.Core" Version="1.2.0-beta7" />
                    
Directory.Packages.props
<PackageReference Include="GameFrameX.Core" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add GameFrameX.Core --version 1.2.0-beta7
                    
#r "nuget: GameFrameX.Core, 1.2.0-beta7"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package GameFrameX.Core@1.2.0-beta7
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=GameFrameX.Core&version=1.2.0-beta7&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=GameFrameX.Core&version=1.2.0-beta7&prerelease
                    
Install as a Cake Tool

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.定期释放不活跃内存数据

以功能系统级别的粒度,定期剔除内存中不活跃的玩家数据,尽最大可能减少服务器内存开销。

运行

  1. 安装.NetCore8.0
  2. 安装mongodb4.x
  3. 打开git clone本项目
  4. 用VisualStudio 或者Rider打开Server.sln 启动 GameFrameX.Launcher
  5. 打开Unity工程,打开Launcher 场景,运行查看日志

文档&例子&Demo

视频教程

参考文档

Product 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.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.0.0.2-dev4 383 11/5/2025
2.0.0.2-dev3 185 11/4/2025
2.0.0.2-dev2 186 11/4/2025
2.0.0.2-dev1 217 10/31/2025
2.0.0.2-dev09 1,144 11/24/2025
2.0.0.2-dev08 196 11/24/2025
2.0.0.2-dev07 416 11/20/2025
2.0.0.2-dev06 382 11/19/2025
2.0.0.2-dev05 154 11/7/2025
2.0.0.1-dev9 105 10/25/2025
2.0.0.1-dev8 175 10/20/2025
2.0.0.1-dev7 449 10/14/2025
2.0.0.1-dev6 184 10/13/2025
2.0.0.1-dev4 144 10/10/2025
2.0.0.1-dev3 155 10/10/2025
2.0.0.1-dev2 166 10/10/2025
2.0.0.1-dev1 180 9/29/2025
2.0.0-dev4 171 9/29/2025
2.0.0-dev3 176 9/29/2025
2.0.0-dev2 169 9/29/2025
2.0.0-dev1 136 9/28/2025
1.5.1-dev9 259 3/31/2025
1.5.1-dev7 150 3/29/2025
1.5.1-dev6 156 3/29/2025
1.5.1-dev5 176 3/28/2025
1.5.1-dev47 234 9/20/2025
1.5.1-dev46 308 9/18/2025
1.5.1-dev45 286 9/17/2025
1.5.1-dev44 995 8/15/2025
1.5.1-dev43 898 7/18/2025
1.5.1-dev42 287 7/4/2025
1.5.1-dev41 172 7/4/2025
1.5.1-dev40 188 6/28/2025
1.5.1-dev4 517 3/25/2025
1.5.1-dev39 110 6/28/2025
1.5.1-dev38 188 6/17/2025
1.5.1-dev37 174 6/17/2025
1.5.1-dev36 179 6/17/2025
1.5.1-dev35 388 5/26/2025
1.5.1-dev34 423 5/23/2025
1.5.1-dev33 149 5/23/2025
1.5.1-dev32 154 5/23/2025
1.5.1-dev31 163 5/23/2025
1.5.1-dev30 194 5/22/2025
1.5.1-dev3 461 3/24/2025
1.5.1-dev29 177 5/21/2025
1.5.1-dev28 320 5/14/2025
1.5.1-dev27 253 5/13/2025
1.5.1-dev26 267 5/13/2025
1.5.1-dev25 308 5/13/2025
1.5.1-dev24 264 5/13/2025
1.5.1-dev23 244 5/12/2025
1.5.1-dev22 111 5/10/2025
1.5.1-dev21 120 5/10/2025
1.5.1-dev20 111 5/10/2025
1.5.1-dev2 204 3/20/2025
1.5.1-dev19 138 5/9/2025
1.5.1-dev17 143 5/9/2025
1.5.1-dev16 182 5/8/2025
1.5.1-dev15 182 5/8/2025
1.5.1-dev14 183 5/8/2025
1.5.1-dev13 164 4/25/2025
1.5.1-dev10 192 3/31/2025
1.5.1-dev1 183 3/14/2025
1.5.0-dev1 307 3/13/2025
1.4.2 168 2/9/2025
1.4.2-dev9 128 2/19/2025
1.4.2-dev8 162 2/18/2025
1.4.2-dev7 160 2/12/2025
1.4.2-dev6 147 2/11/2025
1.4.2-dev5 145 2/11/2025
1.4.2-dev4 126 2/11/2025
1.4.2-dev3 136 2/11/2025
1.4.2-dev2 138 2/10/2025
1.4.2-dev15 624 3/4/2025
1.4.2-dev14 259 3/4/2025
1.4.2-dev13 147 2/21/2025
1.4.2-dev12 151 2/21/2025
1.4.2-dev11 136 2/21/2025
1.4.2-dev10 133 2/21/2025
1.4.2-dev1 128 2/9/2025
1.4.1 143 2/9/2025
1.4.0 178 2/6/2025
1.3.3 165 2/6/2025
1.3.2 152 2/6/2025
1.3.1 156 2/6/2025
1.3.0-beta2 147 2/5/2025
1.3.0-beta1 146 2/5/2025
1.2.0-beta9 168 12/3/2024
1.2.0-beta8 123 12/3/2024
1.2.0-beta7 149 11/24/2024
1.2.0-beta6 143 11/24/2024
1.2.0-beta5 137 11/24/2024
1.2.0-beta4 128 11/24/2024
1.2.0-beta3 157 11/23/2024
1.2.0-beta22 147 1/24/2025
1.2.0-beta21 145 1/24/2025
1.2.0-beta20 133 1/22/2025
1.2.0-beta19 129 1/17/2025
1.2.0-beta18 131 1/15/2025
1.2.0-beta17 82 1/15/2025
1.2.0-beta16 198 12/28/2024
1.2.0-beta15 147 12/27/2024
1.2.0-beta14 128 12/26/2024
1.2.0-beta13 169 12/19/2024
1.2.0-beta12 156 12/16/2024
1.2.0-beta11 147 12/12/2024
1.2.0-beta10 146 12/11/2024
1.2.0-beta1 244 8/28/2024
1.1.1-beta9 182 8/21/2024
1.1.1-beta7 162 8/21/2024
1.1.1-beta6 180 8/20/2024
1.1.1-beta5 146 8/20/2024
1.1.1-beta4 130 8/4/2024
1.1.1-beta3 154 8/3/2024
1.1.1-beta2 141 8/3/2024
1.1.1-beta1 128 7/29/2024
1.1.0 200 7/20/2024
1.1.0-beta5 122 7/29/2024
1.1.0-beta4 130 7/29/2024
1.1.0-beta3 122 7/29/2024
1.1.0-beta2 124 7/29/2024
1.1.0-beta1 128 7/28/2024
1.0.7-beta13 165 7/19/2024
1.0.7-beta12 144 7/19/2024
1.0.7-beta11 160 7/18/2024
1.0.7-beta10 151 7/16/2024
1.0.6-beta7 138 7/16/2024
1.0.0 172 7/15/2024