Yaoxh6 Blog

「Getting Started」

skynet

skynet学习

启动流程 入口在skynet_main.c文件的main函数, 在必要的初始化之后调用skynet_start,这里为所有线程以及模块加载的入口。 skynet_start 在这个函数里主要做了两件事情,第一初始化了logger模块,第二个启动bootstrap,第三是创建了多线程用于整个游戏的服务。 logger logger模块一般是最先启动的模块,通过skynet_context_ne...

rockgo实现思路

分布式游戏服务器框架

前言 最近刚加入了rockgo开源项目,一边阅读源码一边记录。该项目是基于ECS思想,go语言实现的游戏服务端框架。截至今日,master分支实现的功能还不完全基于ECS,并且还有一些要完善。先对master分支现存的代码分析,后续完善代码补充文档。 模块 根据example中的SingleNodeWithActor例子分析,该例子比较全面,各个模块均使用到 conf & laun...

自定义rpc学习

demo介绍 写了一个简单的lua到go服务的rpcdemo 只专注实现流程,功能和细节全部不完善,目前只能实现lua侧call到go侧并且得到结果回调处理。 目前项目的不足 单对单服务, 缺少名字服务组件,直接用简单的tcp连接,这样在调用远程方法的时候不需要指定服务名, 因为只是简单的实现, 没有服务注册。所以transport组件还有待更新。 目前lua_server与...

luna库使用

仓库地址 luna库主要作用是lua/c++绑定, 即方便导出c++类供lua使用 luna库地址 使用demo地址 luna库使用方法 c++侧 class中使用DECLARE_LUA_CLASS(navmesh); 1 2 3 4 5 6 7 class navmesh { public: navmesh() = default; ~navmesh(); ...