zoukankan      html  css  js  c++  java
  • MO and MMO

      最近在读Square Enix的工程师中嶋谦互的《网络游戏技术核心》,可以让开发者对MO的开发有全面系统的了解,书写的非常棒。谈谈作者,他最早负责《最终幻想9》的开发。该书曾经获得CEDEC大奖,

      许多开发者可能更为熟悉GDC等,CEDEC是在日本横滨举行的开发者会议,和GDC的探讨非常类似,旨在于游戏技术和开发主题的探讨。

      下面就引用一些最概括的问题走一遍本书的流程。

      1.架构模式

      C/S架构就是我们广泛接触的MMORPG大量启用的,这种带宽数据量往往比较小,对游戏的反应速度没有那么快。RPG类游戏非常适合。但是像Call of duty或是Titanfall就显得捉急,因为这种快节奏游戏的数据的吞吐量往往是前者的3倍。

      所以你肯定会纳闷为什么Call of duty不能像MMORPG那种出现盛大的千人大战场面。

      这种架构的方法往往是需要企业有一个专用服务器,玩家的客户端和服务器之间交换数据。

      我们玩到的主机游戏大量使用P2P架构,这种架构在Player之间建立网络架构,可以使用星形或是网状结构。但是因为玩家之间不能通过全局ip来建立连接,当前使用了NAT技术,可以穿透来进行连接。

      当然这两种技术可以混合使用。

      

      还有一种玩家经常抱着3DS或者PSV进行《怪物猎人》,这就是Ad-Hoc连接模式。他们不会借助互联网,而是会使用局部的无线LAN等,高中时期我还见过红外线的电子词典联网游戏。大都是讨厌的仙侠RPG。

      2.得谈一下MO和MMORPG的特点:

      MO:我们拿Titanfall举例,游戏的节奏非常快,连接人数不会超过百人,往往20多分钟一局就结束了,游戏的数据是一次性的。同步与异步方式

      MMO:魔兽世界呗,人数众多,数据量要进行保存。浏览器方式

      魔兽世界用到了MMO和MO混合,保持了两种架构在不同模式下的优劣,但开发难度却非常大。

      3.同步和异步

      举一个例子,我们在玩Titanfall的时候,大家都控制自己的角色,得要想办法将所有玩家的状态统一起来,他们的位置,行动,枪支状态进行统一全局管理然后让大家同步进行。否则大家看到不一样的情况就糟了。这就是同步

      比如我们使用POV叙述:

      我:驾驶titan射击你,你躲避。

      你:敌人驾驶titan射我,我得躲避。

      总线型的网络布局可以这样做,玩家的客户端之间老老实实的将互相的操作信息发送给对方即可(好像说的很容易,其实相当复杂)。

      这要求我们要做到以下几点:

      ①初始状态得相同

      ②随机数种子各个客户端都一样

      ③循环过程:

      a.所有终端进行输入信息,在全部接收完成前处于等待状态

      b.从玩家A-Z轮询处理

      c.渲染

      d.受理下一个操作

      e.发送自己这部分输入信息

      

      

  • 相关阅读:
    Linux、Windows网络工程师面试题精选
    (转)JVM 垃圾回收算法
    笔试题学习
    使用Spring的好处
    JAVA保留字与关键字
    经典算法问题的java实现
    详解平均查找长度
    13种排序算法详解
    Grunt
    sublimeText
  • 原文地址:https://www.cnblogs.com/NEOCSL/p/3774842.html
Copyright © 2011-2022 走看看