设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 IT综合资讯 查看内容

我从编写X翼战机VS钛战机游戏中学到的

2014-3-31 11:47| 发布者: joejoe0332| 查看: 3750| 评论: 0|原作者: 菜鸟浮出水|来自: 伯乐在线

摘要:   当我们启动“X翼战机VS钛战机”这个项目的时候,我们的目标是去创造第一个多人在线的星球大战游戏。为了实现这个目标,除了通过因特网进行联网对战以外,还有很多问题需要我们解决。我将回顾我们遇到的所有问题 ...


  总结


  总结非常明显了:因特网就是个坑。我们对于我们游戏在糟糕的因特网连接下的表现非常失望。但是回过头来看,我们就像其他人做的一样好,在各种限制之下我们努力奠定了游戏的风格。


  缺乏一个专门的服务器最终变成了一个巨大的问题。在丢失连接的情况持续一定的时间之后,直接发送整个游戏世界的状态要比重发所有丢失的数据包要容易一些。但这个办法不实用,因为需要这么做的只有一个玩家,并且无法节省带宽。一个专门的服务器可以解决这个问题,并可以提高让一个玩家加入一场已经开始的游戏中来的能力。“中途加入”是我们非常想要的一个游戏特性,但是在没有一个专门的服务器时,我们还是感觉它不太实用。




  一个专门的服务器能够支持更多的玩家。延迟也能够减少一半左右,因为消息在重发给别的玩家时不需要再通过调制解调器了,而在有主机玩家的情况下却是需要。除此之外,一台专门的服务器能够更加容易的认证连接进游戏的玩家,因为他们只需要关心和服务器之间的连接。当一个玩家扮演主机时,其他玩家必须关心主机玩家和因特网的连接速度,同时还有他们自己的连接速度。


  我们网络模型面对的一个最大问题在于数据包需要按顺序进行处理。那些接收到的乱序的数据包,本来能够用来提高游戏世界的预测精确度的,但是在“X翼战机对战钛战机”中是不行的。甚至它们的存在,也会带来明显的性能问题。问题在于当按照顺序到达的数据包到达的时候,我们需要立刻处理它们,而同时也会有乱序的数据包到达。因为处理器会遍历每一个数据包,所以这会带来处理时间上的额外开销。


  如果我们一开始就考虑到上面提及的问题的话,所有的难题都会简单许多。但是我们是在修改一个已经存在的游戏引擎,我们被它的特性所限制。如果游戏引擎对高延迟的处理能够更加高效,那么事情就容易许多了。事实上我们需要使用一种灵活的处理时间间隔,这使得在处理高延迟的时候非常低效。除此之外,如果引擎能够利用乱序的数据来提高游戏世界预测的精确度的话,一个高延迟,不停重发数据包的过程,就不会被注意到。


  我们解决问题的办法一个优势是它完全独立于游戏逻辑之外。我们发送的数据包只包含玩家的输入操作,并且这种技术能够不做修改就用在任何一种实时游戏中。这个模型实现中最佳的一块是我们不需要去担心游戏内容发生变化,而引起我们需要去修改网络模块的代码。事实上数据包中不包含游戏的任何特定数据使得玩家在使用机器人去作弊上更加困难。为了获得一种优势,一个机器人必须要能够比人更快的创建一串数据的输入,在我看来这个在我们的游戏中非常难做到。


  目前Peter Lincroft是Ansible Software公司的主程序和董事长。他毕业于California大学计算机科学专业。他第一次成名于游戏Pipe Dream,那是他在几周内独立完成的游戏。他在Lawrence Holland公司的Secret Weapons of the Luftwaffe项目组里继续编写他的第一款3D图形引擎。后来他继续和Lawrence合作,帮助他们创建了游戏软件开发公司,最终成立了Totally Games公司。他在1998年4月之前一直是该公司的首席技术官。后来他离开去创办了自己的公司,Ansible Software。他开发的游戏包括Pipe Dream,Secret Weapons of the Luftwaffe,X-Wing:Star Wars Space Combat Simulator, X-Wing CD, TIE Fighter, TIE Fighter CD, and X-Wing vs. TIE Fighter。这些游戏卖出了3百多万份,并且获得了无数的年度游戏大奖。TIE Fighter CD最近被PC Gamer杂志冠以“PC史上最佳的游戏”的殊荣。


原文链接: gamasutra 翻译: 伯乐在线 - 菜鸟浮出水
译文链接: http://blog.jobbole.com/63681/


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部