ioGame
无锁异步化、事件驱动的架构设计;轻量级,无需依赖任何第三方中间件或数据库就能支持集群、分布式
通过 ioGame 可以很容易的搭建出一个集群无中心节点、集群自动化、多进程的分布式游戏服务器
包体小、启动快、内存占用少、更加的节约、无需配置文件、提供了优雅的路由访问权限控制
可同时支持多种连接方式:WS、UDP、TCP...等;框架已支持全链路调用日志跟踪特性
让开发者用一套业务代码,能轻松切换和扩展不同的通信协议:Protobuf、JSON
近原生的性能;业务框架在单线程中平均每秒可以执行 1152 万次业务逻辑
代码即联调文档、JSR380验证、断言 + 异常机制 = 更少的维护成本
框架具备智能的同进程亲和性;开发中,业务代码可定位与跳转
架构部署灵活性与多样性:既可相互独立,又可相互融合
可同时与同类型的多个游戏逻辑服通信并得到数据
逻辑服之间可相互跨进程、跨机器进行通信
支持玩家对游戏逻辑服进行动态绑定
能与任何其他框架做融合共存
对 webMVC 开发者友好
无 spring 强依赖
零学习成本
javaSE
过去、现在、将来都不会有商业版本,所有功能全部开源!
只做真的完全式开源,拒绝虚假开源,售卖商业版,不搞短暂维护!
承诺项目的维护周期是十年起步, 2022-03-01 起,至少十年维护期!
提供高质量的使用文档!
ioGame 源码完全开放、最新文档阅读完全开放;使用完全自由、免费(遵守开源协议)。
ioGame 是一个轻量级的网络编程框架,适用于网络游戏服务器、物联网、内部系统及各种需要长连接的场景。
ioGame 架构简图
使用 ioGame,可以显著的帮助企业减少巨额成本。在文档中,"成本"关键字提到了很多次,各个阶段均有关联,包括了学习、研发、测试、部署、扩展、投入 ...等各阶段。在同等资源的竞争下,使用 ioGame 可为公司节省更多的资源,从而提高了自身的生存率。更重要的是避免了为其他公司做嫁衣的可能性,具体可阅读成本分析案例。
授权许可申请 -- 点我展开
ioGame 使用的是 AGPL3.0 开源协议。
由于 ioGame 遵循过去、现在、将来都不会有商业版本,所有功能全部开源的原则,使得我们很难找到盈利点,现在使用授权的方式;
使用 ioGame 是免费的,前提是要认同生产资料公有制,就是把你的产品也完全的开源出来(遵守 AGPL3.0 开源协议);同时,ioGame 是允许私有的,前提是支付闭源授权费。所以,付费不是必须的,也不是强制性的,选择权在使用者手上。
ioGame 支持申请盈利后支付闭源授权费,收入不超过10万人民币/年或拥有不超过100万人民币的资产,可以申请盈利后支付授权费用。
### 闭源授权说明
1.授权费用:2799 人民币每年。
2.一个产品只对应一个授权。
3.取得授权的产品只可自己运营或使用,如果是提供给客户二次开发或销售类的产品,每份需要取得一个授权。
如果你的产品不想开源,可以向我们申请为期一年的闭源授权,企业用户需要通过企业邮箱申请闭源授权。如果是个人开发者、独立开发者的,可以使用非企业邮箱申请闭源授权。
### 授权类型
个人和独立开发者:收入不超过10万人民币/年或拥有不超过100万人民币的资产,可以申请盈利后支付授权费用。
企业:收入不超过10万人民币/年或拥有不超过100万人民币的资产,可以申请盈利后支付授权费用。
我们最终是期望你的产品盈利后,支付闭源授权费用。我们的目的也很明确,通过授权的方式获得资金,在使用这些资金来加快发展框架的功能及建立完善社区,更好的为大家服务。
以下行业或产品需要请提前沟通:基于 ioGame 的商业化视频、围绕 ioGame 的商业化售卖产品; 围绕 ioGame 的商业化产品指的是售卖相关的商业产品;
存在法律纠纷阶段是不予授权的。
### 申请授权
申请授权邮箱(发到 262610965@qq.com 或 luoyizhu@gmail.com),内容格式如下
公司全名:
统一社会信用代码:
产品描述:
软件著作权编号:(没有可以不用填写)
申请的授权类型:(个人和独立开发者、企业、专业版、定制版)
### 合法授权码
授权码是根据 【公司统一社会信用代码、软著码、发放日期、失效日期】等信息生成的,确保唯一性与合法性;
授权码会通过邮箱发放,用于留存,具备法律效力。
产品在取得授权期内,不需要对外开放产品源代码;如果不在授权期内,你的产品将转为 AGPL3.0 开源协议。
启动展示
ioGame 在内存占用、启动速度、打包等方面也是优秀的。
- 内存方面:内存占用小。
- 启动速度方面:应用通常会在 0.x 秒内完成启动。
- 打包方面:打 jar 包后大约 15MB ,详细请看 快速从零编写服务器完整示例。
源码、示例、效率
github | gitee |
---|---|
ioGame - 源码 | ioGame - 源码 |
ioGame 示例集合 | ioGame 示例集合 |
示例
示例 | 描述 |
---|---|
ioGame 综合示例介绍 | 示例中有功能特性的实践、打包部署(docker、k8s)等介绍 |
[示例] FXGL 连接示例;Protobuf、java、Netty | FXGL + ioGame 网络游戏中的多人移动演示 |
[示例] Unity 连接示例 - 1;Protobuf、C#、Netty | unity3d 连接示例 websocket + protobuf(已经与综合示例调通) |
[示例] Unity 连接示例 - 2;Protobuf、C#、Netty | 提供了 unity 与 ioGame 的【多人】移动同步演示 |
[示例] Cocos Creator 连接示例;Protobuf、TypeScript、Netty | cocosCreator 连接示例 websocket + protobuf(已经与综合示例调通) |
[示例] Godot 连接示例;Protobuf、C#、Netty | 网络通信使用 webSocket |
[示例] UE5 连接示例;Protobuf、C++、Netty | UE5 连接示例 websocket + protobuf(已经与综合示例调通) |
[示例] JavaScript 连接示例;json、JavaScript、Netty | 使用 websocket.js 来连接 ioGame 的一个示例,使用 json 协议来传输交互。 |
[示例] TypeScript 连接示例;json、TypeScript、Netty | 使用 json 协议来传输交互。 |
效率
效率 | |
---|---|
ioGame 快速理解篇 | 快速掌握 ioGame 的概念 |
技术栈推荐与其它参考文档 | 游戏开发的技术栈建议,大家可以参考一下。 |
更多游戏服务器框架推荐 | 如果 ioGame 不能很好的满足你的需要,请别担心,这里还有更多的 java 游戏服务器框架推荐给你。 |
ioGame java SDK | ioGame java SDK 主要作用是与 ioGame 服务器进行通信,为开发者简化交互过程。 |
最小依赖
ioGame 已经上传到中央仓库,如果无法下载最新的框架源码,建议开发者的 maven 仓库代理使用原生的或腾讯云的代理,目前不推荐阿里云的代理。腾讯云代理设置可参考这里。
ioGame最新版本查看 https://www.yuque.com/iohao/game/ab15oe
ioGame 是轻量级的网络编程框架,不依赖任何第三方中间件或数据库就能支持集群、分布式,只需要 java 环境就可以运行。此时,你只需一个依赖即可获得整个框架,并同时支持开头介绍的全部功能特性。
<!-- https://mvnrepository.com/artifact/com.iohao.game/run-one-netty -->
<dependency>
<groupId>com.iohao.game</groupId>
<artifactId>run-one-netty</artifactId>
<version>21.14</version>
</dependency>
ioGame 使用趋势数据
关注 ioGame 的游戏服务器开发者持续增多,2022-09 ~ 至今各月的统计数据;
这里的统计信息是关于开发者关注 ioGame 框架相关的,从统计数据中可以看出,由于 ioGame