摘要: 如题 得益于一年前,重构juggle的codegen代码时,比较完善的分离了parser和codegen的模块, 在parser模块部分,把dsl脚本 解析成如下的dict: dict中的一个key/value对表示一个module,其中key表示module的命名,value表示module中声明 阅读全文
posted @ 2018-03-21 13:06 芊芊水 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 今年年初到现在,利用周末的时间和几个小伙伴做了一款棋牌游戏,可惜没有赚到钱:) 所以干脆开源出来做引擎的demo github地址:https://github.com/qianqians/abelkhan_demo_mj 代码写的比较乱,因为是周末赶工,赶出来的 一个比较大的收获是通过这个项目的上 阅读全文
posted @ 2017-12-15 14:34 芊芊水 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 排行榜是游戏中一个常见的系统,不过要做好并不容易,比如要对全服几W名玩家做实时排行的话,性能需要花心思去优化的问题。 这里设计了一个基于桶排序的面向全服玩家的通用排行榜 一个简单的思路就是按排序的KEY的分值进行分桶,但是一个弊端就是随着游戏生命推进,会出现一个分数段类的玩家大规模集中,导致分桶失去 阅读全文
posted @ 2017-08-05 01:19 芊芊水 阅读(813) 评论(0) 推荐(0) 编辑
摘要: rpc简介:http://www.ibm.com/developerworks/cn/aix/library/au-rpc_programming/index.html 常见的rpc框架有protobuf、thrift。 不过abelkhan没有采用这些开源的rpc框架,而是选择自己开发了一套新的r 阅读全文
posted @ 2016-07-21 21:09 芊芊水 阅读(394) 评论(0) 推荐(0) 编辑
摘要: abelkhan github:https://github.com/qianqians/abelkhan abelkhan编译文档 在编译abelkhan之前,需要先编译第三方库boost、libbson和mongo-c-driver 编译好的boost文件请保存在\thirdpart\c++\b 阅读全文
posted @ 2016-07-20 20:45 芊芊水 阅读(244) 评论(0) 推荐(0) 编辑
摘要: abelkhan是一个开源的游戏服务器框架。目标是提供一个稳定、高效、可扩展的服务器框架。 github:https://github.com/qianqians/abelkhan 论坛:http://abelkhan.com/forum.php?mod=forumdisplay&fid=2 博客: 阅读全文
posted @ 2016-07-20 20:42 芊芊水 阅读(272) 评论(0) 推荐(0) 编辑
摘要: c++11新增的容器1:array array最早是在boost中出现:http://www.boost.org/doc/libs/1_61_0/doc/html/array.html 当时的初衷是希望提供一个在栈上分配的,定长数组,而且可以使用stl中的模板算法。 array的用法如下: c++1 阅读全文
posted @ 2016-07-16 20:54 芊芊水 阅读(3120) 评论(0) 推荐(1) 编辑
摘要: c++11新语法1: auto关键字 c++11 添加的最有用的一个特性应该就是auto关键字。 不知道大家有没有写过这样的代码: 甚至比这个更复杂的模板嵌套。 这种情况下,不但代码冗长,而且容易出错,出错之后的编译错误提示信息也难以阅读 而使用auto则可以大幅的简化代码的编写,也减少拼写出错的可 阅读全文
posted @ 2016-07-13 22:57 芊芊水 阅读(1101) 评论(0) 推荐(0) 编辑
摘要: 常规的网络编程,在消息处理上大概会采用如下方式 定义如上的消息结构 接收方接收后,按如上的消息结构解析数据 然后消息处理,会按msg_id,将消息分发到不同的消息处理函数 RPC则是对这种繁琐的消息处理过程做了封装,自动生成一一对应的消息响应代码,使开发者可以专注于逻辑的处理。 典型的RPC框架有p 阅读全文
posted @ 2016-07-08 12:47 芊芊水 阅读(696) 评论(1) 推荐(1) 编辑
摘要: 在c++中,如果要实现这样一个功能,比如定时器,在指定的时间执行指定的函数,接口可以采用如下的设计 在实现上可以采用如下的方式 这样即可将需要在将来执行的函数保存在一个map中,然后在时间到达之后调用。 用户使用这样的一组接口的方式可以是 而在c#中实现相同的功能则采用的是委托 用户调用时,采用如下 阅读全文
posted @ 2016-07-02 14:08 芊芊水 阅读(261) 评论(0) 推荐(0) 编辑