一种事件驱动网络游戏服务器的实现方法技术

技术编号:2833665 阅读:360 留言:0更新日期:2012-04-11 18:40
一种利用事件驱动网络游戏服务器的实现方法,其特征在于:通过事件驱动服务器根据事件源将事件分为三种类型,事件驱动服务器包括每种事件类型对应的独立处理器;当事件源的消息来到游戏服务器时,事件驱动服务器中的事件产生器就对到来的消息进行封装处理并产生一个事件,然后由事件驱动服务器中的事件分配器将产生的事件分配给相应的处理器进行处理;本发明专利技术的事件驱动的服务器只处理已经触发的事件,达到避免做大量无用功的目的,可以大量节约服务器资源,减小服务器承载量,提高了服务器效率,扩大游戏世界,减少运营成本。

【技术实现步骤摘要】

本专利技术涉及网络游戏服务器的事件处理,特别是一种利用事件驱动网络游戏 服务器的实现方法。
技术介绍
在一个网络游戏中,有着各种各样的对象,比如玩家、怪物、非玩家控制角 色、地图等,我们则将游戏世界中的如玩家(Player)、怪物(Monster)、非玩家 控制角色(None Player Character,即NPC)、地图(Map)等等统称为对象,这些 对象发生的各种活动统称为事件。正是这些对象接受或触发了各种各样的事件 才产生了交互,才构成了这个世界里的各种行为。网络游戏为玩家提供了一个平 台,在这个世界中的一切活动,比如捡取、丢弃、使用、买卖、聊天、PK等等都是在这个平台上完成。处理这一系列行为的传统手段是服务器开启以后,不停地轮询每一个对象,检查是否有事件发生,若有事件发生则调用相应的方法(游 戏规则)处理对应的事件。传统服务器就是这样为了响应每一个玩家的动作和游 戏世界的事件, 一个周期需要轮询每一个玩家、怪物、非玩家控制角色、每一张 地图。但是传统手段的弊端在于不论这些对象是否有事件发生,服务器都将主动轮 询这些对象。 一个大型的网络游戏,这样的对象往往成千上万,每个对象对应的事件也是相当庞大的,这种手段存在极大的浪费。假如这个服务器上有5000个玩 家,将逐个轮询这5000个玩家,处理他们相关的事件;同样,假如有200张地图, 也将逐一轮询, 一个个触发或处理对应的事件。比如怪物或非玩家控制的角色的寻路、攻击等。实际情况是在某一时刻,可能只有部分玩家只触发了一个或几个动作,而我们却轮询了全部玩家的所有动作;同样,可能在某时刻这张地图根 本没有玩家(这种情况我们将在后面分析到),但是服务器仍然在处理这张地图上 的对象(比如大量的非玩家控制的角色、怪物)。因此,维持这个庞大虚拟世界的 流畅运行会受到硬件、网络资源的制约,同时传统服务器模型存在浪费资源的现象,单个游戏世界规模有限,所做的无用功大量消耗服务器资源,严重阻碍服务器承载量,从而增加运营成本。
技术实现思路
本专利技术提供了一种可以有效解决不做无用功问题的利用事件驱动网络游戏服 务器的实现方法,可以大量节约服务器资源,减小服务器承载量。一种利用事件驱动网络游戏服务器的实现方法,其特征在于通过事件驱动 服务器根据事件源将事件分为三种类型,事件驱动服务器包括每种事件类型对应 的独立处理器;当事件源的消息来到游戏服务器时,事件驱动服务器中的事件产 生器就对到来的消息进行封装处理并产生一个事件,然后由事件驱动服务器中的 事件分配器将产生的事件分配给相应的处理器进行处理。所述事件源包括IOCP层的Player Event,即来自客户端玩家网络消息触发 的该玩家的事件;Script Manger产生的事件,即服务器脚本产生的事件,比如服 务器定时要发生的事件, 一些在游戏地图中游走的非玩家控制角色等;收到各个 事件处理器产生的事件。采用IOCP (Windows平台下的网络通信模型完成端口模型)的网络层,用 于接收客户端发来的消息;Script Manger,服务器的脚本管理,用于根据脚本产 生的服务器事件。所述根据事件源将事件分为三种类型PLAYER_EVENT,玩家相关的事件; MAP—EVENT,地图相关的事件;GS—EVENT,服务器事件。所述三种类型事件对应的处理器为PLAYER—EVENT对应的Player Event Processor ,玩家事件处理器;MAP—EVENT对应的Map Manger,地图管理器;GS_EVENT 对应的GS ^vent Processor,全局事件处理器。所述事件和对应的处理器也可以根据实际情况所需进行扩充。IOCP层的消息只会触发PLAYER_EVENT事件,这种类型的事件用于通知服务器 该玩家网络层有消息,由Player Event Processor模块去取出玩家的消息进行处 理;Script Manger模块触发GS_EVENT事件,由GS Event Processor处理服务器 本身触发的一些全局性的事件,比如广播等等;M印Manger用于管理地图列表, 并处理地图中的怪物、非玩家控制的角色、掉在地上的物品等对象。所述事件产生器和事件分配器接受从IOCP、 Script Manger及各事件处理器 产生的事件,负责事件的产生和分配。.所述Player Event Processor, Map Manger禾口 GS Event Processor3个事 件处理器也会产生PLAYER_EVENT, MAP—EVENT和GS—EVENT这3种类型的事件。所述Player Event Processor, Map Manger禾口 GS Event Processor3个事 件处理器中再次产生了事件,这个事件将被发送到事件产生器进行封装,然后又通 过事件分配器进行分配,最后仍然通过各个事件处理器进行处理,如此往复。所述事件产生器和事件分配器或者Player Event Processor, Map Manger和GS Event Processor3个事件处理器中的任意一个模块都采用被动方式工作, 只有消息或事件到来事件产生器才产生对应事件,当有事件到来分配器才进行分 配,同样每个事件处理器也只有事件到来才进行处理。 本专利技术的有益效果-事件驱动的服务器只处理已经触发的事件,达到避免做大量无用功的目的,可以大量节约服务器资源,减小服务器承载量,提高了服务器效率,扩大游戏世界,增加运营成本。 附图说明图1为本专利技术的事件驱动服务器的结构示意图图2为本专利技术实施例4所述根据视距驱动地图的示意图图3为本专利技术实施例4所述玩家驱动怪物的范围的消息(Player Dirver Rect) 的传递流程图 具体实施方式 实施例1如图1所示, 一种利用事件驱动网络游戏服务器的实现方法,通过事件驱动 服务器根据事件源将事件分为三种类型,事件驱动服务器包括每种事件类型对应 的独立处理器;当事件源的消息来到游戏'服务器时,事件驱动服务器中的事件产 生器就对到来的消息进行封装处理并产生一个事件,然后由事件驱动服务器中的 事件分配器将产生的事件分配给相应的处理器进行处理。所述事件源包括IOCP层的Player Event,即来自客户端玩家网络消息触发 的该玩家的事件;Script Manger产生的事件,即服务器脚本产生的事件,比如服 务器定时要发生的事件, 一些在游戏地图中游走的非玩家控制角色等;收到各个 事件处理器产生的事件。采用I0CP的网络层,用于接收客户端发来的消息;Script Manger,服务器的脚本管理,用于根据脚本产生的服务器事件。所述根据事件源将事件分为三种类型PLAYER_EVENT,玩家相关的事件 MAP—EVENT,地图相关的事件;GS一EVENT,服务器事件。所述三种类型事件对应的处理器为PLAYER—EVENT对应的Player Event Processor,玩家事件处理器;MAP—EVENT对应的M邻Manger,地图管理器;GS—EVENT 对应的GS Event Processor,全局事件处理器。所述事件和对应的处理器也可以根据实际情况所需进行扩充。IOCP层的消息只本文档来自技高网
...

