在(一)中,介绍了c对lua层的拓展,这边主要写lua层的网络部分,目标是实现RPC调用,实现主要是三部分: 1通信协议(消息的序列化和反序列化) rpc调用主要信息包括方法名,方法参数,设计的通信协议如下:字节长度(4字节)|方法名|方法参数因为方法参数是由1个表序列化来的,必然以’{‘开头,所以可以区分方法名和方法参数.local data=_encodefuncname, funcarg)local funcname, funcarg=_decode(data)以上两个方法分别对应消息的序…
把工作几年服务器相关的部分内容,通过服务器解决方案,做一次总结.整个实现的主体是lua脚本,lua实现主要缺少的两大块:1网络部分2数据库部分这两部分必须通过c/c++做扩展先来做net,主要是服务器net,和客户端net.服务器发起连接的情况主要是用于和平台验证,上报之类的,还有服务间通信,接口如下:_connect(ip, port, onconnect, onclose, timeout)参数:ip,地址port 端口onconnect 连接上的回调onclose 关闭的回调timeout…
sql的通用缓存,是实现最麻烦的一部分,对于查询结果的缓存,主要有如下的结构来缓存: cache tablename--player statement--select * from player where vip>1 key1 key2 ... lastkey=查询结果 statement2--select * from player where name='acdf' key1=查询结果 当下次有同样的查询来时,不用执行sql语句,直接把查询结果返回即可,如果在逻辑缓存没有发现,就直接从数…
上一篇说的是liua的net拓展,这一篇说lua的sql拓展,准确说是mysql拓展,这里推荐下postgre,比mysql好用,支持数组,各种好,不过腾讯平台不支持,所以你的公司要和腾讯合作,掂量下吧 c部分本质使用prestatement 接口:_sql.new(host, user, password, db, port ,timeout) 参数不多做解释,返回sql对象 sql相关方法: sql:run(statement, arg1, arg2,..);--prestatement执行…
<腾讯桌球:客户端总结> 本次分享总结,起源于腾讯桌球项目,但是不仅仅限于项目本身.虽然基于Unity3D,很多东西同样适用于Cocos.本文从以下10大点进行阐述: 架构设计 原生插件/平台交互 版本与补丁 用脚本,还是不用?这是一个问题 资源管理 性能优化 异常与Crash 适配与兼容 调试及开发工具 项目运营 1.架构设计 好的架构利用大规模项目的多人团队开发和代码管理,也利用查找错误和后期维护. 框架的选择:需要根据团队.项目来进行选择,没有最好的框架,只有最合适的框架. 框架的使用:…
作者:吴秦出处:http://www.cnblogs.com/skynet/本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名吴秦(包含链接). (转)<腾讯桌球:客户端总结> 本次分享总结,起源于腾讯桌球项目,但是不仅仅限于项目本身.虽然基于Unity3D,很多东西同样适用于Cocos.本文从以下10大点进行阐述: 架构设计 原生插件/平台交互 版本与补丁 用脚本,还是不用?这是一个问题 资源管理 性能优化 异常与Crash 适配与兼容 调试及开…
Survive之前采用的是C+lua的设计方式,其中网关服务器全部由C编写,其余服务全部是C框架运行lua回调函数的方式编写游戏逻辑. 鉴于一般的手游对服务器端的压力不会太大,便将Survive用distri.lua框架重写了一便,distri.lua天生的支持协程,RPC和数据库访问直接使用同步接口实现,大大减少了对回调函数的使用,也使得逻辑代码的编写更加清晰和直观. 首先简单介绍一下Survive,Survive是我目前开发的手机游戏使用的服务器的开源版本,因为是一个开源框架,所以Survi…
微信公众号[程序员江湖] 作者黄小斜,斜杠青年,某985硕士,阿里 Java 研发工程师,于 2018 年秋招拿到 BAT 头条.网易.滴滴等 8 个大厂 offer,目前致力于分享这几年的学习经验.求职心得和成长感悟,以及作为程序员的思考和见解.(关注公众号后回复”资料“即可领取 3T 免费技术学习资源) ​ 文章版权归腾讯GAD所有,禁止匿名转载:禁止商业使用:禁止个人使用. 一.前言 从去年12月份开始,到现在,我全程参与了公司一款SLG手游的研发,负责整个游戏的服务端部分.这也是我第一次…
文章版权归腾讯GAD所有,禁止匿名转载:禁止商业使用:禁止个人使用. 一.前言 上文介绍了我们的SLG手游的服务器架构设计以及网络通信部分,本文介绍数据管理部分,在数据存储方面,我选择了Mysql.Memcache和Redis,利用这三种数据库各自的优势,各自发挥所长,在项目中有着不同的应用. 二.游戏数据分析 前文已经对游戏数据做了大概的分析,如下图所示: 这是我个人对游戏中的数据进行的一种划分.其中,游戏数据直接使用代码将表文件中的数据加载到内存,然后从内存中读取数据即可.玩家数据则分为了热…
近些年,掌上游戏时代已经成为全民风尚,但身为游戏开发商考虑过手游安装包大小与用户转化率之间的关系吗? 随着手机游戏市场发展愈发壮大,行业发展愈加成熟,手游厂商愈来愈多,手游产业也进入了优胜劣汰的环节,产业的阵痛也凸显了出来.手游安全.用户体验度.优质游戏包体太大.游戏版本更新导致用户流失等等,这些都与手游厂商生存息息相关. 尤其是游戏包体的大小直接关系到了游戏厂商推广渠道的成本问题.想要高质量,意味着包体变大,压缩包体却会有损游戏质量,这样的难题在手游行业由来已久.不同类型的游戏都有其包体体积的…