暴雪游戏趣闻:战网隐身登陆功能未实装 缘起代码
更新时间:2023-07-24 21:14:01 阅读量: 实用文档 文档下载
- 暴雪战网怎么隐身推荐度:
- 相关推荐
暴雪游戏趣闻:战网隐身登陆功能未实装 缘起代码这是在现场的暗月马戏团区进行的小规模的工程师访谈,算是第一次有这种技术向的东西,我觉得很有兴趣,就尝试翻译了下。
因为东西很多,我顺序从上往下更新,慢慢翻译。
守望先锋组当初为了Chinajoy做了一个展示用客户端,但是制作时忘记和谐血液了。结果就是他们只好顶着很弱的wifi信号来临时修改。当时有人想到代码里有一行语句用来判断你是否击中了其他目标或者环境,就仅仅是一个if。于是他们决定通过修改可执行文件里的一个字节来达成目的。结果就是他们写了一个可执行文件,载入客户端,找到那个字节,翻转之,然后把修改后的客户端输出。后来在CJ上的展示河蟹效果很不错。
德拉诺正式上线的那几天,有一些超出预料的情况。当时硬件资源已经准备到位,但是因为WoW是个老游戏,每一台刀片服务器都负责游戏里的某一部分。工程师们根据他们推断出来的最佳配置对服务器集群进行了优化,只是他们也不清楚负责游戏里某一部分的刀片服务器具体是什么配置。结果就是当时用于创建新副本的服务器并不是高内存型服务器,而你每次进入要塞都会创建一个新的副本(想想看上线那几天会有多少万这样的副本被频繁创建吧)。问题出现后,工程师们在数据中心里待了8个小时,把刀片服务器拔出来,增加内存,在不同服务器集群之间转移。虽然那段时间里这些操作导致了不少“副本未找到”的问题,但是调整结束后一切都稳定多了。之后就只是程序性调整了。
风暴英雄的引擎和星际的是同一个。所以每次进行更新的时候,都需要考虑到是否用户创建的mod会被这些修改影响。他们不希望用户mod会因此出bug甚至无法使用。因此,他们设定了许多引擎设计的限制和枷锁,不过大家都挺支持的。所幸的是,Team 1(星际组)的离职率很低,大家都很熟悉这些代码(言下之意……)
背包,永远的背包问题。最初的WoW设计师决定用一个数组(array)来记录你的所有物品。数组一开始的几个位置用来放你正在装备的物品,然后就是你的包包里的物品。后来(此时依然是早期)他们想加一个银行进来,于是把银行加到了这个数组的末尾那边(装备->背包物品->银行物品)。不过,为了让玩家不能随时随地打开银行(代码会被玩坏的),他们在代码库里的很多地方写了很多额外的逻辑,比如指定数组的某个位置对应到背包里的什么位置,然后银行的位置是从数组里的哪一位开始。这些数值都是hardcode(就是写死一个数字,而不是用类似(数组总长度/10)这种写法)到各种地方的,而且想去修改的话也不是说把这些数据找出来全部改掉就可以。有些逻辑判断可能就需要某个数值写死。如果你想修改默认背包的大小,天晓得你会搞坏些啥。这样的修改非常容易bug或是出现难以名状的错误,而且你十有八九会改出新问题,然后以各种你完全不想看到的姿势炸裂客户端。结果就是,他们需要找一群牛逼的,本来可以去做那些新功能的工程师,去专门一行行代码扫过去成千上万行老代码找到要修改的地方,以及让QA部门去用所有能想到的姿势测试以保证修改上线后不回瞬间爆炸。然后就没有然后了,还是16格到死吧。制作组比较喜欢在给现有功能增加相关新功能的时候再去动老代码。比如当时在改跨服区域的时候,他们重新设计了把不同玩家分配到不同服务器的逻辑。老代码被完全重写并且易于扩展,结果就是将来想加入新的相关功能的话,不需要担心16格背包那样的问题。一个扩展的例子就
是要塞的无缝切换,还有军团资料片里的一些类似功能。
战网客户端需要支持多个游戏里的老代码。比如他们想要增加你的战网好友上限时,他们必须去相关游戏里找到所有可能限制这个上限的代码并且加以修改。比如有些游戏的UI限制了你的好友数上限,这些必须要同步修改。每一个新修改都可能需要导致一个多个甚至所有游戏进行更新,所以他们也只能尽力而为。
魔兽世界开发者访谈:战网隐身功能正在制作中
隐藏在线状态这个功能迟迟不来也是因为老代码。想要让这个功能和游戏内容保持一致并不简单。技术上来说不难,但是比如说你的朋友隐藏了在线状态但是他在游戏里就站在你前面的话?隐藏在线状态,对我们来说,应该说是“我想去偷偷撸一把D3,而不是和基友们去刷马桶”这样的东西,但是当你们都站在AH的时候。
守望先锋组一度非常担心新闻站的数据挖掘。比如最近被挖掘出来的玩家等级,而且blzcon现场的demo里也依然有踪影。实际上我们在beta开始前2天就弃用了这个系统,因为觉得这样一点都不cooooool。只是这个决定来的太快以至于他们没把遗留数据清理干净。
正在阅读:
沪江小学资源网_人教版三年级英语下08-29
谢红的发言课件-研学与地理实践力的培养04-07
让自己更自信作文300字07-01
世界现代建筑史 A HISTORY OF MODERN ARCHITECTURE 王受之12-06
2016年春季学期《MATLAB语言及应用》课程试题03-08
律师职业道德学习心得04-07
现场SP配合技巧06-16
Depositional-architecture-of-growth-fault-related-wave-domin04-10
Tegra_Multiprocessor_Architecture_white_paper_Final_v1.105-10
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 实装
- 战网
- 暴雪
- 缘起
- 趣闻
- 隐身
- 登陆
- 代码
- 功能
- 游戏
- 幼小衔接研究文献综述
- 某公司环境管理体系手册参考模版
- 《农村政策法规》试题及答案
- 沈阳军区总医院招聘需求 - 吉林大学就业网
- 剑桥二级入门测试题
- 2013—2014学年度第一期高三生物周测(5)试卷
- 基于链式关联网络的区域创新效率研究_以江苏为研究对象_李邃
- 大学生党团知识竞赛题库
- 云南省普通初中学生成长记录-基本素质发展初一-初三
- SCI论文全攻略之审稿回复实例
- Autodesk设计机械呼吸阀和单级离心泵
- 第5章预应力混凝土
- 高等数学上册课后答案(同济大学第六版)
- 皖维高科CB12MW改造技术方案(初步)
- 曹妃甸油田注水除氧剂BHO_04的研制与国产化_刘振国
- SKK真石涂料应用方案书
- 全新版大学英语综合教程3课后答案.doc
- 急诊科食物中毒突发事件应急预案
- 四年级语文教学质量目标及措施
- 何谓压舱水?【国立成功大学】