
服务器设计
SuperKuku
在从事游戏开发的6年时间里面,涉及的内容包括运营平台、GM工具、MMORPG、FPS游戏。游戏都已经上线并且稳定运营中,单服务器的承载量在1万-5万之间。
展开
-
有关实时项目的网络通信方式的思考
等待解密原创 2012-10-11 12:37:25 · 700 阅读 · 0 评论 -
游戏的登陆和离线流程思考
1.登陆流程a.LGW connect tokenverify versionverifyb.LGW->Cluster Login1b.Cluster->GW Occupyc.GW->Cluster Occupy Ackd.Cluster->LGW GWOccupyNtfe.LGW->Client GWOccupyNtf MD5Ntff.LGW Disconnect原创 2013-08-01 16:59:51 · 1070 阅读 · 0 评论 -
数据库相关
数据库性能优化1.主键2.索引3.减少行数 ———— 二进制流4.列拆分5.行拆分数据库操作流程思考游戏的数据存储按照对象分成两部分。玩家数据和服务器数据。游戏的数据存储按照存储写操作方式分成两种。立即存储和缓存定时存储。对于交易相关数据库流程存在两种方案1. 基本功能独立修改方案对于通用交易货币制作基本流程,所以其他流程原创 2013-08-22 14:31:39 · 768 阅读 · 0 评论 -
vs2010有关Release版本dump内变量值显示错误问题的解决
首先vs2010版本存在鼠标在变量上没有显示Tips, watch里面输入变量名显示无法找到该变量的问题。这是一个Bug,需要打SP1补丁。再次验证了MS的东西,没有出SP1是无法正常用的理论。除此之外,还是存在部分变量无法显示,this指针显示内容错误,显示的局部变量信息错误等问题。这个问题时Og优化导致的。使用O2优化的时候其实是进行了8个优化/Og/Oi/Ot/Oy/Ob原创 2013-09-11 20:30:54 · 1646 阅读 · 0 评论 -
NP使用经验——中国区慎用
1. Np中国没有什么技术能力,都是支持团队,他们没有积极解决问题的意愿,能力也有限,反馈速度也较慢。例如我们这边发现有个客户端问题玩家进不了游戏,问np是不是np的问题,他们会查一下说有这个问题,后面又发现其他问题,问一下,说确实也有这个问题也无法解决,如此往复。 2. windows升级后,NP一定会禁止登陆发114报错,这个是np遗留问题,硬伤,无法解决转载 2013-12-17 14:09:40 · 1831 阅读 · 0 评论 -
IOCP接收性能测试。瓶颈或者问题?
环境物理机 * 7:1台作为服务器,6台作为客户端 CPU:E5405 2.0GHz4*2 Mem:16G NetworkCard:1000M*2系统: Windows2008 Server R2测试方式1. DOETest工程release版编译测试服务器。2. DOECl原创 2014-02-26 19:09:00 · 1676 阅读 · 0 评论 -
有关服务器协议设计的总结
有关服务器协议设计的总结下面内容都是经验教训,与大家共勉。1. TCP、UDP对比一下吧a) TCP优点 i. 按字节流保续 ii. 只要连接在,保证到达 iii.原创 2014-03-04 21:36:17 · 1528 阅读 · 0 评论 -
有关UDP打洞Session保持时间
最近游戏上线,发现了很奇怪的事情。最后确认是UDP映射保持时间的问题,UDP映射保持时间有一部分设备远比想象的短。经测试差不多15-20s左右,映射就被重置了。可以看到34s, 该客户端的映射就已经重置了。不过通过玩家反馈以及客户端日志对比,不少玩家20s,21s的时间间隔,映射就已经被重置了。目前实际最短时间设置不清楚。不过据说华为的一部分设备默认时间是20s,应该是业界最短时间了。原创 2014-11-27 21:43:06 · 4826 阅读 · 0 评论 -
有关服务器中网关作用问题
10年前的游戏服务器都是设置了网关的,用来进行玩家和服务器内部之前的连接保持。原创 2014-11-24 11:56:49 · 1855 阅读 · 0 评论 -
Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Couchbase vs OrientDB vs Aerospike vs N
Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vsHBase vs Couchbase vs OrientDB vs Aerospike vs Neo4j vsHypertable vs ElasticSearch vs Accumulo vs VoltDB vsScalaris comparisonhttp://kkovac转载 2014-12-05 16:20:42 · 1192 阅读 · 0 评论 -
IOCP系统Bug
对IOCP对象进行GuidDisconnectEx。很小的概率会导致没有IOCP返回。具体原因还不清楚,已经排除没有进行适当IOCP的问题。我们把其成为僵尸问题。目前的解决方案是记录连接对象的GuidDisconnectEx调用次数,如果超过4次,就直接进行Closesocket操作。原创 2013-07-30 11:08:53 · 862 阅读 · 0 评论 -
Overlap IO与IOCP对比
有关Overlap与IOCP的区别一直搞的不是很清楚。最近仔细分别用两种方式写了一次代码,总算搞清楚了。其实归结到就一句。IO完成后的回调处理是否支持多线程处理。区别很简单。在进行WSARecv,WSARecvFrom,WSASend,WSASendTo函数调用之后,如果使用Overlap IO,则需要使用WaitForMultiEvents把所有的Overlap的Event数组作为参原创 2013-05-31 09:38:53 · 2338 阅读 · 0 评论 -
2012年热门mo game网络模块情况调查
游戏名称大厅连接方式游戏连接方式P2p支持 坦克世界UDPUDP否 街头篮球TCPUDP是 龙之谷TCPTCP+UDP否 洛奇英雄传TCPTCP+UDP是 地下城与勇士TCPTCP+UDP是 斗战神TCPTCP否原创 2012-10-09 14:13:09 · 1624 阅读 · 0 评论 -
Luaplus的编译
这里是使用最新的luaplus代码 2011年12月的。发现已经差不多10个月没有更新了。下载地址:https://github.com/jjensen/luaplus51-all或者我使用地代码:之后下载生成sln需要的jamplus。可以下载: http://jamplus.org/attachments/download/169/jamplus-110621-bin.原创 2012-10-20 14:27:19 · 2548 阅读 · 0 评论 -
有关打洞方案
目前UDP打洞成功率达到了85%以上;但是TCP打洞得成功率仅仅65%左右,而且不稳定。不过该数据是我网上胡乱搜到的文章给出的数据,真实性不确认。不过现在很多游戏都已经使用UDP打洞技术并成功运行了。1.UDP打洞两种NAT:1.基本NAT: 只改变IP,不改变PORT2.NATP:IP和PORT都修改。方法:客户端A,B通过有公网IP的服务器S实现A,B通信。原创 2012-10-19 18:26:17 · 1784 阅读 · 0 评论 -
C4748: /GS的处理记录
几天服务器工程的release版本编译不通过了。服务器exe工程在链接过程中产生了多个C4748。不过奇怪的是报告的文件都是依赖的lib工程非常正常的函数上报的内容。warning C4748: /GS can not protect parameters and local variables from local buffer overrun because optimizations原创 2012-11-02 11:09:29 · 4910 阅读 · 0 评论 -
有关各种嵌入式脚本
最近一直在慢慢了解各种脚本语言嵌入C++、相互调用的方式以及性能。一共涉及Python, Lua, Luaplus, LuaBind, Mono C#等几种方式。总结如下:1.先上脚本性能 C# vs Lua C# Mono used what fraction? used how many times more? BenchmarkTime原创 2012-10-26 18:35:52 · 4262 阅读 · 0 评论 -
有关游戏属性与存储方式
游戏属性可以分成2类:静态属性、动态属性1.静态属性:该属性对于属性所属的对象是不会随着游戏进行而变化的2.动态属性:该属性在游戏的进行过程中会进行变化。动态属性又可以分成2个子属性。基础属性、衍生属性a.基础属性:就是该属性的具体数值不能通过其他属性计算而得b.衍生属性:该属性的具体数值通过其他属性就可以计算而得。衍生属性的存在基本上是为了游戏过程中的逻辑计算的便利。或者体现复杂原创 2013-01-23 11:16:01 · 1128 阅读 · 0 评论 -
再议成就系统框架设计
根据http://blog.youkuaiyun.com/heartrude/article/details/8523570的设计,其实还有几点可以优化1.Group组的Buff是靠严格的配置的偏移量计算出来的,这个太不可控了。Buff可能出在无法检查的策划小错误上2.如果已经有N种类型的成就,而有一个新的需求,其事件是已有的几种成就组事件的组合,则需要产生一种新的成就组,使用新的成就Bu原创 2013-01-21 13:18:49 · 1786 阅读 · 0 评论 -
float, int , int64计算性能
虽然说有了FPU和各种扩展指令集后,盛传浮点数的计算性能已经和整形非常接近了,只有几倍的CPU周期差距了。甚至都是一样1~2个CPU周期就计算完毕了。还有x64的cpu出来后,x64得寄存器对于64位的计算和32位的计算也是性能几乎相同了。时间是检验真理的唯一标准,现在实验如下:CPU: Intel(R) Core(TM)2 Duo CPU E7400 @ 2.80GHz (2原创 2013-03-12 10:53:24 · 3724 阅读 · 1 评论 -
有关IOCP性能测试
环境:内网,中间间隔一个路由器服务器:CPU: Intel Xeon W3565 3.20G*4MEM: 4096M步骤:客户端IOCP直接发送当前的TickCount服务器IOCP在OnData里面直接回传客户端根据响应计算延时最后结果:每毫秒处理48个左右来回。之后有一个15-16ms左右的延时。结论:IOCP每个原创 2013-03-31 13:40:28 · 1450 阅读 · 1 评论 -
有关Couchbase制作静态链接库嵌入服务器工程
有关Couchbase制作静态链接库嵌入服务器工程1. 文件列表cbsasllibcouchbase-2.4.9\contrib\cbsasl\srccouchbase_iocplibcouchbase-2.4.9\plugins\io\iocpcouchbase_selectlibcouchbase-2.4.9\plugins\io\selectcouch原创 2015-07-06 17:02:27 · 797 阅读 · 0 评论