季度更新日志2025-1 2025-3 最终还原perl环境 pb 打包sharedata数据应注意先copy 编译好skynet_sly之后,perl没有还原,会影响到系统其他软件正常工作。 pb打包用sharedata共享的table时,数据打包不进去。怀疑是因为sharedata是skynet封装的c object,pb底层无法识别访问,通过先深拷贝sharedata表,再传入pb打包可以规避此问题。 优化sharedata_s 2025-01-09 季度更新日志 > 2025 #季度更新日志
2024 年度总结 前言今年是skynet_fly的第二年,但是这却是skynet_fly的第一篇年度总结,我相信这肯定不是最后一篇,第一年是因为确实没有这个规划,这个想法也是2024的最后一天才有的。想着这一年加了很多新东西,也方便使用者能快速知道这一年更新了什么,也算是对skynet_fly做一个年度回顾吧,可能会有一些遗漏,因为是临时起意,不是修改后立马写记录,只能靠记忆和查阅提交记录来汇总了。来年想着安排一个 2024-12-31 年度总结 > 2024 #年度总结
可热更匹配房间类游戏架构基础设施 客户端 rpc 协议的支持 前言一开始,对与客户端交互协议仅仅提供了name, body,包名加包体的简单打包方式,对于body大家可以自由选择任意编码解码方式(json、protobuff、sproto …)。后面觉得name少许增加了包体大小,就新增了packid,body协议码加包体的方式。这两种方式都没法让客户端rpc调用服务端,客户端在编码时只能监听服务端的各种消息,有时候非常不方便。于是就有打算新增 客户端rpc 2024-12-29 skynet_fly 文档 > 强化篇 #skynet_fly_word
全局唯一ID(guid)的生成 利用雪花算法生成全局GUID。 machine_id 机器号 可分配 8191个 time 时间支持到 21060207 14:28:15 也就是说到这个时间,这个雪花算法就用不了了 incr 同一秒支持分配 262143 分配guid M.new_guid() 函数作用域:M 对象的成员函数 描述: 分配guid 参数: 无 返回值 guid(number): 全局唯一ID 2024-12-01 skynet_fly_api #skynet_fly_api
服务录像与重放 前言对于复杂的业务逻辑,出现的bug,通过日志手段或者review代码都没法查明原因的情况下,这时候我们可以通过服务录像重放来还原整个事故现场。 实现方案skynet是多线程的,不太方便对整个进程进行录像,而对于skynet的单个服务,能保证消息是同步处理的,所以可以比较方便实现对于单个服务录像,可以同时录制多个服务。实现思路就是把所有消息记录下来,重放时读取记录,解析重放即可。其中有一些细节点, 2024-10-27 skynet_fly 文档 > 强化篇 #skynet_fly_word
代码加密 前言很多群友都有加密代码的需求。为了群友辛辛苦苦写的游戏不被人轻易白嫖,这必须得安排上。 实现方案lua加载代码通常都是用loadfile跟require,所以我们可以先把lua文件通过string.dump打成二进制格式,再通过加密算法加密,之后直接使用加密的文件去运行,通过重写loadfile的底层函数,内置解密过程,即可实现代码加密的效果。 如何使用修改解密key修改skynet_fly\s 2024-10-14 skynet_fly 文档 > 强化篇 #skynet_fly_word
sharedata.lua 共享配置数据 sharedata.lua加载配置 M.load(dir_list, mode) 函数作用域:M 对象的成员函数 描述: 以mode方式加载指定dir_list目录列表的lua配置文件 参数: - dir_list (table): 路径列表 - mode (number): 模式 访问对象 M:new(file_path, mode) 函数作用域:M 对象的成员函数 描述: 2024-09-14 skynet_fly_api #skynet_fly_api
共享配置数据 前言由于skynet每个服务都是独立的lua虚拟机,一般游戏开发又需要加载大量的配置文件,如果每个服务都加载一遍,会造成过多的内存浪费,所有skynet就提供了sharedata,sharetable共享配置数据的手段。由于两种方案各有优缺点,所以我在封装实现上让使用者可以任选其一,在make/script增加热更配置命令,方便于热更配置。 优缺点对比sharedata 优点 c内存占 2024-09-14 skynet_fly 文档 > 强化篇 #skynet_fly_word
常见问题收录 问题11234root@VirtualBox:/skynet_fly/test# sh ../binshell/make_server.sh ../: not found/make_server.sh: 3:: not found/make_server.sh: 5:../binshell/make_server.sh: 24: Syntax error: end of file unexpect 2024-08-17 skynet_fly 文档 > 入门篇 #skynet_fly_word
断点调式的支持 前言很多群友都问怎样调试skynet_fly,于是就有了对单点调式的支持,调式对于老手来说并不是那么的必要,对于新手来说确实有助于编码学习,毕竟刚学编程那会儿也比较依赖调试,后面逐渐习惯用打印日志的方式查找问题。 实现方案在vscode有部分插件说支持了对skynet的调试,我跟着他们的步骤进行操作,都没能成功调试。之后尝试能不能用lua helper插件支持的调式功能。研究之后发现lua hel 2024-08-03 skynet_fly 文档 > 强化篇 #skynet_fly_word