Skip to content

Latest commit

 

History

History
657 lines (353 loc) · 38.4 KB

CHANGELOG.md

File metadata and controls

657 lines (353 loc) · 38.4 KB

Changelog

0.0.29 (2023-08-17)

Features | 新特性

  • server 新增 NetworkNone 网络类型,该模式下不监听任何网络端口,仅开启消息队列,适用于纯粹的跨服服务器等情况 (dcfb3da)
  • server.Server 新增 HttpServer 函数,用于替代 HttpRouter (b87df07)
  • server.Server 的 HTTP 请求支持慢消息检测 (36a3333)

Bug Fixes | 修复

  • server 包优化 Shutdown 逻辑,修复服务器关闭时不会等待消息执行完毕的问题 (93c5f36)

0.0.28 (2023-08-16)

Features | 新特性

  • gateway 网关支持通过可选项自定义端点选择器 (e0f43c5)
  • server 目录中新增 client 包,提供了 Websocket 客户端实例 (322938a)
  • server 目录中新增 gateway 包,提供了基本的 Websocket 网关实现 (5ff74b6)
  • server.Server 新增 RegConnectionPacketPreprocessEvent 函数用于对数据包进行预处理操作 (b3e4bb6)
  • times 包增加部分时间处理函数 (157b6b5)

Bug Fixes | 修复

  • 修复 timer.Ticker.Loop 函数首次触发时会触发两次的问题 (2bd6aa5)

0.0.27 (2023-08-14)

Features | 新特性

  • ranking.List 新增支持默认值的获取排名和分数的函数 (57ee7ff)
  • sole 包新增 Once 结构体,用于数据取值去重 (0f31173)

Bug Fixes | 修复

  • 修复配置显示声明的字符串时,导出的数据包含双引号的问题 (31cd79c)

0.0.26 (2023-08-10)

Features | 新特性

  • arrangement 新增冲突、冲突处理函数、约束处理函数 (84f36ea)
  • arrangement.Engine 新增更多的辅助函数 (822ffc7)
  • server 包新增 HTTP 包装器 (cec7e5b)
  • 新增 reflects 包,包含反射相关辅助函数 (340b00e)

Bug Fixes | 修复

  • http 包装器 group 修复 (dbf7ed7)

Build System | 影响构建的修改

  • 升级 go 至 1.21 版本 (9596320)

0.0.25 (2023-08-03)

Features | 新特性

  • combination 包新增 Validator 校验器,用于校验组合是否匹配,取代 poker.Rule (f6873bd)
  • combination 包新增 WithValidatorHandleNCarryM、WithValidatorHandleNCarryIndependentM 函数 (87a1ca9)
  • room.Helper 支持通过 BroadcastExcept 向被排除表达式命中外的玩家广播消息 (0804508)
  • 新增 arrangement 包,用于针对多条数据进行合理编排的数据结构 (1f5f95a)

Bug Fixes | 修复

  • combination.WithValidatorHandleNCarryM 修复 M 允许类型不同的问题 (0db1e5c)
  • room.Helper.BroadcastExcept 函数返回值修复 (faac7b2)

Docs | 文档优化

  • poker 包过时标记 (553c436)
  • README.md 及 CONTRIBUTING.md 完善 (7cfdbb1)

0.0.24 (2023-08-02)

Features | 新特性

  • fight.Round 新增操作刷新事件 (d96ed58)
  • fight.Round 新增获取当前操作超时时间的函数 (060fb05)
  • random 包新增 Dice 掷骰子和 Probability 概率函数 (d9d0392)
  • room.Helper 新增获取玩家切片、广播所有玩家、广播在座玩家的函数 (ab180f3)
  • server.Server 支持通过 WithShunt 函数对服务器消息进行分流 (c92f16c)
  • server.Server 新增分流通道创建和关闭事件 (b9d9533)
  • 新增 deck 包,用于对牌堆、麻将牌堆、一组数据等情况的管理 (ace17a6)

Bug Fixes | 修复

  • configuration 包字段类型转换修复 (aef7740)
  • 修复 room 包中通过 Manager 获取 Helper 时,当传入的 room 为空依旧会返回不为空指针的 Helper 问题 (e8c2cf2)

Code Refactoring | 重构

  • moving2d 移动到 game 包中 (e3224d0)
  • 移除 component 包,lockstep 迁移至 server/lockstep (1b8d041)

Tests | 新增或优化测试用例

  • fight.Round 单元测试函数名变更 (ffd8d04)

0.0.23 (2023-08-01)

