2016暴雪嘉年华:魔兽世界游戏工程师访谈大汇总

2016-11-13 18:22作者:月神之韧 译来源:

  暴雪今年有一个没有进行直播的工程师访谈,以下为魔兽的相关摘要:

  渲染长度在军团再临中增长为200%,或是在一些高端机器中可以达到300%。

  远古海滩应该在船只到达码头时立刻开始,但曾经有一个时机问题。

  最初在巫妖王之怒的办法是在码头和船只上分别设定对立和敌对的隐形NPC。这些NPC会在船只到达时接近距离,然后一方会杀死另一方,接着战场便会开始。

  要塞的建筑动画和其它类似的东西使用的是3D模型的文本,所以这些动画完全没有进行本地化。

  所以他们就加入了一些字幕来帮助本地化。而对于军团再临来说,有一个内置系统在世界中可以显示可进行本地化的浮动3D文本。

  团队在每一个资料片完成后便会花些时间处理一些技术债。

  当WoW最初上线时,大部分用户只有一个单核CPU且显卡无法运行过多的像素着色引擎。

  当团队希望去做一个新角色模型时,他们意识到在众多种族里他们需要制作三倍或是四倍的关节数。

  而动画系统则是过去大部分玩家仅有单核处理器时编写的,它不是为处理这些事而创建的。现在的最低要求是可以处理多线程,所以他们编写了一个工作系统把需要生成动画的模型发送到每一个线程中。

  团队然后意识到他们其实可以生成更多的模型,所以偿还了技术债并提高了引擎的性能。在一部分德拉诺之王的动画里,你会看到上百个兽人在战场中攀行奔跑,这得益于系统的改进使得团队可以做到这一点。

  隐形追踪器都属于有用处的隐形单位。工程师团队直到最近才相对较小的(使用这些单位),所以非常多设计师创造的内容采用了隐形追踪器。

  这会造成服务器的表现问题并使得非确定性的行为错误很难再现。团队需要回去查看这些单位在哪进行了使用,然后思考需要哪些工具可以帮助到设计师们开发内容。

  奥拉基尔之战有着上千个隐形追踪器在它周围环绕。这些是用于玩家跳入最近一个单位时推动其朝着漩涡移动。

  工程师团队回顾了新的副本和团队战,原因之一便是去查看一共用了多少个隐形追踪器。如果过多的使用则是一个警示,但有太多合理的情况需要应用(隐形追踪器)。

  在游戏中人物聚集的情况极具难点,正如你的客户端需要知道每一个人物所在位置和他们正在进行的动作。这也是为什么团队对游戏中人群的数量和规模进行了限制,这可以帮助到服务器和客户端的表现,以及带宽使用。

  客户端会向服务器发送施放的技能并假设它将会成功。有时候你施放一个法术,然后公共冷却开始,接着会提示其实你已经被沉默或中断了。

  施法动画则是另一项会立刻开始的事项,这也是为什么当你在高延迟下施法前就会双手发光。这会让你的行为反馈感受到立刻性。

  比如寒冰箭这样的法术有一个长长的施法动作条,所以在用户施放了法术后其动画和UI变化会立即开始。

  而对于瞬发法术则需要等待(信号)到达服务器并归来才会进行更新。如果你是个近战职业可能会注意到法术不是那么具有反馈性。

  而在军团再临中动画效果将会直接开始,而服务器反馈会在事件发生前回归,所以事件得以与动画同步,使得用户体验变得更好。

  你所有的装备、背包和银行栏在最初的游戏里都是硬编码。这些包裹栏在代码上都属于很难改写的,所以如果扩大了默认背包栏则其余所有都将需要重新洗牌。

  同时还需要对所有的角色进行一次数据的转移过程。这将会是一种小题大做,更简单的方式便是去增加其余背包的大小。

  没有任何技术上的限制去阻止角色在穿戴长袍时显示靴子。这可以用于夜之子因为他们有一系列有限的动画,所以可以更简单的避免裤子和长袍在动画上的问题。

  而在玩家的角色模型上,靴子的几何会进行变化,比如当你穿戴更大的靴子时。这是一个团队希望解决的问题。

  目前客户端会加密电影直到它们是时候推出。团队希望超出文件等级上的改进使得可以访问文件内特定的片段。这是一项团队希望去追求的技术且大家在内部都同意如此。

  牛头人玩家在进门时会卡住的问题很难解决。牛头人必须有一个围绕他的碰撞体积来决定他是否会在奔跑时撞到什么东西。

  这也会决定他在地面上是如何站立的,或是在游泳时、是否可以穿过一扇门时。而在竞技场中碰撞体积进行了一般化,以防止任何种族可以从地形上获得优势。

  侏儒和矮人有一个类似的问题,他们会在浅水区沉溺而其他人不会。

  对于很多物品来说堆叠20个是一项设计上的选择,并非有技术限制。

  在个人拾取模式中宝箱可以使所有人在同时拾取。而允许多人拾取一个宝箱其实真的很困难。这也是另一个技术债的例子。

  在德拉诺王上线时有一些不像宝箱的物品作为宝箱引入,造成了一些瓶颈。而现在有一项多人拾取技术应用于这类物品,所以团队在持续的努力工作对各类事物进行改进。

  每当有一项可以产生大量客服表单的功能出现时,都将会立刻转发给工程师团队开始调查。

  在服务器上有着移动限制代码来确保你没有以非预期的方式进行移动。目前代码在99.9%的时间内可以确保正确。

  其余时间则是有时服务器会认为你在以一种不可能的方式移动,你将会被断开连接。德鲁伊曾经在职业大厅中骑在特定坐骑上一片水中会造成断线。这些有时候会非常难以追踪到。

  在跨服区域最初实施时,一个特定的玩家总是会在艾尔文森林到暴风城中间掉线。

  团队尝试了非常多的情况但无法重现当时的情景。最终他们复制了那一角色然后重现了问题,结果发现是一项鞋子上的移速附魔在跨服区域无法正确生效引发的问题。

  有一段时间小提示会瞬间消失,但把鼠标移动到小地图上的一个点时会修复。而在7.0版本上线后这一问题消失了,团队也不知道为什么,但bug修复了!

  在报告一项bug时,写明你在哪、在做什么、你的职业和种族、以及尽可能多的信息会对团队重现当时的场景非常有帮助。特别对于游戏崩溃的问题尤其重要。

  团队在设计师会议上讨论破碎群岛上标志性地点时发现:如果可以从很远的地方看到这些地点会非常的酷炫。

  游戏世界在感到具有生机时会让体验变好,所以区域人口一直在增加或减少来取得一个愉悦的平衡。

  有极其多和插件开发社区的互动。他们总是会和他们进行讨论。

  插件经常会揭露一些团队没有意识到他们所希望的事物,直到插件出现。

  当WoW上线时,你拥有多人组队框架而没有团队框架。团队框架最初是一款插件,但现在你无法想象没有它们游戏该如何玩耍。

  法术系统引入了很多的延时消息,这会造成竞争危害(wiki:旨在描述一個系統或者進程的輸出,依赖于不受控制的事件的出现顺序或者出现时机。)

  搏击俱乐部和试炼场是由所有设计师所开发。

  角色感兴趣的区域随着角色、目标和NPC在军团再临中得到了大幅度的增加。

  水黾无法在水上行走是因为角色的碰撞体积。这一碰撞体积在水下是一个特定的比例使你在游泳时不会看起来很荒唐,但跳跃高度修复过了,所以你无法跳出足够的高度来脱离水面。

  引入另一个位面的团本战会使一队无法观察到另一队的表现,同时还有战斗日志的记录。

  团队尝试了部分拆开团队(如萨维斯),这样你仍将可以拥有完整的战斗日志,但有时候经常会出现一些最后时分的问题阻止其运作。

  当团队正在解决移速限制bug时,他们在那时没有服务器状态的访问权限,所以他们通过观察日志开始。

  如果在某个区域出现了问题,团队会在线修正进入一个可以查看更多日志详情的系统去寻找问题。

  当你施放闪现时,服务器会查看距离、目的地以及玩家是否可以到达那里。

  当你施放Roll(未知法术)时,你会得到一个光环使你移速增加并且移除控制。

  在军团再临上线前剥皮无法共享拾取是一个已知问题。理想方案是每个人都有几率可以对怪物进行剥皮,但有一些技术上的限制在短期内阻止这实现。团队希望在未来可以修复。

  团队现在有很多不同的方式来对游戏进行在线修正。很长时间以来有非常多不保存于客户端的服务器数据可以进行修正。

  而现在团队可以在服务器上在线修正数据,并且传送给客户端去改变类似视觉、动画以及服务器和客户端的二进制代码。

  在资料片上线时在线修正系统是在修正它自己。他们部署了非常多的在线修正使其损坏了,所以他们曾需要修复它。

  译者:月神之韧

官方微信

网上冲浪记事官方微信