随笔分类 -  网络游戏服务器开发

摘要:在基于集群化服务器的游戏中,游戏程序员需要解决如何在服务器间分配客户端以及在服务器间交流信息。 集群化服务器的目的是减少每个服务器需要处理的客户端数量。当每台服务器处理更少的玩家时,意味着更少的客户端与服务器直接相连;仅对在这台服务器上的玩家进行操作。 比如说,如果有100个玩家,随机地将这些客户端分配给2台服务器,每台服务器有50个人。当一个客户端将其移动的消息发送给其所属的服务器时,为了保证... 阅读全文
posted @ 2011-05-19 17:16 红脸书生 阅读(3527) 评论(1) 推荐(3) 编辑
摘要:游戏空间剖分是针对大型多人游戏的一种优化策略。多个玩家同时在线,客户端与服务器必须频繁进行数据交互,以保持游戏的同步。如果玩家达到上千个,游戏场景巨大,许多玩家在场景中可能相隔遥远,彼此不能相互看到,也不存在任何沟通。在这种情况下,给每个玩家广播场景的更新消息就会消耗巨大的网络带宽。如果将场景进行预先剖分,并在游戏进行过程中实时更新玩家所在的子空间,服务器根据玩家所在的空间索引号,然后只对相同空... 阅读全文
posted @ 2011-05-19 16:25 红脸书生 阅读(2021) 评论(0) 推荐(0) 编辑
摘要:多播(Multicasting)将数据发送到网络组的各个地址,而不是单个地址。在多播技术中,服务器不是每次给一个地址单独地发送一个消息,而是告诉网络中的路由器,这是一个多播消息,路由器会把这个消息向多个目的地址转发,可以一次给多个地址发送消息。这样一次多播就可以将数据发送到所有需要得到数据的客户端。实际上,多播技术把服务器分发数据的任务转交给了网络中的路由器等路由设备。因此,多播降低游戏服务器的... 阅读全文
posted @ 2011-05-19 15:51 红脸书生 阅读(1545) 评论(0) 推荐(0) 编辑
摘要:网游数据包发送的特点是:每次发送数据的数据量很小,但是频率非常高。 每次发送数据所占带宽越小,给服务器造成的压力也就越小。 一般用于节约网络带宽的设计策略有: (1)只发送一次静态数据 通常在网络应用程序中,服务器将传送一定量的静态数据给客户端。这些数据可能是为3D世界初始化的参数,客户名字,或者一些对象的不变状态常量。网络引擎应该提供一种缓存字符串数据(客户名字、任务描述等等)的机制,只将给定... 阅读全文
posted @ 2011-05-19 15:10 红脸书生 阅读(2647) 评论(0) 推荐(0) 编辑
摘要:游戏引擎简单的说就是独立于外部资源,具有一定完整功能的底层函数集。 网络游戏引擎主要由图形引擎、网络引擎、物理引擎、人工智能引擎、声效引擎等组成。以下为几种较流行的图形与网络引擎1、图形引擎(1)OGRE图形引擎:一款开源的图形渲染引擎,只有图形部分。(2)RenderWare图形引擎:国际著名的商业游戏引擎。功能全面,全部用C写成。 该引擎较成功,涉及了游戏开发各个方面(除了网络),图形模块最大,为了适应跨平台特性,采用了组件化的插件式结构。 2、网络引擎 网络引擎封装了操作系统本身的并发和进程间通信机制,国外常用的引擎有:(1)DirectPlay网络引擎:是微软的DirectX软件开发. 阅读全文
posted @ 2011-05-18 20:30 红脸书生 阅读(2911) 评论(0) 推荐(0) 编辑
摘要:http://blog.csdn.net/gddsky/archive/2007/10/18/1831688.aspx 要描述一项技术或是一个行业,一般都会从其最古老的历史开始说起,我本也想按着这个套路走,无奈本人乃一八零后小辈,没有经历过那些苦涩的却令人羡慕的单机游戏开发,也没有响当当的拿的出手的优秀作品,所以也就只能就我所了解的一些技术做些简单的描述。一来算是敦促自己对知识做个梳理,二来与大家... 阅读全文
posted @ 2010-05-29 15:26 红脸书生 阅读(7150) 评论(0) 推荐(1) 编辑
摘要:本文描述了一个我所设计的游戏服务器体系结构,其目的是实现游戏服务器的动态负载平衡,将对象从繁忙的服务器转移到相对空闲的服务器中.设计并没有经过具体的测试与验证,仅仅是将自己目前的一些想法记录下来.随着新构思的出现,可能会有所变化. 以下是服务器的逻辑视图,其中忽略了管理和监控模块 --------------------------------------------------------|逻辑... 阅读全文
posted @ 2010-05-29 15:25 红脸书生 阅读(2377) 评论(0) 推荐(1) 编辑
摘要:原文地址:http://dev.gameres.com/Program/Abstract/Thinking/online_g_4.htm 在这一章节,我想谈谈关于服务器端的脚本的相关设计。因为在上一章节里面,谈NPC智能相关的时候已经接触到一些脚本相关的东东了。还是先来谈谈脚本的作用吧。  在基于编译的服务器端程序中,是无法在程序的运行过程中构建一些东西的,那么这个时候就需要脚本语言的支持了,由于... 阅读全文
posted @ 2010-05-29 15:22 红脸书生 阅读(1646) 评论(0) 推荐(0) 编辑
摘要:原文地址:http://dev.gameres.com/Program/Abstract/Thinking/online_g_1_2.htm 谈这个话题之前,首先要让大家知道,什么是服务器。在网络游戏中,服务器所扮演的角色是同步,广播和服务器主动的一些行为,比如说天气,NPC AI之类的,之所以现在的很多网络游戏服务器都需要负担一些游戏逻辑上的运算是因为为了防止客户端的作弊行为。了解到这一点,那么... 阅读全文
posted @ 2010-05-29 15:20 红脸书生 阅读(3385) 评论(0) 推荐(1) 编辑
摘要:原文地址:http://dev.gameres.com/Program/Abstract/Thinking/online_g_3.htm  下面我想来谈谈关于服务器上NPC的设计以及NPC智能等一些方面涉及到的问题。首先,我们需要知道什么是NPC,NPC需要做什么。NPC的全称是(Non-Player Character),很显然,他是一个character,但不是玩家,那么从这点上可以知道,NP... 阅读全文
posted @ 2010-05-29 15:19 红脸书生 阅读(1621) 评论(0) 推荐(1) 编辑