注册 登录
  • 动态
  • 推荐
  • 游戏
  • 分享链接 new
  • 回答问题
  • 发现
  • 野蔷薇
  • 视频

OwenTsai 游戏设计,Web开发

回答了问题 更新于 2019-12-19 12:45:43

网络游戏中,如果玩家行为可以永久影响世界,包括地形破坏,生态平衡等对开发技术的要求有多高?

没什么需要攻克的技术。自打minecraft提供服务器脚本之后,任何有服务器的人都可以在自己的服务器上部署一个客制化的minecraft。

(补充一句,就算不是像素或体素游戏,根据 projectile 的角度和威力计算弹坑和环境破坏也早就在七八年前的RTS游戏中实现了)

仔细查看一下服务器的目录,能看到世界的所有数据都储存在world文件夹内,大量的二进制和纯文本文件保存了这个世界每一个chunk,每一个block,每一个entity的状态和信息。
技术上没有难度,那为什么很多网游不采用这种设计呢?
很多网游虽然是多人在线游戏,但也有完整的叙事环节和剧情。倘若允许玩家对游戏世界造成影响,那么可能导致发布任务的NPC被杀死,NPC和老婆的房子被玩家霸占,甚至整个村子被玩家拆平。陈星汉第一次为《风之旅人》添加了两名玩家的物理互动后,他发现玩家们不会利用这个机制互相帮助(例如把伙伴拉上墙壁),而是利用这个机制将队友推下悬崖,推到仙人掌上,想方设法“杀死”对方。陈星汉为此一度抑郁,暂停开发。赋予玩家以破坏的能力是很多游戏最基础的机制,但玩家倾向于在不该破坏的时候行使自己的权利。简而言之,为了防止其他玩家的游戏体验被破坏,设计师只能禁止一个多人在线游戏中玩家对世界的公有的、永久的、不可逆的破坏能力。
回头看minecraft也是一样的,没有哪个服务器的管理者不会在多人游戏中设置规则的,例如不允许玩家使用控制台,不允许破坏某些砖块,犯了罪之后会被传送至“黑曜石监狱”等等,这些都是为了防止在一个主题为“破坏”的游戏中,玩家恣意使用自己的权利破坏他人的体验。
目前比较常见的做法是“异步”的,什么意思呢?就是假设玩家A与NPC甲交流后,甲让玩家A跟自己走到下一张地图。而未触发此段剧情的其他玩家在与服务器同步数据时,仍然能看到NPC甲站在原处。但玩家A与服务器同步数据后,NPC甲已经被移动到了下一张地图,在当前地图上也许能看到玩家BCDEF在原来npc甲所在的位置围着一团空气说话。在这个例子中,游戏世界为每一个玩家创建了一个游戏的数据副本。玩家依然可以发生交互,但玩家对游戏世界造成的影响只停留在自己的数据副本中,并在需要时与服务器同步。
著作权归作者所有。商业转载请联系作者获得授权,非商业转载务必附上原作者名称,注明来自「奶牛关」并给出原文链接。不得以任何形式演绎或修改。

{{answer_voters_count}}人赞同

...

{{question_follower_count}} 个玩家关注

...

目录

    评论 0

    登录奶牛关账号即可参与讨论
    登录 / 注册

    OwenTsai 的更多回答

    查看所有回答

    该问题的其他回答