页游手游服务器(五)sql缓存层】的更多相关文章

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执行…
把工作几年服务器相关的部分内容,通过服务器解决方案,做一次总结.整个实现的主体是lua脚本,lua实现主要缺少的两大块:1网络部分2数据库部分这两部分必须通过c/c++做扩展先来做net,主要是服务器net,和客户端net.服务器发起连接的情况主要是用于和平台验证,上报之类的,还有服务间通信,接口如下:_connect(ip, port, onconnect, onclose, timeout)参数:ip,地址port 端口onconnect 连接上的回调onclose 关闭的回调timeout…
在(一)中,介绍了c对lua层的拓展,这边主要写lua层的网络部分,目标是实现RPC调用,实现主要是三部分: 1通信协议(消息的序列化和反序列化) rpc调用主要信息包括方法名,方法参数,设计的通信协议如下:字节长度(4字节)|方法名|方法参数因为方法参数是由1个表序列化来的,必然以’{‘开头,所以可以区分方法名和方法参数.local data=_encodefuncname, funcarg)local funcname, funcarg=_decode(data)以上两个方法分别对应消息的序…
<腾讯桌球:客户端总结> 本次分享总结,起源于腾讯桌球项目,但是不仅仅限于项目本身.虽然基于Unity3D,很多东西同样适用于Cocos.本文从以下10大点进行阐述: 架构设计 原生插件/平台交互 版本与补丁 用脚本,还是不用?这是一个问题 资源管理 性能优化 异常与Crash 适配与兼容 调试及开发工具 项目运营 1.架构设计 好的架构利用大规模项目的多人团队开发和代码管理,也利用查找错误和后期维护. 框架的选择:需要根据团队.项目来进行选择,没有最好的框架,只有最合适的框架. 框架的使用:…
作者:吴秦出处:http://www.cnblogs.com/skynet/本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名吴秦(包含链接). (转)<腾讯桌球:客户端总结> 本次分享总结,起源于腾讯桌球项目,但是不仅仅限于项目本身.虽然基于Unity3D,很多东西同样适用于Cocos.本文从以下10大点进行阐述: 架构设计 原生插件/平台交互 版本与补丁 用脚本,还是不用?这是一个问题 资源管理 性能优化 异常与Crash 适配与兼容 调试及开…
微信公众号[程序员江湖] 作者黄小斜,斜杠青年,某985硕士,阿里 Java 研发工程师,于 2018 年秋招拿到 BAT 头条.网易.滴滴等 8 个大厂 offer,目前致力于分享这几年的学习经验.求职心得和成长感悟,以及作为程序员的思考和见解.(关注公众号后回复”资料“即可领取 3T 免费技术学习资源) ​ 文章版权归腾讯GAD所有,禁止匿名转载:禁止商业使用:禁止个人使用. 一.前言 从去年12月份开始,到现在,我全程参与了公司一款SLG手游的研发,负责整个游戏的服务端部分.这也是我第一次…
文章版权归腾讯GAD所有,禁止匿名转载:禁止商业使用:禁止个人使用. 一.前言 上文介绍了我们的SLG手游的服务器架构设计以及网络通信部分,本文介绍数据管理部分,在数据存储方面,我选择了Mysql.Memcache和Redis,利用这三种数据库各自的优势,各自发挥所长,在项目中有着不同的应用. 二.游戏数据分析 前文已经对游戏数据做了大概的分析,如下图所示: 这是我个人对游戏中的数据进行的一种划分.其中,游戏数据直接使用代码将表文件中的数据加载到内存,然后从内存中读取数据即可.玩家数据则分为了热…
Survive之前采用的是C+lua的设计方式,其中网关服务器全部由C编写,其余服务全部是C框架运行lua回调函数的方式编写游戏逻辑. 鉴于一般的手游对服务器端的压力不会太大,便将Survive用distri.lua框架重写了一便,distri.lua天生的支持协程,RPC和数据库访问直接使用同步接口实现,大大减少了对回调函数的使用,也使得逻辑代码的编写更加清晰和直观. 首先简单介绍一下Survive,Survive是我目前开发的手机游戏使用的服务器的开源版本,因为是一个开源框架,所以Survi…
近些年,掌上游戏时代已经成为全民风尚,但身为游戏开发商考虑过手游安装包大小与用户转化率之间的关系吗? 随着手机游戏市场发展愈发壮大,行业发展愈加成熟,手游厂商愈来愈多,手游产业也进入了优胜劣汰的环节,产业的阵痛也凸显了出来.手游安全.用户体验度.优质游戏包体太大.游戏版本更新导致用户流失等等,这些都与手游厂商生存息息相关. 尤其是游戏包体的大小直接关系到了游戏厂商推广渠道的成本问题.想要高质量,意味着包体变大,压缩包体却会有损游戏质量,这样的难题在手游行业由来已久.不同类型的游戏都有其包体体积的…
从swoole项目开始到现在,一直有人在问这个问题.今天来抽空讲一下它.为什么swoole非要使用纯C来写而不是PHP代码来实现,核心的原因有2点: 1. PHP无法直接调用操作系统API 如sendfile.eventfd.timerfd.pthread等等,这里就不一一列举了,所以纯PHP实现的 phpdaemon,reactphp,还有最近刚刚出来的workerman.这些框架都是基于PHP的sockets/pcntl/stream /libevent扩展实现,提供的功能很有限,很多功能都…
http://blog.csdn.net/janeky/article/details/17666409 上一次我们学习了如何将资源进行打包.这次就可以用上场了,我们来探讨一下手游资源的增量更新策略.注意哦,只是资源哦.关于代码的更新,我们稍后再来研究.理论上这个方案可以使用各种静态资源的更新,不仅仅是assetbundle打包的. (转载请注明原文地址http://blog.csdn.net/janeky/article/details/17666409) 原理 现在的手游安装有几种方式.一种…
原地址:http://blog.csdn.net/dingxiaowei2013/article/details/20079683 我们学习了如何将资源进行打包.这次就可以用上场了,我们来探讨一下手游资源的增量更新策略.注意哦,只是资源哦.关于代码的更新,我们稍后再来研究.理论上这个方案可以使用各种静态资源的更新,不仅仅是assetbundle打包的. (转载请注明原文地址http://blog.csdn.net/janeky/article/details/17666409) 原理 现在的手游…
最近梳理了下游戏流程.恩,本来想写下,但是,还是看前辈的吧 版权声明: https://blog.csdn.net/janeky/article/details/17666409 上一次我们学习了如何将资源进行打包.这次就可以用上场了,我们来探讨一下手游资源的增量更新策略.注意哦,只是资源哦.关于代码的更新,我们稍后再来研究.理论上这个方案可以使用各种静态资源的更新,不仅仅是assetbundle打包的. (转载请注明原文地址http://blog.csdn.net/janeky/article…
<疯狂iOS讲义(下)——iPhone/iPad高级应用与手游开发(含CD光盘1张)> 基本信息 作者: 李刚    肖文吉 出版社:电子工业出版社 ISBN:9787121224379 上架时间:2014-2-21 出版日期:2014 年3月 开本:16开 页码:628 版次:1-1 所属分类:计算机 > 软件与程序设计 > 移动开发 > iPhone   更多关于>>> <疯狂iOS讲义(下)——iPhone/iPad高级应用与手游开发> 编…
http://blog.csdn.net/janeky/article/details/17666409 =============================================== 资源需要加密的话,采用lz4加密 =============================================== 上一节在这:http://blog.csdn.net/janeky/article/details/17652021  建议看看,根据版本打包AB 上一次我们学习了如何…
WeTest 导读   本文作者从自身多年的Unity项目UI开发及优化的经验出发,从UGUI,CPU,GPU以及unity特有资源等几个维度,介绍了unity手游性能优化的一些方法.   在之前的文章<手游内存占用过高?如何快速定位手游内存问题>中提到,Mono内存和native内存是PSS内存主要的组成部分,mono内存更多的起到内存调用的功能,因此常常成为了开发人员优化内存的起点:而在游戏的其他的进程中,同样有很多因素影响着游戏的性能表现.本文将从UGUI的优化角度,介绍unity游戏性…
Cocos2d-x 3.X手游开发实例详解(最新最简Cocos2d-x手机游戏开发学习方法,以热门游戏2048.卡牌为例,完整再现手游的开发过程,实例丰富,代码完备,Cocos2d-x作者之一林顺和泰然网创始人杨雍力荐) 于浩洋 著   ISBN 978-7-121-23998-4 2014年9月出版 定价:59.00元 356页 16开 编辑推荐 以Cocos2d-x V3.0为框架全面讲解手游开发的知识和方法 以热门游戏2048.卡牌为例,完整再现手游的开发过程 Cocos2d-x作者之一林…
http://blog.csdn.net/janeky/article/details/17151465 开发一款网络游戏,首先要考虑的是客户端服务端之间用何种编码格式进行通信.之前我们介绍了Unity游戏前端使用protobuf的方法.今天我们来谈谈服务端如何使protobuf.游戏服务端语言百花齐放,除了比较传统的c/c++外,Java,Erlang,Python都有很多团队在使用. 今天推荐一下Java作为服务端开发语言.国内很多出色的页游和手游都是采用Java作为服务端语言的.比如<神曲…
weimjsam   引言 在最新的手游市场占有率统计中,腾讯游戏稳稳占据一半江山,目前仍以每月一到两款的速度推出新品,在如此复杂多变.响应要求极高的市场环境下,能持续推出高质量产品并保持高效迭代更新,不得不让人感慨腾讯游戏研发及运营能力的强大. 我们都知道,任何一个产品出厂前都应该有个合格的标签,用来证明产品质量要求达标,那么作为游戏上线前的质检员,腾讯游戏质量管理部门是如何快速.有效地完成游戏产品质量检测的呢? 通过本文你将会了解到,腾讯游戏上线前需要做一系列的测试,涵盖前后台性能.安全防护…
对于不同的游戏公司,面临的同一个问题就是怎样让海外玩家能够一眼在App中发现你,成为你的新用户:不仅如此,怎样留住这些用户,让他们成为你游戏的忠实玩家也是让全部游戏开发商困扰的一个问题. w=580&h=358" alt="" width="580" height="358" style="max-width:100%; height:auto; margin:0px"> Facebook携手香港品众…
2017年3月,腾讯正式于全平台上线了<龙之谷>手游,次日冲到了App Store畅销排行第二的位置,并维持到了现在.上线当日百度指数超过40万,微信游戏平台数据显示预约数780多万,而据内部人员透露当日新进用户200W+,这就是<龙之谷>手游在安卓平台上所取得的成绩. 较高的市场期待让腾讯测试团队对<龙之谷>手游的测试倾尽全力,面对"经典IP"和盛大游戏一贯口碑,腾讯测试团队对游戏服务器进行了严格的压力测试,上线后服务器稳定的表现也证明了测试团队的…
WeTest导读 俗话说:用户体验不谈性能就是耍流氓. 在PC游戏上的性能问题并没有那么明显, 加个内存换个CPU或者刷个主频就能轻松搞定:到了手游时代后情况则显得比较严峻,捉襟见肘的内存使得资源加载时就像如履薄冰,加上高中低不同配置的机型更加让性能问题显得很突出,一个低端机型上的卡顿就可能造成一大批用户的流失,这当然无法被忽视. 一.项目背景 <穿越火线-枪战王者>(简称:CFM)腾讯游戏在FPS移动领域的重要布局.CFM团队秉承多年来在射击游戏领域的积累,着力打造高品质的FPS手游,&qu…
作者:腾讯WeTest手游安全测试团队商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处. WeTest导读 <九州天空城3D>上线至今,长期稳定在APP Store畅销排行的前五,本文将介绍腾讯WeTest手游安全团队在游戏上线前为<九州天空城3D>挖掘安全漏洞的全过程. <九州天空城3D>(下文简称<九州>)是祖龙娱乐的一款正版授权次世代3D飞行手游,在8月,正式向全平台开放.作为一个前身是端游研发工作室的研发商,祖龙娱乐在<九州>…
2018年,随着全国暂停游戏版本的审核和发布<综合防控儿童青少年近视实施方案>(控制新的在线游戏数量),游戏行业受到的影响不小. 在游戏产业中,游戏行业2018年的收入同比增长5.2%,远低于过去两年的30.1%和26.7%的增长率.其中,手机游戏同比增长12.9%,而去年同比增长近50%.据说也大大减缓了. 充值红利和人口红利逐渐达到顶峰.基于购买量的中小型开发商的经营策略也越来越高.如何选择合适的渠道和与分销平台的多元化合作已成为中小型开发商.业绩良好发展的关键.作为一种游戏分发平台,传统…
1. 客户端地图格子的相关知识 在2.5D的MMO游戏里,角色是通过3D的方式渲染,2D的地图是通过2D的方式显示,所以在客户端一般会有三个坐标系: a) 3D坐标系:所有需要3D渲染的角色和光效,都以3D坐标系中定位. b) 2D坐标系:用来定位和绘制固定的2D地图元素,比如草皮.马路等. c) 3D坐标里的格子坐标系:用来实现打掩码.自动寻路和进行一些坐标配置(比如NPC和怪物初始的位置).使用格子坐标,一是为了方便打掩码和进行自动寻路的计算(经典的A*寻路),二是为了更方便查找坐标的具体位…
转自游戏开发主席 1. 客户端地图格子的相关知识 在2.5D的MMO游戏里,角色是通过3D的方式渲染,2D的地图是通过2D的方式显示,所以在客户端一般会有三个坐标系: a) 3D坐标系:所有需要3D渲染的角色和光效,都以3D坐标系中定位. b) 2D坐标系:用来定位和绘制固定的2D地图元素,比如草皮.马路等. c) 3D坐标里的格子坐标系:用来实现打掩码.自动寻路和进行一些坐标配置(比如NPC和怪物初始的位置).使用格子坐标,一是为了方便打掩码和进行自动寻路的计算(经典的A*寻路),二是为了更方…
4月11日,由unity公司举办的Unite 2016大会在上海正式举行,在4月12日的案例分享专场会议上,天神互动U3D高级开发工程师康凯以手游<苍穹变>为例讲述了3DMMOARPG游戏开发过程中的优化思路和方法. 以下是演讲实录:康凯:大家上午好,天神互动是一家2009年成立的公司,公司主要是开发MMO项目,产品有微端版的<苍穹变>在腾讯游戏大厅上线,我这次分享的是我们开发的手游版<苍穹变>的一些经验.我自己是天神互动unity3d高级开发工程师,在天神有机会参与P…
  本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.中手游等公司offer,岗位是Java后端开发,因为发展原因最终选择去了中手游,入职一年时间了,也成为了面试官,之前面试了很多家公司,感觉大部分公司考察的点都差不多,趁空闲时间,将自己的心得记下来,希望能给正在找或者准备找工作的朋友提供一点帮助.   下面提的问题可以看下你自己是否能回答出来,是否做好准备了,当然面试题准备是一方面,你本身的技能掌握是一方面,本身技能不过硬也会被刷下来,下面的图是进阶体系图可…
  本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.草花手游等公司offer,岗位是Java后端开发,因为发展原因最终选择去了草花手游,入职一年时间了,也成为了面试官,之前面试了很多家公司,感觉大部分公司考察的点都差不多,趁空闲时间,将自己的心得记下来,希望能给正在找或者准备找工作的朋友提供一点帮助.   下面提的问题可以看下你自己是否能回答出来,是否做好准备了,当然面试题准备是一方面,你本身的技能掌握是一方面,本身技能不过硬也会被刷下来,下面的图是进阶体系…