
GameEngine专题之Server
文章平均质量分 88
思月行云
吾求吾失且不暇,何暇论人哉?!
君子性非异也,善假于物也。
展开
-
Windows完成端口与Linux epoll技术简介
转自:Windows完成端口与Linux epoll技术简介WINDOWS完成端口编程1、基本概念2、WINDOWS完成端口的特点3、完成端口(Completion Ports )相关数据结构和创建4、完成端口线程的工作原理5、Windows完成端口的实例代码Linux的EPoll模型1、为什么select落后2、内核中提高I/O性能的新方法ep转载 2011-12-14 22:15:39 · 2136 阅读 · 0 评论 -
完成端口中的单句柄数据结构与单IO数据结构的理解与设计
<br />本文原创版权归Csdn sodme所有,转载请自觉于显示位置标明如下信息,以示尊重!!<br />==============================================================<br />本文作者:sodme<br />本文出处:http://blog.youkuaiyun.com/sodme<br />声明:本文可以不经作者同意任意转载、复制、传播,但任何对本文的引用均须保留本文的作者、出处及本行声明信息!谢谢!<br />==================转载 2011-05-31 15:39:00 · 1454 阅读 · 0 评论 -
编写IOCP时的几个注意事项(Mirosoft)
<br />TIP 1: Use Winsock2 IOCP-capable functions, such as WSASend and WSARecv, over Win32 file I/O functions, such as WriteFile and ReadFile. <br />提示1:尽量使用WSASend和WSARecv进行数据收发<br />Socket handles from Microsoft-based protocol providers are IFS handles so转载 2011-03-11 10:50:00 · 1930 阅读 · 0 评论 -
Managed I/O Completion Ports (IOCP)
IndexIntroduction - Native Win32 IOCP Introduction - Managed IOCP Using Managed IOCP in .NET applications Inside Managed IOCP Points of interest History Software Usage转载 2011-03-04 10:54:00 · 1966 阅读 · 0 评论 -
IOCP进阶文4篇
注:以下IOCP系列博文版权归 网易博客 GameBaby 所有,转载请按如下方式显示标明原创作者及原文出处,以示尊重!!原创作者:GameBaby原文出处:http://gamebabyrocksun.blog.163.com/IOCP加Windows线程池打造高伸缩性高性能的服务器应用 对于IOCP,搞Windows服务器编程的都不会陌生,它所表现出来的性能是其他各种WinSock模型难望其项背的。撰写本文的目的就是为让大家能够在深入理解IOCP的基础上,再来深入的挖掘Windows系统的性转载 2011-01-17 15:31:00 · 8969 阅读 · 7 评论 -
一个对Winsock完成端口模型封装的类
转载请按如下方式显示标明原创作者及出处,以示尊重!!原创作者:elssann联系方式:PPP elssann@hotmail.com在Windows下进行网络服务端程序开发,毫无疑问,Winsock 完成端口模型是最高效的。Winsock的完成端口模型借助Widnows的重叠IO和完成端口来实现,完成端口模型懂了之后是比较简单的,但是要想掌握Winsock完成端口模型,需要对WINDOWS下的线程、线程同步,Winsock API以及WINDOWS IO机制有一定的了解。如果不了解,推荐几本书:《Insid转载 2011-01-05 09:32:00 · 3055 阅读 · 0 评论 -
IOCP编程之基本原理
写在最前:这是一篇总结的非常不错的文章,可惜一路追查下去,却未能找到原创作者。从手笔来看,怀疑是大宝哥,但没有真凭实据。希望知情人士告知,谢过~一转:http://www.cppblog.com/hello8706/archive/2010/06/24/118663.aspx二转:http://blog.youkuaiyun.com/wangguang246/archive/2010/07/02/5708579.aspx在我的博客之前写了很多关于IOCP的“行云流水”似的看了让人发狂的文章,尤其是几篇关于IOCP加线程转载 2011-01-05 09:02:00 · 2181 阅读 · 3 评论 -
使用IOCP需要注意的一些问题~~(不断补充)
1- 不要为每个小数据包发送一个IOCP请求,这样很容易耗尽IOCP的内部队列.....从而产生10055错误.2- 不要试图在发送出IOCP请求之后,收到完成通知之前修改请求中使用的数据缓冲的内容,因为在这段时间,系统可能会来读取这些缓冲.3- 为了避免内存拷贝,可以尝试关闭SOCKET的发送和接收缓冲区,不过代价是,你需要更多的接收请求POST到一个数据流量比较大的SOCKET,从而保证系统一直可以找到BUFFER来收取到来的数据.4- 在发出多个接收请求的时候,如果你的WORKTHREAD不止一个,一转载 2010-08-27 10:22:00 · 1383 阅读 · 0 评论 -
.net下的IOCP代码例子[codeproject]
I/O Completion Ports (IOCP) supported on Microsoft Windows platforms has two facets. It first allows I/O handles like file handles, socket handles, etc., to be associated with a completion port. Any async I/O completion event related to the I/O handle asso转载 2010-08-26 14:51:00 · 3189 阅读 · 0 评论 -
发布一套IOCP框架
原文链接:http://blog.youkuaiyun.com/chenyu2202863/archive/2010/08/17/5818920.aspx更新:2010/08/211. 提供MemoryPool支持(详情请查看猛击这里)2. 模仿asio中io_service服务,把dispatcher接口公开出来,可以post任意回调3. 增强网络服务端demo同时,把该套框架放到了Google code上,需要的朋友可以自行下载。svn:http://iocpframework.googlecode.com/svn转载 2010-08-25 12:00:00 · 2602 阅读 · 0 评论 -
蛙蛙推荐:在c#使用IOCP(完成端口)的简单示例
蛙蛙推荐:在c#使用IOCP(完成端口)的简单示例上次给大家发了利用winsock原生的api来做一个同步的socket服务器的例子,大致上只是贴了一些代码,相信大家这么冰雪聪明,已经研究的差不多了。因为winsock的api使用在msdn或者google上都能很方便的查到,所以我没太多罗嗦代码的原理。但是c#进行平台调用方面是有一些经验的,单靠google和msdn及社区的力量有时候不容易得到答案。这次给大家演示一下利用IOCP的在线程间传递数据的例子,顺便打算讲一些细节和注意的地方。概述:这里主要使用I转载 2010-08-24 17:19:00 · 1954 阅读 · 0 评论 -
在c#使用Windows IOCP(完成端口)编程研究
一:概述 (1)IOCP是什么呢? 它就是Io Completion Port的缩写,它就是MS的内核调用机制. 因为在硬件里,与驱动程序打交道都是通过协议栈进行的,并且是通过发送包请求实现. 当在网络服务器使用它实现时,就会最接近内核部份,提高了性能,也提高速度. 目前就要看看怎么样用IOCP创建高性能的服务器,怎么样响应大量用户的TCP,或者UDP的数据. 当创建IOCP端口后,就要初始化连接监听,这跟一般的SOCKET是没有什么区别的,当然要把它关联到IOCP,否则就不会转载 2010-08-24 17:13:00 · 6428 阅读 · 0 评论 -
IOCP Thread Pool 在 C# 的Safe实现
IOCP Thread Pool 在 C# 的Safe实现 IOCP是一种高性能的I/O模型,更多资料可以google下。 在.Net Framework下,没有提供IOCP的类库,我们需要引入Win32 API来建立IOCP Thread Pool。[DllImport("Kernel32", CharSet = CharSet.Auto)] private static extern SafeFileHandle CreateIoCompletionPor转载 2010-08-24 17:05:00 · 3500 阅读 · 0 评论 -
A simple IOCP Server/Client Class
A simple IOCP Server/Client ClassBy spinoza. This source code uses the advanced IOCP technology which can efficiently serve multiple clients. It also presents some solutions to practical problems that arise with the IOCP programming API, and provides a sim翻译 2010-07-16 11:19:00 · 2124 阅读 · 0 评论 -
iocp三层架构服务器模型
本文作者:sodme本文出处:http://blog.youkuaiyun.com/sodme声明:本文可以不经作者同意任意转载,但请保留文章开始前的作者、出处及声明信息。谢谢。 由于个人工作的关系,接触高性能服务器的研发已经有一段时间了,在没有接触这个话题之前,我也和许多人一样,认为服务器的设计无非就是用一下winsock,调用调用函数那么简单。当亲自完成了一个在win平台上能承载上万连接的测转载 2010-04-06 14:44:00 · 4940 阅读 · 0 评论 -
网络游戏的客户端同步问题
有关位置同步的方案实际上已经比较成熟,网上也有比较多的资料可供参考。在《带宽限制下的视觉实体属性传播》一文中,作者也简单提到了位置同步方案的构造过程,但涉及到细节的地方没有深入,这里专门针对这一主题做些回顾。最直接的同步方案就是客户端在每次发生位置改变时都向服务器报告 ,服务器再转发给周围的其他玩家,其他客户端将对应的游戏实体移动到新的位置上。但是这样存在一个问题,每个玩家的位置都是自己先开始移动,一段时间之后才在其他玩家的客户端上表现出来。如果只是希望每个客户端上看到的游戏对象都同时开始移动,那可以让玩家转载 2010-06-04 11:39:00 · 2256 阅读 · 0 评论 -
拼包函数及网络封包的异常处理
声明:本文版权归优快云 sodme所有,转载请按如下方式标明作者及出处,以示尊重!!本文作者:sodme本文出处:http://blog.youkuaiyun.com/sodme 常见的网络服务器,基本上是7*24小时运转的,对于网游来说,至少要求服务器要能连续工作一周以上的时间并保证不出现服务器崩溃这样的灾难性事件。事实上,要求一个服务器在连续的满负荷运转下不出任何异常,要求它设计的近乎完美,这几乎是不太现实的。服务器本身可以出异常(但要尽可能少得出),但是,服务器本身应该被设计得足以健壮,“小病小灾”打不垮它,转载 2011-03-11 10:56:00 · 1424 阅读 · 0 评论 -
可扩展多线程异步Socket服务器框架EMTASS 2.0
<br />本文原创版权归 优快云 hulihui 所有,转载请按照如下方式显示标明原创作者及出处,以示尊重!!<br />作者: hulihui <br />原文:http://blog.youkuaiyun.com/hulihui/archive/2008/10/27/3158613.aspx<br /> <br />0 前言>>[前言]、[第1节]、[第2节]、[第3节]、[第4节]、[第5节]、[第6节]<br /> <br />在程序设计与实际应用中,Socket数据包接收服务器够得上一个经典问题了:需要计转载 2011-02-21 14:47:00 · 1565 阅读 · 0 评论 -
关于网游任务设计
人工智能脚本包括交涉、贿赂、作息、战斗、施展魔法、使用技能、逃跑、使用道具、收集宝物、仇恨机制、阵营机制、移动等各种行为动作方面的设定 本文选取比较有代表性的网络游戏任务设计进行论述,文中以任务简称之,时间及能力有限,有不足之处,还请指教(hmm.传说中准备被丢砖练护体神功的) 一切游戏任务设计的总原则都是围绕选择性满足玩家的合理需求进行设计,实现游戏可玩性--任务数量;好玩性--任务质转载 2011-06-16 15:53:00 · 4062 阅读 · 0 评论 -
简单实用的网游服务器架构
本文原创版权归GameRes 聚润堂所有,如有再转,请按如下方式显式表面原创作者及出处,以示尊重!作者:聚润堂转自:http://bbs.gameres.com/showthread.asp?threadid=154865 (GameRes)网游的本质是人和人之间关系转载 2011-08-12 09:05:30 · 2369 阅读 · 0 评论 -
C#中实现byte[]与任意对象互换(服务端通讯专用)
C++中,我们可以非常方便的将网络通讯接收来的char*缓冲区转成任意类型的结构体,并从中提取必要信息,只需要一个结构体类型指针的强制转换即可。但是在C#中,所有涉及到内存及指针的操作均被判定为不安全操作,使得上述机制的实现变得复杂化。要在C#中便捷的实现网络通讯缓冲区byte[]与任意类型对象的相互转换,常用的方法大致有三:1.序列化与反序列化 public sta原创 2011-03-16 17:14:00 · 8546 阅读 · 1 评论 -
网游服务端开发入门知识
本文版权归 博客园 游戏开发:主席 所有,转载请标明原创作者及出处,以示尊重!作者:游戏开发:主席原文:http://www.cnblogs.com/GameDeveloper/archive/2011/05/24/2055880.html 大多数的网络游戏的服务器都会选择非阻塞select这种结构,为什么呢?因为网络游戏的服务器需要处理的连接非常之多,并且大部分会选择在Linux转载 2013-06-28 10:06:58 · 1384 阅读 · 0 评论 -
mangos服务器架构
来自:百度文库原文:http://wenku.baidu.com/view/9d98758c84868762caaed5e3.html 登录服的设计 -- 功能需求正如我们在前面曾讨论过的,登录服要实现的功能相当简单,就是帐号验证。为了便于描述,我们暂不引入那些讨论过的优化手段,先以最简单的方式实现,另外也将基本以mangos的代码作为参考来进行描述。想象一下帐号验证的实现方法转载 2013-10-08 16:39:14 · 4390 阅读 · 1 评论 -
mangos代码阅读
转自:陈波的博客原文:http://blog.163.com/cp7618@yeah/blog/static/702347772010111434342665/交叉阅读:MaNGOS之验证Realm登录服务器Mangos之SMSG_COMPRESSED_UPDATE_O…Mangos之异步数据库查询Mangos服务器会话World转载 2013-10-08 16:26:20 · 5517 阅读 · 0 评论 -
Protobuf语言指南
本文转自:http://www.cnblogs.com/dkblog/archive/2012/03/27/2419010.htmll 定义一个消息(message)类型l 标量值类型l Optional 的字段及默认值l 枚举l 使用其他消息类型l 嵌套类型l 更新一个消息类型l 扩展l 包(package)l 定义服务(service转载 2013-10-11 14:16:45 · 1229 阅读 · 0 评论 -
高性能MMORPG服务端引擎设计之基本概念
本文版权归 博客园 亚历山大同志 所有,如有转载,请按如下方式标明出处,以示尊重!作者博客:懒人居 - Coding for fun原文地址:高性能MMORPG通用服务端引擎设计之->基本概念篇 高性能MMORPG通用服务端引擎设计之->基本概念篇二<br />鉴于公司保密协议,本系列文章将不涉及具体的游戏细节以及实现。由于本人也是第一次参与此类引擎的设计,所以难免有所失误,如有异见欢迎业内人士讨论,发表本系列文章的目的不在于说教,重在分享以及讨论。<br />MMORPG的转载 2011-02-21 11:18:00 · 2849 阅读 · 0 评论 -
Mir2源码分析
如下文章原创版权归csdn wu_yanan2003所有,转载请按如下方式显式标明出处,以示尊重! 作者:wu_yanan2003 Bolg:http://blog.youkuaiyun.com/wu_yanan2003 简述最近对高性能的服务器比较感兴趣,读过了DELPHI的Socker源码WebService及RemObject之后,高性能的服务器感兴趣。 你可能需要的以下知识才能更好的读懂一个商业源码: 1).SOCKET的I/O模型熟悉掌握。 2).面向对象技术的熟悉掌握。 3).Socket的API掌握。 4转载 2011-02-16 12:05:00 · 7012 阅读 · 1 评论 -
网络游戏制作技术
当今网络游戏在中国大陆已经在大范围的蔓延,暂且不论这样的一种趋势会带来什么样的游戏产业趋势。这里只就网络游戏的制作和大家进行交流,同时将自己的制作经验写处理,希望为中国的游戏业的发展做出一点点的贡献。。网络游戏的程序开发从某种意义上来看,最重要的应该在于游戏服务器端的设计和制作。对于服务器端的制作。将分为以下几个模块进行: 1.网络通信模块2.协议模块3.线程池模块4.内存管理模块5.游戏规则处理模块6.后台游戏仿真世界模块。现在就网络中的通信模块处理谈一下自己的看法!!在网络游戏客户端和服务器端进行交互的转载 2011-03-01 09:12:00 · 1646 阅读 · 1 评论 -
一种经典的网络游戏服务器架构
<br />首先,二话不说,上图(用Windows画图画的。。。)<br /><br /><br />这个图是一个区的架构图,所有区的架构是一样的。上面虚线框的ServerGroup和旁边方框内的架构一样。图上的所有x N的服务器,都是多台一起的。红线,绿线,和蓝线图上也有图示,这里就不多介绍了。关于Agent Server大家也能看出来,其实就是Gate。<br />这里主要介绍下图上的标记了号码的位置的数据连接的内容和意义。<br /><br />1- 这是一条WebService的管道,在用户激活转载 2010-08-04 16:51:00 · 1397 阅读 · 1 评论 -
游戏服务器的架构设计(一点参考,实际价值似乎不大……)
<br />游戏服务器的设计是一项颇有挑战性的工作,游戏服务器的发展也由以前的单服结构转变为多服机构,甚至出现了bigworld引擎的分布式解决方案,最近了解到Unreal的服务器解决方案atlas也是基于集群的方式。<br />负载均衡是一个很复杂的课题,这里暂不谈bigworld和atlas的这类服务器的设计,更多的是基于功能和场景划分服务器结构。<br />首先说一下思路,服务器划分基于以下原则:<br />1:分离游戏中占用系统资源(cpu,内存,IO等)较多的功能,独立成服务器<br />2:在同转载 2010-08-04 16:35:00 · 1262 阅读 · 0 评论 -
集群式游戏服务器架构方案设计开发
<br />自从2003年开发VOIP Radius Server以及修改Gnugk以来,从事服务器开发已经近五年了,对服务器开发也有一些自己独到的看法以及见解。当摆脱了技术本身的束缚之后,才理解重要的并不是某种技术的运用,而是整体设计的考虑,也慢慢明白了设计是开发的灵魂的道理。<br /><br />从技术层面来看,各个平台都有一些自己特有的东西,比如Windows 平台下面的IOCP技术,可以说为了支持大的并发,IOCP是一个Windows平台的必选方案。而在Linux下面Epoll又是所有开发人员需要转载 2010-08-04 16:28:00 · 1150 阅读 · 0 评论 -
知名网游Server端架构分析
<br />http://blog.youkuaiyun.com/sodme/archive/2004/12/12/213995.aspx<br />类似于QQ游戏百万人同时在线的服务器架构实现 收藏 <br />本文作者:sodme 本文出处:http://blog.youkuaiyun.com/sodme<br />版权声明:本文可以不经作者同意任意转载,但转载时烦请保留文章开始前两行的版权、作者及出处信息。<br /> QQ游戏于前几日终于突破了百万人同时在线的关口,向着更为远大的目标迈进,这让其它众多传统的棋牌休闲游戏平转载 2010-08-04 16:19:00 · 2544 阅读 · 0 评论 -
无缝世界网游服务器架构的设计思路
<br />过去一年中,花了很多时间在考虑服务器架构设计方面的问题。看了大量文章、也研究了不少开源项目,眼界倒是开阔了不少,不过回过头来看,对网游架构设计方面的帮助却是不多。老外还是玩儿console game的多,MMO Games方面涉及的还是不如国内广泛。看看 Massively Multiplayer Games Development 1 & 2 这两本书吧,质量说实话很一般,帮助自然也很有限。当然这也是好事,对国内的研发公司/团队来说,在网游服务器技术方面当然就存在超越老外的可能性,而且在这方面转载 2010-08-04 15:53:00 · 1539 阅读 · 0 评论 -
网游Server端开发基础
<br />1 服务器的网络连接<br /> 大多数的网络游戏的服务器都会选择非阻塞select这种结构,为什么呢?因为网络游戏的服务器需要处理的连接非常之多,并且大部分会选择在Linux/Unix下运行,那么为每个用户开一个线程实际上是很不划算的,一方面因为在Linux/Unix下的线程是用进程这么一个概念模拟出来的,比较消耗系统资源,另外除了I/O之外,每个线程基本上没有什么多余的需要并行的任务,而且网络游戏是互交性非常强的,所以线程间的同步会成为很麻烦的问题。由此一来,对于这种含有大量网络连接的单线转载 2010-06-07 10:32:00 · 1133 阅读 · 0 评论 -
VAST(AOI)
原文链接:http://vast.sourceforge.net/VAST is a light-weight network library to support scalable peer-to-peer (P2P) virtual environment / virtual world applications such as Massively Multiplayer Online Games (MMOGs). It is based on the research of Voronoi-based转载 2010-06-04 17:36:00 · 1308 阅读 · 0 评论 -
带宽限制下的视觉实体属性传播
<br />1. Introduction<br />简介<br /> <br />The Saga of Ryzom is a persistent massively-multiplayer online game (MMORPG) released in September 2004 throughout Europe and North America, localised in 3 languages so far. It has been developed by Nevrax since 20转载 2010-06-04 11:57:00 · 2401 阅读 · 0 评论 -
开源的魔兽世界参考架构——mangos
<br />开源社区常常有很多出人意表的项目,让人往往击节叹赏。例如当年在普通PC电脑上虚拟运行苹果机系统的Pearpc。把微软游戏机xbox改装成家庭影音中心的xbox-media center,以及在ipod上安装linux的ipodlinux等项目。在电脑游戏方面当然也有很多出色的开源项目。<br />暴雪公司的游戏历来都是精品。网络游戏大热以后,它推出的基于10年游戏历史的网游:《魔兽世界》也更是名声在外(当然有好有坏,坏名声在于它太吸引人以致于很多人沉湎其中)。网络游戏的盈利模式和传统电脑游戏不同转载 2010-07-28 08:26:00 · 21294 阅读 · 1 评论 -
龙之谷服务器构架结构设计实现分析
<br />注意:此处纯作收藏之用,如有再转,请按如下方式详细标明原创作者出处,以示尊重!!<br /><br /><br />版权声明:<br /><br />[原创]龙之谷服务器构架结构设计实现分析<br />by AKara 2010-07-24 @ http://blog.youkuaiyun.com/akara @ akaras@163.com<br /> <br />---------------------------------------------------------------------<b转载 2010-07-28 08:32:00 · 2725 阅读 · 0 评论 -
【转载】基于多层结构的网络游戏平台的研究与应用
本文纯粹收藏,如有再转,请按如下方式详细标明文章题目、作者及其导师信息,以示尊重。由此所引发的版权问题与本博无关!<br />来源:http://www.cnblogs.com/bluespot/archive/2008/07/13/1241950.html基于多层结构的网络游戏平台的研究与应用基于多层结构的网络游戏平台的研究与应用学科专业: 计算机软件与理论研究方向: 计算机软件导 师: 李 祥 教授研 究 生: 匡 华中国 · 贵州 · 贵阳 2007年 5 月转载 2010-07-21 09:18:00 · 30860 阅读 · 0 评论 -
小谈Online-game服务器端设计(3)
<br />原文地址:http://dev.gameres.com/Program/Abstract/Thinking/online_g_3.htm<br /> 下面我想来谈谈关于服务器上NPC的设计以及NPC智能等一些方面涉及到的问题。首先,我们需要知道什么是NPC,NPC需要做什么。NPC的全称是(Non-Player Character),很显然,他是一个character,但不是玩家,那么从这点上可以知道,NPC的某些行为是和玩家类似的,他可以行走,可以战斗,可以呼吸(这点将在后面的NPC智能里面提转载 2010-06-12 15:48:00 · 857 阅读 · 0 评论