Other | 其他更改

  • 优化 combination 包命名,删除无用文件 (57936b2)

Reverts | 回退

  • 移除 poker 包的 matcher,改为使用 combination 包 (8b92921)

Features | 新特性

  • fight 包的 Round 新增操作超时事件,优化事件逻辑 (9198faa)
  • maths 包支持奇偶数判断 (ac43963)
  • room 包新增房间创建事件 (87c6695)
  • 新增 combination 包,用于数组组合筛选(抽离自 poker 包) (48d9c11)
  • 新增 fight 包,提供了回合制战斗的功能实现 (df8f6fc)

Bug Fixes | 修复

  • 修复 server 异步消息的 callback 的并发问题 (1297ae7)
  • 修复泛型对象 player 不能判断 nil 的表达式错误 (4dddd14)
  • 修复牌堆重置时不会重置 guid 的问题 (39ccad4)
  • 状态机 fsm 包名修复,优化注释 (cee067e)
  • 状态机 State 名称修复 (de76411)

Docs | 文档优化

  • server.PushAsyncMessage 注意事项补全 (2482d2e)

Code Refactoring | 重构

  • fsm 包状态机事件优化,新增部分获取状态机信息的函数 (0fad041)

Performance Improvements | 性能优化

  • 优化 combination 包 NCarryM 性能 (abd1db5)
  • 优化 slice.Combinations 效率 (03028b1)

0.0.22 (2023-07-28)

Features | 新特性

  • maths 包新增支持 int64 的数字合并函数 (a6fb7fb)
  • room 支持获取座位上的玩家数量 (24f54a1)
  • super 包支持使用 Convert 强制转换数据类型 (867d1ec)
  • times 包新增 SystemNewDay 和 OffsetTimeNewDay 事件 (2a0c5b8)

Bug Fixes | 修复

  • fms 包迁移问题处理 (996f5af)

Code Refactoring | 重构

  • room 包移除大量 error 返回,增加易于房间操作 Helper 数据结构,可通过 Manager.GetHelper 和 room.NewHelper 获取 (3dec407)

Tests | 新增或优化测试用例

0.0.21 (2023-07-27)

Reverts | 回退

  • 移除 attrs,设计不合理 (87f26dd)
  • 移除 gameplay,设计不合理 (41ea022)
  • 移除 terrain 和 world,设计不合理 (361e269)

Features | 新特性

  • generic 包支持更多的空指针判断函数 (d06c840)
  • hash 包新增 Set 数据结构 (9fcc75e)
  • maths 包新增 CountDigits 和 GetDigitValue 函数,用于计算一个数字的位数和获取特定位数上的值 (3f94f38)
  • room 包添加更多的事件,添加座位号支持 (c8f181f)
  • server 异步消息支持将 callback 设置为 nil (b63975e)
  • server.Server 事件消息添加 mark 标记,方便问题定位 (471ee48)
  • server.Server 新增 ConnectionOpenedAfterEvent (8dde18a)
  • server.Server 新增对连接写入事件前的处理函数 (5e26467)
  • slice 包新增 CombinationsPari 函数,用于从给定的两个数组中按照特定数量得到所有组合后,再将两个数组的组合进行组合 (d26ef3a)
  • super 包支持无错的 json 序列化 (11ad997)
  • 房间管理器实现 (45c855a)

Bug Fixes | 修复

  • 修复 room.NewManager 没有初始化 rp 字段的问题 (5c3c959)

Docs | 文档优化

Code Refactoring | 重构

  • kcrypto 包更名为 crypto,与目录名对应 (1ae14f0)
  • RankingList 更名为 List,并且移动至 ranking 包中 (ed8ee4a)
  • 从 builtin 包中单独抽离到 aoi 包,更名为 TwoDimensional (bca8a98)
  • 状态机从 builtin 包中单独抽离到 fsm 包 (6fb24da)
  • 移除原有的 builtin 中的各类 room 实现 (ee18934)

0.0.20 (2023-07-25)

Reverts | 回退

  • 移除 storage 包,不合理的设计 (3e956b6)

Features | 新特性

  • super 包支持注册第三方错误,将第三方错误转换为特定错误代码和信息 (2cbffbf)
  • super 包添加 []byte、string 零拷贝转换函数 (506e0f2)

