上一页 1 ··· 3 4 5 6 7 8 9 下一页

2011年5月1日

大型MMO-SNS类游戏服务器架构

摘要: SNS类型的游戏和RPG类的网游有一些不同的特点,而这些特点会导致这类游戏的后台架构和RPG网游的后台架构存在一些区别。SNS类型的游戏一般有以下的特点:(1)所有的玩家角色可能存在交互 SNS类型的游戏一个玩家角色会找他的好友或者其他任何一个毫无关系的玩家角色进行某种逻辑上的互动。(2)这类游戏玩家角色一般是看不见的(3)玩家角色在线或离线状态比较模糊 在线的玩家角色可以主动找不在线玩家进行交互。如去某个没上线的好友菜园偷菜,去攻打不在线的玩家角色的城池。(4)交互频率较低,数据量小。根据上面的主要特点,这类游戏后台要设计成唯一一个的大世界,而角色之间无须相互可见,实现这个大世界后台就有存在 阅读全文

posted @ 2011-05-01 15:14 daemonh 阅读(774) 评论(0) 推荐(1)

2011年4月24日

Herm统一分发框架的分发各种对象的流程

摘要: 分发框架管理一个树状的Handlers,Handler分为通用的(general)和专有的(specific)。通用的Handler是为所有的对象服务;专有的Handler是为某个对象服务(常见的是Role)。框架结构描述如下: cmd1----->handlers cmd2----->handlers cmdN----->handlers +------->cmd1------>handlers | oid1--------------+-------->cmd2------>handlers | +--------->cmd3-----> 阅读全文

posted @ 2011-04-24 21:32 daemonh 阅读(338) 评论(0) 推荐(0)

2011年4月23日

协议消息与应用程序事件的统一分发框架

摘要: Herm实现了一个Dispatcher来分发协议消息和程序中的自动事件。Dispatcher管理一个泛型的处理器Handler,不同的需求可以实现不通的Handler。Herm从通用性的角度,实现了支持IMsgHandler&IEvtHandler,分别支持协议消息和应用事件的分发处理器。 struct IMsgHandler { virtual void Handle(const char* buf, int len, const void* param) = 0; };MsgDispatcher根据消息ID(Herm里将ID设成Type&Code),定位到Handler,将 阅读全文

posted @ 2011-04-23 14:33 daemonh 阅读(245) 评论(0) 推荐(0)

2011年4月2日

嵌套协议的消息分发处理

摘要: 现在herm framework,只支持1层协议的分发。对于嵌套的协议目前无法分发。嵌套协议在实际开发中,很有可能遇到,有必要对这类需求提供支持。嵌套协议像下面的样子:protocol1 |--- type1---code1----| protocol 2|protocol2 |--- type2---code2----| ----data----|目前,Session里维护一个HandlerMgr,记为HMgr1; 考虑再加一个HandlerMgr,叫做HMgr2吧。Framework怎么知道要用二级的HMgr2去分发消息呢? 加须要嵌套的协议的type1&code1到HMgr2中, 阅读全文

posted @ 2011-04-02 14:18 daemonh 阅读(176) 评论(0) 推荐(0)

2011年3月4日

世界杯名额分布

摘要: 世界杯名额分布欧洲:13非洲:5南美:4.5亚洲:4.5中北美洲:3.5大洋洲:0.5东道主巴西:1附加赛规则 亚洲第5名、大洋洲冠军、中北美洲第4名以及南美洲的第5名将会通过抽签的方式决定最后的附加赛对阵。 阅读全文

posted @ 2011-03-04 10:11 daemonh 阅读(511) 评论(0) 推荐(0)

2011年2月20日

TCP的拥塞控制

摘要: 拥塞处理可以认为是TCP最重要的网络功能,拥塞的实现算法对TCP整体效率(吞吐量、传输速率等)有很大的影响。TCP拥塞实现算法是针对各种复杂的网络环境,从这点上看,一个UDP的应用采用简化了的TCP拥塞算法,在相对简单的网络环境下能得到对TCP更好的传输效率。拥塞发生判定条件1. 数据段(segment)发送超时 数据段发送超时,说明这个数据段或该数据段的ACK在传输的过程中丢失了;网络状况不理想,产生拥塞了。2. 收到重复的ACK 看下面的一个数据段丢失的情形: Sender Receiver | | |-------- segment1-------> | |<-------A 阅读全文

posted @ 2011-02-20 18:09 daemonh 阅读(215) 评论(0) 推荐(0)

2011年2月18日

高效的成就系统实现简介

摘要: 什么是成就成就系统可以理解为对某个角色成长过程重大事件的记录;玩家通过查看成就跟踪角色涉及的重大事件。成就的策划模版数据ID, 这个成就的唯一标识;Name, 命名;EventCategroy, 完成的事件对应的类型,类型是对各种事件大一个范围的分类;EventCategroy2, 实际需求中可能有多种类型;EventID1, 完成的事件ID,事件是指游戏中自定义各种事件,比如升级事件、完成多少任务事件等;EventValue1, 上面的事件ID对应的值, 如升到20级,完成了1000次任务等;。。。EventIDNEventValueN, 有些成就要完成多个事件才能完成;其他各种限制参数,比 阅读全文

posted @ 2011-02-18 16:49 daemonh 阅读(903) 评论(0) 推荐(0)

普通用户的ulimit -n xxxxx cannot modify limit: Operation not permitted的问题

摘要: ulimit -n VALUE1. 查看/etc/security/limits.conf * hard nofile 2048 * soft nproc 2048 确定VALUE是否大于2048。2. 先su到root,再从root su到普通用户, 再ulimit -n VALUE 就行了。 阅读全文

posted @ 2011-02-18 11:55 daemonh 阅读(1146) 评论(0) 推荐(0)

2011年2月17日

创建一个全屏的窗口

摘要: 全屏对大部分游戏client是必须的。方法如下:(1) 得到默认的Window styles, 去掉WS_DLGFRAME;(2) 获取当前Window rect,重新设置Window大小;(3) 最大化方式显示窗口。代码像下面这样:SetWindowLong(hWnd, GWL_STYLE, GetWindowLong(hWnd, GWL_STYLE) & (~WS_DLGFRAME));RECT rect;GetWindowRect(hWnd, &rect);SetWindowPos(hWnd, HWND_NOTOPMOST, rect.left, rect.top, re 阅读全文

posted @ 2011-02-17 13:43 daemonh 阅读(269) 评论(0) 推荐(0)

2011年1月11日

TCP/UDP 常见的错误码

摘要: 在实际TCP&UDP C/S数据收发过程中,常见error code有ECONNABORTED(WSAECONNABORTED),ECONNRESET(WSAECONNRESET),nonblocking io当然还有WOULDBLOCK(WSAWOULDBLOCK)。1. ECONNABORTED(WSAECONNABORTED) 这个tcp send引起的,一般是protocol stack重传超时或者protocol处理错误等。2. ECONNRESET(WSAECONNRESET) 对于TCP 远程主机已强制关闭,发送数据,远程主机protocol stack回应RST。 对于 阅读全文

posted @ 2011-01-11 17:24 daemonh 阅读(1682) 评论(0) 推荐(0)

上一页 1 ··· 3 4 5 6 7 8 9 下一页

导航