1 Star 0 Fork 552

何星驰/ioGame

forked from 渔民小镇/ioGame 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
doc_update.txt 11.09 KB
一键复制 编辑 原始数据 按行查看 历史
2022-04-13
新增 u3d、cocos 连接示例 和 tcp socket 的连接示例
u3d 连接示例 https://www.yuque.com/iohao/game/syv5mm
cocos 连接示例 https://www.yuque.com/iohao/game/ua4afq
tcp socket 示例 https://www.yuque.com/iohao/game/ywe7uc
游戏示例目录 game-collect 新增一些文档说明和单独启动逻辑服的方法
删除 game-test 示例目录
2022-04-06
为添加 alibroker 网络通信框架做准备 (#I510AK)
全异步化架构设计
https://alibroker.info/
独立 bolt 网络通信框架到单独目录 net-bolt。
2022-03-31
添加游戏部件抽象模块
用于游戏实践的开发,进一步减少开发实践过程中的工作量
只提供抽象骨架, 具体的逻辑实现由子游戏自定义
提供抽象流程的有:
游戏规则接口 RoomRuleInfoCustom
创建玩家接口 RoomPlayerCreateCustom
房间创建接口 RoomCreateCustom
进入房间接口 RoomEnterCustom
游戏开始接口 RoomGameStartCustom
提供抽象类的有:
抽象房间 AbstractRoom
抽象玩家 AbstractPlayer
业务操作接口 OperationHandler
玩法操作的处理对象, 享元工厂 OperationFlyweightFactory
2022-03-27
新增 spring 集成 (#I4Z2HS)
移除 widget-common 模块
业务框架优化
优化部份 list 结构改为 array
DefaultActionFactoryBean 新增创建 action 混合特性
业务框架文档相关
自动生成系统错误码到 doc_game.txt 文件中,不需要在手动配置
新增示例
example/example-for-spring
spring集成 相关 DemoSpringBootApplication.java
example/example-interaction
多逻辑服相互交互的 DemoInteractionApplication.java
FlowContext 新增方法
getCmdInfo 路由信息
invokeModuleMessageData (请求其他子服务器(其他逻辑服)的数据)
broadcast (广播)
changeName
ClientStartupConfig --> ClientStartup
ServerStartupConfig --> ServerStartup
ActionControllerFactoryBean --> ActionFactoryBean
InOutInfo --> InOutManager
AbstractExternalClientStartupConfig --> AbstractExternalClientStartup
2022-03-21
新增 UserSession (与 channel 是 1:1 的关系,可取到对应的 userId、channel 等信息。 )
FlowContext 新增动态属性
FlowOptionDynamic、FlowOption
登录相关
用户登录相关移 除虚拟userId
新增 UserIdSettingKit,简化开发者登录业务
优化业务框架
统一业务入口
优化 FlowContext
删除一些遗留代码 game-logic-all 相关
2022-03-14
新增心跳相关设置 IdleProcessSetting
心跳事件回调 IdleCallback
心跳 handler IdleHandler
(#I4XSCD)
新增ExternalJoinEnum:
UDP (udp socket 预留扩展)
EXT_SOCKET (特殊的预留扩展)
新增用户钩子接口 UserHook 上线时、下线时会触发
利用好该接口,可以把用户当前在线状态通知到逻辑服,比如使用 redis PubSub 之类的。
(#I4XSCH)
简化对外服务器 - 构建器 ExternalServerBuilder
2022-03-11
动态属性示例
2022-03-10
Copyright
2022-03-08
业务框架新增 InOutInfo 管理插件相关
把插件的执行放入 InOutInfo 中。
当只有一个插件时,不走 foreach
2022-03-07
新增基于 FXGL游戏引擎的游戏示例(坦克射击)
TankApp.java
新增基于FXGL的JAVA游戏引擎,示例 文档
网络游戏框架 change name, ioGame
2022-03-01
新增简单的启动器 SimpleRunOne
简化对外服 ExternalServer 的内部逻辑服启动
文档更新
移除 example 的示例,只保留少量
2022-02-25
文档更新:快速从零编写服务器完整示例
DebugInOut
打印微调
打印用户自定义异常的msg
新增 快速从零编写服务器完整示例代码
HelloReq
DemoAction
DemoLogicServer
DemoApplication
DemoWebsocketClient
BarSkeletonBuilderParamConfig 新增构建 BarSkeletonBuilder 方法
2022-02-23
文档更新
2022-02-21
游戏实践 game-one pom 添加 maven-assembly-plugin 打包 jar, 方便测试
业务框架 bugfix , 业务文档相关 在打包后没有java源码引发的 null
游戏框架对外服 默认连接协议改为 WEBSOCKET
2022-02-11
编写游戏框架文档
通信协议
Action的业务参数获取
快速入门示例
用户连接登录编写
对外服的协议说明
Action
路由 - 术语
异常机制
业务框架的构建器
开启JSR303+验证规范
2022-02-07
编写业务框架文档 https://www.yuque.com/iohao/game
异常机制
业务框架的构建器
游戏开发需要具备的知识
业务文档的生成
业务PB的生成
FlowContext
网关服的编写
逻辑服的编写
对外服的编写
新增对外服逻辑服的抽象类 AbstractExternalClientStartupConfig
2022-02-03
新增 游戏(错误码)文档的生成
新增 游戏(异常信息)文档的生成
游戏实践新增大厅服
与游戏逻辑服关联不强的业务逻辑或比较通用的业务就写在大厅服中
比如登录... 等.
2022-02-02
删除 DocActionBroadcast 统一使用 DocActionSends 来生成推送文档
新增 BarSkeletonBuilderParamConfig 构建参数的配置
新增注解 DocActionSends 消息推送文档的生成
配合 DocActionSend 生成多条推送文档
2022-02-01
新增抽象推送 AbstractFlowContextSend
新增推送文档注解
用于补充推送相关的文档,因为推送是不是用户主动发起的请求,
所以需要单独标记,以便业务框架生成推送文档。
文档在生成还未实现
新增动态属性 AttrOptionDynamic 接口
配合 AttrOption 可以更明确动态属性的类型
FlowContext 的动态属性由 AttrDynamic 改为 AttrOptionDynamic
可以更明确动态属性的类型
移除业务框架参数解析器的 userId 解析,全部由 FlowContext 接管,
因为 FlowContext 是流程上下文。
2022-01-30
移除广播小部件 模块 (感觉设计过于凌乱)
独立广播操作,将广播内嵌到(逻辑服、网关、对外服)中
新增客户端模拟
修复广播时的 bug (在逻辑服传输数据到网关时,response.data 对象如果没有实现 Serializable 会异常)
2022-01-29
新增游戏文档 广播相关(简单的业务方法版)
2022-01-25
新增轻量小部件 light-jprotobuf
简化 jprotobuf 的编写方式
不在需要 @Protobuf(description = "xxx") 来生成注释了
现在 jprotobuf 的类中,注释既文档
可将多个 jprotobuf 类 合并生成为一个原生的 .proto 文件, 不使用 jprotobuf 提供的生成插件,
因为 jprotobuf 生成的 .proto 文件太乱(会有重复的文件类),在阅读时也不方便
2022-01-24
坦克 pb 更新
2022-01-23
业务框架支持文档生成, java代码既文档
业务框架日志可定位代码行数
debug插件
启动时
删除部分编解码代码
2022-01-22
新增路由错误码: 一般是客户端请求了不存在的路由引起的
网关增加 路由错误码 逻辑,如果客户端请求了不存在的路由,直接响应错误
新增 websocket 编解码
增加 websocket 数据压缩扩展
对外服传输协议改为纯 PB
2022-01-21
网关新增路由检测:
对外服请求逻辑服时
如果没有找到对应的逻辑服来处理请求,不在往逻辑服发送
并立即返回错误码给对外服
2022-01-20
对外服的 socket 和 websocket 共用一个业务处理类 ExternalBizHandler (负责把游戏端的请求 转发给网关)
对外服的 socket 和 websocket 接收来自网关的响应也逻辑也保持一至
2022-01-19
登录业务 新增 ChangeUserIdKit 工具:
变更对外服的 userId, userId与channel 关联
用在用户登录时,从程序员的业务数据库中获得 userId
新增用户登录, 登录流程:
真实客户端发送请求 --> 对外服 --> 网关服 --> 逻辑服(
逻辑服通知对外服变更:逻辑服 --> 网关服 --> 对外服 --> 网关服 --> 逻辑服
) --> 网关服 --> 对外服
业务框架:
BarMessage 增加 rpcCommandType 字段:
特性如下:
在 bolt 中, 掉用方使用
(com.alipay.remoting.rpc.RpcServer.oneway
或 com.alipay.remoting.rpc.RpcClient.oneway)的 oneway 方法
则 AsyncContext.sendResponse 无法回传响应
原因可阅读 com.alipay.remoting.rpc.protocol.RpcRequestProcessor.sendResponseIfNecessary 源码。
业务框架保持与 bolt 的风格一至使用 RpcCommandType
不同的是业务框架会用 RpcCommandType 区别使用什么方式来发送响应。
如果 rpcCommandType != RpcCommandType.REQUEST_ONEWAY ,
就使用 com.alipay.remoting.AsyncContext.sendResponse 来发送响应
具体发送逻辑可读 com.iohao.little.game.action.skeleton.core.flow.interal.DefaultActionAfter 源码
2022-01-18
优化业务框架: 新增 action void 特性, 定义为 void 的业务方法,不在给掉用端响应(除非有业务异常码)
优化业务框架: DebugInOut 日志可以支持 JSR 303、JSR 349、JSR 380 验证规范 的日志
优化业务框架: Flow 流程,在开启业务参数验证规范功能时,业务参数如果验证不通过,则直接响应带有错误码的消息给掉用端
2022-01-17
业务框架支持 JSR 303、JSR 349、JSR 380 验证规范
业务框架新增 flow 上下文 (FlowContext), 生命周期存在于当前执行流程
2022-01-16
对外服 新增接收并处理 来自网关的广播消息
广播小部件 新增广播上下文
2022-01-15
整合 protobuf、mapstruct、lombok 的使用
新增坦克游戏相关 pb
规范子游戏的 cmd 编写方式
2022-01-14
业务框架加强规范异常处理
提供异常全局统一处理规范
领域事件新增默认异常处理
2022-01-13
对外服务器 支持 websocket
2022-01-12
业务框架支持 proto
实战(网关、对外服、逻辑服),简化配置
2022-01-11
编写对外服务器
对外服务器连接到网关
2022-01-07
轻量小部件多环境切换
2022-01-02
boot 加载项 BootConfig
动态属性
2021-12-26
轻量小部件-领域事件
1. 领域驱动设计,基于LMAX架构。
2. 单一职责原则,可以给系统的可扩展、高伸缩、低耦合达到极致。
3. 异步高并发,线程安全的并且基于lmax架构。可并发执行,性能超高,执行1000W次事件只需要1.1秒左右(这个得看你的电脑配置)。
4. 使用事件消费的方式编写代码,使得业务在复杂也不会使得代码混乱,维护代码成本更低。
5. 插件形式提供事件领域,做到了可插拔,就像玩乐高积木般有趣。
2021-12-21
业务框架更新
change ActionMethodInOut method
新增 InOutContext 上下文, 方便扩展 ActionMethodInOut
新增 ActionMethodInOut 实现类DebugInOut 用于开发时,打印一些参数
如:
┏━━━━━ Debug [BeeAction.java] ━━━ [.(BeeAction.java:1).hello]
┣ 参数 : beeApple : BeeApple(id=101, content= jackson )
┣ 返回值: : hello:
┣ 方法名: hello
┣ 时间 : 1 ms (业务方法总耗时)
┗━━━━━ Debug [BeeAction.java] ━━━
2021-12-20
完善客户端示例与启动流程
整合 sofa-bolt
2021-12-15
初始化项目
编写业务框架
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/hexingchi/iogame.git
git@gitee.com:hexingchi/iogame.git
hexingchi
iogame
ioGame
master

搜索帮助