Code Refactoring | 重构

  • map 移除适配 (d446ff1)
  • storage 中的 Delete 要求返回 error (a43fb4f)
  • storage 包重新实现 (b6f28dd)
  • storage 要求 Load 等函数返回错误信息 (0d1a985)
  • 优化 solo.guid 的使用,命名空间需要注册 (6238883)
  • 去除 storage 中的 errHandle 参数 (3befe64)
  • 移除分段锁map实现及 hash.Map、hash.ReadonlyMap 接口,移除 asynchronous 包,同步包更名为 concurrent (d0d2087)
  • 重构 poker 包为全泛型包,支持通过 poker.Matcher 根据一组扑克牌选出最佳组合 (d71d843)

0.0.19 (2023-07-20)

Bug Fixes | 修复

  • 修复 onStop 无法等待逻辑执行完成的问题 (037c9b7)

0.0.18 (2023-07-19)

Features | 新特性

  • builtin.Player 可以通过 GetConn 函数获取到网络连接 (31ad0ee)
  • storage 添加内置实现的文件存储器,可以通过 storages 包进行使用 (c447c8a)
  • 支持使用 super.RegError 函数为错误注册全局错误码,使用 super.GetErrorCode 根据错误获取全局错误码 (1dcbd0a)
  • 支持通过 timer.CalcNextTimeWithRefer 计算下一个整点时间 (8835e4a)
  • 新增 storage 支持数据持久化 (f59354d)

Tests | 新增或优化测试用例

  • 新增 GlobalDataFileStorage 和 IndexDataFileStorage 的测试用例 (4378aa0)

0.0.17 (2023-07-18)

Bug Fixes | 修复

  • 修复主键为空的数据被导出的问题 (ab0a7cb)

Features | 新特性

  • 增加部分字符串转换函数 (28c6097)
  • 通过 golang 模板生成的配置结构代码支持通过 Sync 函数执行安全的配置操作,避免配置被刷新造成的异常 (8bbd495)

0.0.16 (2023-07-17)

Bug Fixes | 修复

  • 修复 server.Server 部分事件中发生 panic 导致程序退出的问题 (0215d9f)

Styling | 可读性优化

  • 去除部分无用字段,优化整体可读性 (c1e3c65)

Other | 其他更改

  • pce.ce 包提供内置的 xlsx 配置表 (91b2b52)
  • 日志字段调用由 zap.Field 更改为 log.Field (8e2b4eb)
  • 配置导出 Golang 结构体注释优化 (9349e3c)
  • 配置导表优化 (130869a)

Features | 新特性

  • super 包支持 match 控制函数 (25ed712)
  • super 包支持使用 super.GoFormat 函数格式化 go 文件 (3ee638f)
  • 修复 server.PushAsyncMessage 无法正确调用回调函数的问题 (1b9ec9f)
  • 重构 config 和 configexport 包 (7e7a504)

0.0.15 (2023-07-14)

Bug Fixes | 修复

  • 修复 log 无法正确打印 Caller 的问题 (349ec42)

Other | 其他更改

Features | 新特性

  • 新增 steram 包,支持 map 和 slice 的链式操作 (10fcb54)

0.0.14 (2023-07-13)

Features | 新特性

  • slice 包支持获取数组的部分数据 (c211d62)
  • 支持通过 file.FilePaths 获取目录下所有文件,通过 file.LineCount 统计文件行数 (0c5ff89)
  • 支持通过 server.NewPacket、 server.NewWSPacket、server.NewPacketString、server.NewWSPacketString 函数快捷创建数据包 (26993d9)
  • 支持通过 server.SetMessagePacketVisualizer 函数设置服务器数据包消息可视化函数 (676b542)

Performance Improvements | 性能优化

  • 调整 server.DefaultMessageChannelSize 为 65535,优化默认内存占用 (3e9d56e)

0.0.13 (2023-07-12)

Performance Improvements | 性能优化

  • 优化代码结构,去除无用代码,去除重复代码 (47b8a33)

Other | 其他更改

  • 修改 server.Server 慢消息检测的异步消息判定条件为 1 秒 (8917326)

Code Refactoring | 重构

  • log 包重构,优化使用方式 (98234e5)
  • 任务 task 包重构 (a23e48b)

Features | 新特性

  • str 包增加内置字符 Dunno、CenterDot、Dot、Slash 和其 []byte 形式 (94147e8)
  • 可使用 super.NewStackGo 创建用于对上一个协程堆栈进行收集的收集器 (a4a27ea)
  • 支持通过 super.StackGO 进行跨协程同步运行堆栈抓取 (b5a4bc9)

Bug Fixes | 修复

  • 修复服务器消息报错不打印堆栈信息的问题 (aa39d39)

0.0.12 (2023-07-11)

