网游
文章平均质量分 51
wclin88
这个作者很懒,什么都没留下…
展开
-
[转]多人游戏位置同步—网络游戏的位置同步
<br />有关位置同步的方案实际上已经比较成熟,网上也有比较多的资料可供参考。在《带宽限制下的视觉实体属性传播》一文中,作者也简单提到了位置同步方案 的构造过程,但涉及到细节的地方没有深入,这里专门针对这一主题做些回顾。<br /> 最直接的同步方案就是客户端在每次发生位置改变时都向服务器报告 ,服务器再转发给周围的其他玩家,其他客户端将对应的游戏实体移动到新的位置上。<br /> 但是这样存在一个问题,每个玩家的位置都是自己先开始移动,一段时间之后才在其他玩家的客户端上表现出来。如果只是希转载 2011-06-01 19:45:00 · 2290 阅读 · 1 评论 -
[教程] Flash Socket通信的安全策略问题 843端口
1、问题描述 将flash发布为html格式后,加载页面后,swf无法与服务器进行socket通信。Flash端显示的错误为:securityErrorHandler信息: [SecurityErrorEvent type="securityError" bubbles=false cancelable=false eventPhase=2 text="Error #2048转载 2012-02-24 17:41:18 · 2371 阅读 · 0 评论 -
Linux下tcp并发服务器的几种设计的模式套路
Linux下tcp并发服务器的几种设计的模式套路 在做网络服务的时候tcp并发服务端程序的编写必不可少。tcp并发通常有几种固定的设计模式套路,他们各有优点,也各有应用之处。下面就简单的讨论下这几种模式的差异:1。 单进程,单线程模式在accept之后,就开始在这一个连接连接上的数据收接收,收到之后处理,发送转载 2012-01-27 22:41:03 · 505 阅读 · 0 评论 -
浅谈多进程多线程的选择
关于多进程和多线程,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”,这句话应付考试基本上够了,但如果在工作中遇到类似的选择问题,那就没有这么简单了,选的不好,会让你深受其害。 经常在网络上看到有的XDJM问“多进程好还是多线程好?”、“Linux下用多进程还是多线程?”等等期望一劳永逸的问题,我只能说:没有最好,只有更好。根据实际情况来判断,哪个更加合适就是转载 2012-01-14 00:12:51 · 578 阅读 · 0 评论 -
玩家的管理
玩家的管理1) 所有的玩家连接对象从player对象池g_pPlayerPool中分配2) 每个连接上的玩家分配给一个player对象class Player{public : Player( BOOL bIsServer=FALSE ) ; virtual ~Player( ) ; ................... virtual B原创 2011-12-16 15:21:53 · 665 阅读 · 0 评论 -
gameserver 线程
1) 主线程 while( IsActive() ) 不停的循环着。 1 读取某些配置文件,达到"热更新"的效果 2 全局管理器的心跳,比如副本管理器等2) 场景线程组 每一个地图场景一个线程,同一个类型的副本也是一个线程3) 连接线程 负责接受客户端的连接,成功之后把连接给相应的场景线程 4) 数据库线程组 还有另外辅助两个线程5) server线程 负责ga原创 2011-12-16 11:30:23 · 709 阅读 · 0 评论 -
协议包
1)包组成: 包大小(包头加上内容) + 包ID + 校验号 + 具体内容2)从应用程序缓存区读取的过程:根据包ID对包头的包大小字段进行校验,除了没接收完的continue之外,其他断开连接 读取包头 -》 校验包ID -》 包大小是否超过最大值(这种包所能达到的最大值) -》判断是否接收完 -》如果是定长的包,判断包的确切长度3)校验完,把包从缓冲区里读取出来ps:原创 2011-12-14 16:02:46 · 621 阅读 · 0 评论 -
数据库线程操作过程
数据库线程管理:1) 根据配置文件启动相应个数的线程2) 调用管理器 SendThreadPacket 把数据库操作包发送到没在处理包的数据库线程3) 如果所有的线程都忙着,包放在管理器的cache里(包缓存在管理器,不是线程)4) 在每次心跳,到cache拿包发送到空闲的DB线程5) DB线程包处理时,从管理器拿相应线程的数据库句柄,使用上一篇的数据操作类实现数据库各种操原创 2011-12-12 20:02:13 · 546 阅读 · 0 评论 -
对象池的使用
1)一个模板类的对象池,templateclass ObjPool{public: ObjPool(BOOL bThreadSafe=TRUE) { } ~ObjPool( VOID ) { } BOOL Init( INT nMaxCount = 10 ) {原创 2011-12-11 22:19:51 · 538 阅读 · 0 评论 -
内存和对象内存池技术在网游开发中的注意点和应用
大家都知道,游戏服务器在网络游戏开发中所占的比重。而评论游戏服务器的好坏标准,除了实现游戏的逻辑功能外,最重要的也就是稳定和高效。一个不稳定的服务器对于一款网络游戏的打击是沉重,一个不高效的服务器对于玩家的感觉也是非常明显的。在这一章节中,我将要向大家介绍游戏服务器高效开发的一个方面,如何正确高效的使用内存?而关于其他高效开发的技术或者架构设计,我也将陆续向大家介绍。其中有欠妥之处,也希望读者转载 2011-09-17 00:20:06 · 1272 阅读 · 0 评论 -
底层数据库
1) 底层基本的数据库操作类class DBOpBase{ public: DBOpBase(Connection* pConnection) { ................... } ~DBOpBase() { ..........原创 2011-12-12 15:59:25 · 699 阅读 · 0 评论 -
游戏服务器端开发要点
转至:http://jiangwen2011.blog.163.com/blog/static/194801340201181104532377/摘要: 本文作为游戏服务器端开发的基本大纲,是游戏实践开发中的总结。第一部分专业基础,用于指导招聘和实习考核, 第二部转载 2011-10-07 21:06:33 · 1301 阅读 · 0 评论 -
做产品的原则
邓总的总结:1) 优先做已有技术储备的产品2) 新团队技术制作优先,创新越小越好3) 主流产品表现力反推,校验自己的技术4) 开发与运行效率大于效果,技术切忌为了通用而通用5) 实验作品做技术创新,要有承担失败的能力6) 只要有用的就反编译它7原创 2011-09-19 20:30:57 · 385 阅读 · 0 评论 -
linux下damon的实现
参考http://zxuhong.blog.51cto.com/368977/99283/注:Linux下可以直接调用damon函数来实现daemon进程,没必要重新实现,理解其原理即可。在Linux中专门提供了一个函数来完成这个daemon化的过程,这个函数的原型如下int daemon (int __nochdir, int __noclose);如果__noc转载 2011-12-13 16:43:05 · 3433 阅读 · 0 评论