![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
游戏人生
mengmingqiang
这个作者很懒,什么都没留下…
展开
-
道具总结
道具的相关操作主要包括以下几个部分:1 增加道具(场景上增加和包裹里增加)2 删除道具(场景上删除和包裹里删除)3 移动道具 3.1 包裹里的移动 3.2 包裹间的移动 3.3 场景上移动到包裹里 3.4 包裹里移动到场景上原创 2011-08-31 15:31:58 · 366 阅读 · 0 评论 -
数据包大小多少最合适
服务器和客户端的数据交互,刚开始的办法是逐个数据包发送,并且是实时的,这样保证了数据能在最快的时间内到达,可是随着玩家数量的增加,弊端越来越明显,最大的弊端就是流量太大,这和数据包的压缩有关系。数据包的压缩比例与这个数据包的实际大小又有很大关系,数据包越大,重复数据越多,压缩比例就越大,反之,如果数据包很小,压缩后的大小没有减少很多,反而增加了压缩头,整个包的大小有可能反而增大了。并且,压缩和解压原创 2011-11-01 15:20:04 · 3537 阅读 · 0 评论 -
mysql 的table合并
mysql 在合并2个表格的时候没有检查2个表格字段是否一致,这回导致合并后的数据与原来的出现很大差异比如有2个表 `CharacterA`( `ID` int(10) unsigned NOT NULL, `NAME` varchar(32) CHARACTER SET latin1 NOT NULL, `LEVEL` tinyint(3) unsigned NO原创 2011-10-28 12:07:10 · 556 阅读 · 0 评论 -
关于技能,buff,装备的属性计算和更新的思考
游戏走上正轨了,不需要没日没夜的垒代码,今天很闲啊,顺便总结一下对玩家属性更新这个流程的想法吧。 属性更新就是当玩家的属性发生变化时,重新计算各项属性的值并更新到客户端,因为属性变化实在是太频繁了,技能、装备、buff、使用道具.....,所以计算属性值的目标是: 1尽量简单,虽然现在这个计算操作对cpu来说已经是小菜一碟,但是还是尽量不要造成cpu的额外负担原创 2011-12-20 18:29:39 · 1611 阅读 · 0 评论 -
lua脚本加载问题
游戏中逻辑部分有很大部分都是通过lua脚本来实现的,脚本中的代码量甚至有可能超过游戏程序本身的代码量。这就涉及到大堆脚本的管理问题。 所有的脚本不是在程序启动时自动加载的,而是在需要调用到这个脚本的时候才加载。这是因为脚本数量庞大,可能还有很多是旧的已经弃用的游戏逻辑,如果全部加载,增加程序负担,不划算也没有必要。 可是用了延迟加载以后,另一个问题又出现了。lu原创 2011-12-15 20:54:23 · 3010 阅读 · 0 评论 -
流量都耗在哪里了
随着玩家数量的增长,流量的消耗也是突飞猛进,机房的带宽可不便宜啊,呵呵,看看到底流量都消耗在那些地方呢,有没有可能节省一点。分析结果:a.移动 差不多消耗了25%b.九屏内的数据同步消耗了25%(包括玩家,npc,宠物等各种各样的数据)c.攻击消耗10%d.还有各种各样的公告,特别是全世界播放的公告,也占用了5%甚至更多。 怎么样才能把流量省下来呢,先原创 2012-01-09 15:28:47 · 576 阅读 · 1 评论 -
历史数据的保存
随着运营时间的增加,玩家的历史数据越来越庞大,都有哪些数据呢,玩家的消耗记录,充值记录,还有玩家在游戏过程中的各种数据。到底会有多大呢,粗略的计算一下看看原创 2011-12-30 17:57:46 · 717 阅读 · 0 评论 -
玩家需要流畅的移动
游戏虽然完成了,但是玩家体验很差,特别是走路的时候,总是很卡,这肯定是我们设计上的缺陷。 最开始用的办法是玩家每移动一步,都向服务器提出申请,服务器检查玩家是否可以移动,如果移动速度和服务器这边的数据不匹配,或者正处于某些不能移动的状态下,则忽略客户端的移动请求,反之,同意玩家的移动,在服务器端设置新的坐标,并通知玩家自己和同屏内其他对象将其坐标更新到玩家移动后的位置。原创 2011-11-22 17:56:47 · 526 阅读 · 0 评论 -
防止内存全部耗完
出现了好几次服务器内存耗完导致进程宕机的问题,虽然主要问题是服务器管理不当,但是还是需要一个办法,在内存耗完了的时候,能自动保存全部数据以后再退出,而不是直接宕机。 解决办法暂时这样,在进程启动的时候预先申请一小块内存,当机器的内存耗光时,把这一小块内存释放出来,原创 2011-10-19 15:40:41 · 251 阅读 · 0 评论 -
版本核对很重要
客户端下载的最新版本,因为各种各样的原因,很有可能不是当前发布的最新版本,而服务器的版本,却始终是保持最新的。 内测刚开始的时候,为了尽一切努力挽留玩家,避免因为版本不符或者其他原因登录不上服务器,没有核对客户端的版本,玩家即使下载旧的客户端也能登录最新的服务器。原创 2011-09-27 16:26:56 · 330 阅读 · 0 评论 -
关于宠物
记得以前面试的时候,曾被问过一个问题,如果让你设计一只宠物,该如何实现?当时还只是小菜鸟一只(嘿嘿,其实现在仍然是菜鸟),我回答的是让npc静止,玩家移动的同时把宠物强行拉到自己附近。(如果现在问,我一定能答得更好) 答案虽然不尽完善,但是也是有可行性的,嘿嘿,原创 2011-08-31 15:36:50 · 495 阅读 · 1 评论 -
头疼的死循环
如果一个人写的代码还好,自己的孩子毕竟自己了解,到底是哪里有死循环,多看几次代码也就看出来了。 可是。。。当一个项目有多个人组成时,不知道究竟是谁提交的代码在哪个部分有了死循环,没有高效的办法,一个一个的排除,实在很痛苦!!! 真的没有一个办法原创 2011-08-31 15:34:52 · 228 阅读 · 0 评论 -
lua与c++数据交换之表和数组
一 数组的操作数组其实是一种特殊的表格。int LuaArray(lua_State* L){ lua_newtable(L); //新建一个表,并压入栈顶 lua_pushnumber(L,-1);原创 2011-08-31 15:37:32 · 4641 阅读 · 2 评论 -
多线程啊多线程
最近饱受多线程的折磨 -_-,大概在多线程编程方面太缺乏经验了,经历了一个痛苦的转变。。。常常会发现服务器宕机了,在一个莫名其妙,看起来永远不会宕机的地方,苦苦思索几天几夜也找不到原因,最后发现是多线程在捣鬼服务器进程架构是这样的,每个进程都由2个线程组成:原创 2011-08-31 15:40:22 · 455 阅读 · 0 评论 -
单例模式与多线程
困惑ingClass A{ public: ~A(){} static A* getInstance() { if(_instance==NULL)原创 2011-08-31 15:40:54 · 309 阅读 · 0 评论 -
数据库中插入字符串
最近邮件系统出了bug,是将邮件插入数据库失败,导致玩家的邮件丢失。本来sql语句是:insert into mail(ID,SOURNAME,DESTNAME,TAXT) values(1,"aaa","bbb","祝贺升级!!!!");这样当然没有问题,可是有原创 2011-08-31 15:44:02 · 2702 阅读 · 0 评论 -
单例模式的自动析构
总所周知,单例模式如果不主动调用,在进程结束时是不会析构的,而是仅仅把内存释放掉而已所以,如果希望在析构时进行某些操作,在进程结束前,可以主动调用析构函数,如下面类中的delMe函数(xSingleton::getMe().delMe();)可是,如果每定义这样一个类,都原创 2011-08-31 15:43:11 · 5247 阅读 · 0 评论 -
数据库-要注意
项目使用的mysql数据库,至于其他数据库,如oracle另当别论1 mysql 默认:表名是大小写敏感的,而列明则不是,这往往与我们期望的相反。2 注意选自字符编码集,考虑是否支持繁体等等。原创 2011-08-31 15:44:58 · 193 阅读 · 0 评论 -
水果忍者划痕效果
转自:http://blog.csdn.net/u012945598/article/details/17609281网上找的一个关于水果忍者划痕的,效果还算凑合。其原理就是基于OpenGL绘制直线,由于版本过老,此处笔者修改了一些方法,粘贴后可直接使用适用于Cocos2d-x 2.2.1.h文件中需要加入的代码: void draw();转载 2014-11-12 20:44:53 · 1095 阅读 · 0 评论