Code Refactoring | 重构

  • server.WithPprof 名称修改为 server.WithPProf (50ab92e)

Bug Fixes | 修复

  • 修复配置导出 Go 代码注释错误问题 (9f2242b)

Styling | 可读性优化

  • 优化 server 包代码可读性 (74c8f21)

Docs | 文档优化

Features | 新特性

  • server 包 websocket 服务器支持压缩 (6962cf4)
  • server.Server 将记录在线的连接信息,可获取到在线连接和计数等 (8368fe0)

0.0.11 (2023-07-10)

Bug Fixes | 修复

  • 修复 Multiple 模式下启动服务器 listen 有时无法打印的问题 (d972dc8)
  • 修复 server.Server 关闭时线程池未释放的问题 (7228a07)
  • 修复异步慢消息追踪不生效的问题 (7b8af05)
  • 修复配置字段描述换行的情况下导出的 Go 代码编译报错问题 (e676982)

Performance Improvements | 性能优化

  • 调整 server.WithBufferSize 默认值 (1ad6577)

Features | 新特性

  • 增加任务功能 (bdeaa5a)
  • 支持对 HTTP 服务器通过 server.WithPprof 开启 pprof (53e91d1)
  • 支持对消息增加 mark 标记,可在执行 Message.String() 函数时进行展现 (1e6974a)

0.0.10 (2023-07-07)

Tests | 新增或优化测试用例

Code Refactoring | 重构

  • 优化 server 消息类型,合并 Websocket 数据包监听到统一的 RegConnectionReceivePacketEvent 中 (8b90307)
  • 服务器支持异步消息类型、死锁阻塞、异步慢消息检测 (1a2c1df)
  • 私有化服务器 PushMessage 函数,移除 PushCrossMessage 函数,改为使用 server.PushXXXMessage 函数 (6d27433)
  • 移除服务器多核和分流模式的可选项 (7e67775)

0.0.9 (2023-07-06)

Bug Fixes | 修复

  • 修复导出配置 JSON 特殊字符被转义的问题 (193763e)
  • 修复请求成功 server.Conn 的 callback 不调用的问题 (8e3325f)
  • 修复释放定时器后可能造成空指针的问题 (9f27102)

Other | 其他更改

  • 移除 server.Server.OnConnectionClosedEvent 和 server.Server.OnConnectionOpenedEvent 的日志 (7065448)

Features | 新特性

  • 支持通过 hash 包随机的读取 map 数据 (9a35486)
  • 支持通过 server.Server.RegStopEvent() 函数注册服务器关闭事件 (18b9598)

0.0.8 (2023-07-05)

Styling | 可读性优化

  • 导出日志增加已导出的表信息 (741da79)

Performance Improvements | 性能优化

  • 移除向连接发送数据时的空包处理 (e0571c7)

Code Refactoring | 重构

  • 由于设计不合理,移除排行榜中的 CompetitorIncrease 函数 (0f125d4)

Tests | 新增或优化测试用例

  • 新增 ranking_list 测试用例,调整 aoi2d_test.go 的 packge 为 builtin_test (b5b428d)

Docs | 文档优化

  • 排行榜 GetRank 函数增加注释,提示排名从 0 开始 (1001d50)

Other | 其他更改

  • 在 README.md 中添加 JetBrains OS licenses 信息 (b234568)

Bug Fixes | 修复

  • 配置加载后无限刷新修复 (6634aa6)

Features | 新特性

  • server.New 支持通过 server.WithWebsocketReadDeadline 设置超时时间 (2513714)
  • 可通过 slice.Merge 合并多个切片数据 (ebfdd7c)
  • 支持在重连等情况时使用 server.Conn.Reuse 函数重用连接数据 (6144dd6)
  • 支持对 server.Conn 写入时调用带有 Callback 的写入函数 (4717566)
  • 新增重试函数及两个关于 func 执行的辅助函数 (ee87612)

0.0.7 (2023-07-05)

Features | 新特性

  • 导表工具导出的 Golang 代码将携带配置名称签名 (8576d0f)

Code Refactoring | 重构

  • 日志设置生产模式和开发模式写入文件支持开关 (c6073a9)
  • 重构 server.ConnectionClosedEventHandle,修复部分问题 (e0c63d5)

Bug Fixes | 修复

  • 修复 server.Multiple 关闭服务器空指针异常 (1136af4)
  • 配置导表部分未填写的字段导致整个表被截断问题处理 (65aac67)

0.0.6 (2023-07-03)

Features | 新特性

  • 日志 log 包支持更多设置 (83e0675)

