`
eric_weitm
  • 浏览: 246929 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

网游服务端技术总结 基于mangos源码 (一)

阅读更多
整个game server的并发模型

一 概述
game server至少要提供如下几类的功能 :
  1、响应客户端请求-------WorldRunnable
  2、后台命令  -------CliRunnable
  3、分布式架构(RMI等) -------MaNGOSsoapRunnable

可以看到针对这几类功能,mangos都给予了支持。

二、WorldRunnable响应客户端请求的并发实现
  game server会提供很多服务,如组队、加好友、交易、走路、战斗……,从宏观上讲这些服务是同时对外提供的,另外IO操作是费时的,
必须将IO与逻辑处理分开,这样的话一个基本的实现是这样的:
1、开启IO线程,所有费时的操作交由此处处理   WorldDatabase.ThreadStart();
2、利用协程来实现各个子系统,或者利用心跳来实现各个子系统的调度(不能开很多线程,线程代价太高)

三、Mangos的心跳实现
void World::Update(uint32 diff)
  基本上包括几类:
  1、检查定时器---------------时间
  2、刷任务
  3、维护session---------------------人物
  4、全局环境更新(map、battleGround)--------地点
  5、处理服务器事件------------------事件
  6、其他(数据同步、后台调试、IO回调……)

四、game server运行的机制
  1、定时器触发
  2、事件触发(松耦合)

五、典型的一种service的实现方式
1、IO协程将cammand入队
2、worker协程 依次fetch、execute
   核心数据结构是线程安全的队列
分享到:
评论

相关推荐

    mangos源码(游戏服务器端程序框架)

    mangos不是一个魔兽私服模拟器,它是一个开源的自由软件项目,是用c++和C#编程语言,实现的一个支持大型多人在线角色扮演游戏服务器的程序框架,在这个框架下,它理论上应该支持任何客户端的网络游戏,由于现在很多...

    MANGOS源码-魔兽私服

    mangos不是一个魔兽私服模拟器,它是一个开源的自由软件项目,是用c++和C#编程语言,实现的一个支持大型多人在线角色扮演游戏服务器的程序框架,在这个框架下,它理论上应该支持任何客户端的网络游戏,由于现在很多...

    MangosTBC(仿魔兽服务器VC++源码)

    《MangosTBC:深度探索游戏服务器源码与C++技术》 MangosTBC,这是一个专门针对魔兽世界“燃烧的远征”(The Burning Crusade)版本的开源仿魔兽服务器项目,由C++编写,适用于Visual Studio 7、8、9等开发环境。该...

    开源的魔兽世界

    近年来,随着互联网技术的发展,网络游戏成为了一种极为流行的文化现象。其中,《魔兽世界》作为一款备受玩家喜爱的游戏,不仅拥有庞大的用户群体,还激发了一系列围绕其展开的技术探索与创新。本文将深入探讨基于...

    LegionCore-7.3.5:魔兽世界-《军团再临》(7.3.5 26972)来源,基于来自uwow.biz的泄露来源

    TrinityCore源自大规模网络游戏对象服务器MaNGOS ,它基于该项目的代码,该代码随着时间的推移发生了广泛的变化,以在优化游戏机制和功能的同时优化,改进和清理代码库。 LegionCore开发是完全开源的; 强烈鼓励...

Global site tag (gtag.js) - Google Analytics