【技术保护点】
一种利用事件驱动网络游戏服务器的实现方法,其特征在于:通过事件驱动服务器根据事件源将事件分为三种类型,事件驱动服务器包括每种事件类型对应的独立处理器;当事件源的消息来到游戏服务器时,事件驱动服务器中的事件产生器就对到来的消息进行封装处理并产生一个事件,然后由事件驱动服务器中的事件分配器将产生的事件分配给相应的处理器进行处理。

【技术特征摘要】
1、 一种利用事件驱动网络游戏服务器的实现方法,其特征在于通过事件驱 动服务器根据事件源将事件分为三种类型,事件驱动服务器包括每种事件类型对 应的独立处理器;当事件源的消息来到游戏服务器时,事件驱动服务器中的事件 产生器就对到来的消息进行封装处理并产生一个事件,然后由事件驱动服务器中 的事件分配器将产生的事件分配给相应的处理器进行处理。2、 根据权利要求l所述的一种利用事件驱动网络游戏服务器的实现方法,其特征在于所述事件源包括IOCP层的Player Event,即来自客户端玩家网络消 息触发的该玩家的事件;Script Manger产生的事件,即服务器脚本产生的事件, 比如服务器定时要发生的事件, 一些在游戏地图中游走的非玩家控制角色等;收 到各个事件处理器产生的事件。3、 根据权利要求l所述的一种利用事件驱动网络游戏服务器的实现方法,其 特征在于所述根据事件源将事件分为三种类型PLAYER—EVENT,玩家相关的事 件;MAP—EVENT,地图相关的事件;GS—EVENT,服务器事件。4、 根据权利要求3所述的一种利用事件驱动网络游戏服务器的实现方法,其 特征在于所述三种类型事件对应的处理器为PLAYER—EVENT对应的Player Event Processor,玩家事件处理器;MAP—EVENT对应的Map Manger,地图管理器;GS—EVENT 对应的GS Event Processor,全局事件处...

【专利技术属性】
技术研发人员:闫文正任春红
申请(专利权)人:成都金山互动娱乐科技有限公司
类型:发明
国别省市:90[中国|成都]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1