0.0.5 (2023-07-03)

Other | 其他更改

  • 删除 net 包中的不合理函数 (f22bf5b)

Features | 新特性

  • 为 slice 包添加更多的辅助函数 (d4d11f2)
  • 配置导出生成的 Go 代码支持获取所有线上配置的集合 (68cb5f2)

0.0.4 (2023-07-01)

Bug Fixes | 修复

  • 多服务器情况下日志错乱及无法正常 Shuntdown 问题修复 (67616b2)

Tests | 新增或优化测试用例

  • components.Moving2D 增加示例 (01bafe6)
  • components.Moving2D 测试用例优化 (49bc143)

Features | 新特性

  • components.Moving2D 支持停止移动事件注册 (f67a66d)
  • 对 poker.Rule 提供功能的辅助函数 (0172c67)
  • 服务器支持通过 server.WithDiversion 可选项对数据包消息进行分流处理 (73cefc9)

Code Refactoring | 重构

  • 导表工具重构,增加部分特性,修复部分问题 (afdda79)

0.0.3 (2023-06-30)

Bug Fixes | 修复

  • 修复 file.ReadOnce 读文件错误 (b0ae569)

Features | 新特性

  • generic 包支持检查泛型类型是否为空指针 (6023f59)
  • maths 包支持比较一组数是否连续 (0ab38c7)
  • timer.Ticker 支持附加标记信息 (db51edf)
  • 增加时间段 times.Period 数据结构 (a6ca8a9)

Code Refactoring | 重构

  • 重构 poker 包设计,移除 Poker 结构体,以 Rule 结构体进行取代 (d1b7699)
  • 重构游戏活动实现 (390e8e7)

Tests | 新增或优化测试用例

0.0.2 (2023-06-27)

Features | 新特性

  • 增加时间转换辅助函数 (05a328e)
  • 增加更多的时间处理函数 (2127978)
  • 支持获取全局偏移时间 (77e7d46)
  • 新增全局偏移时间 (6c4f59f)
  • 新增游戏活动功能支持 (83531b6)

Bug Fixes | 修复

  • 修复使用 int 和 math.MaxUint 比较导致溢出的问题 (a4e9b5f)

0.0.1 (2023-06-26)

Features | 新特性

  • 支持通过 server 包支持快速创建 TCP、UDP、Websocket、UnixSock、HTTP、GRPC、KCP 服务器
  • 支持通过 router 包创建最多支持三级的路由器
  • 支持通过 cross 对 server 创建的服务器提供跨服支持
  • 通过 configexport 包提供了针对策划及开发人员的配置表模板及导表工具,支持导出 json 和 go 配置文件
  • 支持通过 notify 包快速实现通知功能,默认支持飞书群聊机器人通知
  • 组件 component 包中提供了帧同步组件的实现及 2D 移动组件的实现
  • 支持通过 report 包实现快捷的数据上报功能
  • utils 包中提供了大量常用的辅助函数
    • asynchronization 包中提供了实现了 hash.Map 的非并发安全 map 数据结构
    • compress 包中提供了 gzip 压缩与解压缩的算法
    • crypto 包中支持对数据进行 base64、crc、md5、sha1、sha256 的编码解码函数
    • file 包中提供了常用的文件操作函数
    • generic 包中提供了常见的泛型约束
    • geometry 包中提供了几何相关的处理函数,包括线、形状、点等内容
      • astar 包中提供了 A* 算法的实现
      • dp 包中提供了基于二维数组的分布链接的机制,可以快速查找与给定成员具有相同特征且位置紧邻的其他成员
      • matrix 包中提供了一个简单的二维矩阵实现
      • navmesh 包提供了基于 astar 的网格寻路功能
    • hash 包提供了常用了 hashmap 转换、接口等功能
    • huge 包提供了 int 类型的大整数实现
    • log 包中提供了基于 zap 的默认日志组件
    • maths 包中提供了常用的数学处理函数
    • network 包中提供了常用的网络辅助函数
    • offset 包中提供了带偏移的时间实现
    • random 包中提供了常用的随机函数,包括随机 hash、名称等
    • runtimes 包中提供了常用的运行时辅助函数
    • slice 包中提供了基于切片的辅助函数
    • sole 包中提供了 guid 和 雪花id 的实现
    • str 包中提供了常用的字符串处理函数
    • super 包中提供了 if 的三目表达式函数
    • synchronization 包中提供了并发安全的数据结构
    • timer 包中提供了定时器组件
    • times 包中提供了常用的时间处理函数