网络多人游戏架构与编程

Posted tekkaman

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络多人游戏架构与编程相关的知识,希望对你有一定的参考价值。

网络多人游戏架构与编程1

1、即使在今天,大多数的多人在线游戏在每个游戏会话中仍然限制玩家的数量 ,一般支持4~32个玩家。然而,在大规模多人在线游戏(massive multiplayer online gmme,MMO)中,成百上千的玩家将同时出现在同一个游戏会话中。

2、《星际围攻:部落》的开发者们最终将数据分为以下4种类型:

  1)非保障数据。当带宽有限时,游戏选择首先丢弃这些数据。

  2)保障数据。

  3)最近状态的数据。只有最新玩家数据才是重要数据的场合。如游戏知道了玩家当前的生命值,那么他5秒之前的生命值就不重要了。

  4)最快保障数据。如一个玩家的移动信息,在一个非常短的时间内极其重要,因此要忙传输。

3、对等网络模型需要O(n^2)的带宽,而C/S模型只需要O(n)带宽。

4、《星际围攻:部落》的网络模型:

  技术图片

  1)平台数据包模块。标准套接字API的封装,可以构建和发送不同的数据包格式。

  2)连接管理器。将网络中两台计算机之间的连接抽象化,连接管理器是不可靠的,它保证投递状态通知的正确传输。

  3)流管理器。决定允许数据传输的最大速率。把请求按优先次序排列好,在带宽限制下,移动管理器、事件管理器、ghost管理器拥有最高优先级。

  4)事件管理器。维持游戏模拟层产生的事件队列,这些事件可以看作是远程过程调用(remote procedure call, RPC)。

  5)Ghost管理器。复制被认为与指定客户端相关的动态对象。这些信息按优先级分为“必须知道的”、“最好知道的”

  6)移动管理器。当有移动数据可用时,流管理器总是给出站数据包添加所有的移动管理器数据。

5、

6、

7、

以上是关于网络多人游戏架构与编程的主要内容,如果未能解决你的问题,请参考以下文章

多人游戏的服务器架构? [关闭]

多人在线游戏架构实战-基于C++的分布式游戏编程开篇

多人在线游戏(MMO)|建筑|学习路径

node.js 中的多人游戏架构 - 与 Redux 的状态管理和同步

Source引擎多人模式网络同步模型

大型多人在线游戏服务器架构设计