网易首页 > 网易科技 > 科技专栏 > 正文

那些日子(十一)大话西游2.0版

0
分享至

作者:云风 点击查看全部

大话西游》一边运营着,大家改着 bug ;另一边,2.0 版开始筹备了。

还记得深秋的那个夜里,已经很晚了。丁磊一通电话问我睡了没有,没睡的话去淘金路上一间小茶馆喝茶。聊天不去酒吧,不符合老丁的风格嘛。我依着短信上的提示,找到了那家别致的小店。包间里就两个人,丁磊和 dingdang 。dingdang 从不泡酒吧,他不喜欢喝酒,这我是知道的。

后来聊了什么完全不记得,我只是知道,以后的工作由 dingdang 来主持了。这次长谈,颇有些战事不利、临阵易帅的味道。

之后,渐渐的,micro 没有什么事情可以做了。几年前,他就在办移民加拿大的事情,需要定期坐移民监。没多久,micro 回了加拿大。dingdang 坐进了那间办公室。不过他的笔记本通常放在外面的老地方,我们还是很晚一起回家。

dingdang 工作很勤奋,也依旧在工作间隙褒着电话粥。桌子上放着 Nokia 5110 的手机,很古老的型号,上大学时我用过。打久了电池很热,但想必没有心里头热。第二年的某一天,有人提醒我看看对面 dingdang 敲键盘的手,赫然多了一枚戒指。

没有见他请婚假,没有通知同事,没有办酒席,没有度蜜月。只是接下来一个周末,我在家附近的世贸楼下吃面条。丁磊的女朋友瞅见了我,给我打了个电话,说他们正在楼上日本料理呢。我打包了面条上楼。只见四人两对,相谈正欢。那天我认识了 dingdang 的妻子。从谈吐中就能识得,真是天造地设的一对。

dingdang 上任后,寻了三个人来。一个是他的堂弟詹东,据说时下在北京网易工作,也是写程序的。另两个从 36 楼挑选的两名程序员,都是网易技术部最优秀的程序员之一。kyo 和 ruiheng 。

kyo 和我同届,暨南大学学物理的,未毕业便在网易兼职,做公司最早的产品:邮件系统;ruiheng 高我一届,华南理工计算机科班毕业,稍晚一些入职网易,他早期的产品对网易也颇为重要:网易社区论坛。此二人,完成大话二之后,kyo 转去做天下的主程;ruiheng 则任技术部经理。

我们四人开始重新制作大话西游的新版 client ,谓之曰:2.0 ,项目代号 xy2 。


在 ruiheng 的推动下,我们从 vss 移到 cvs 下工作,不久之后又转到 svn 。这次,我们每人每天都要求 update 到最新的 client 代码,保持和主干同步。

服务器那边听说也在重构,我不清楚是否犹如 client 这样彻底。但新的版本是由 dingdang 和 ten 一起主持的,并加入了新的人员,比如陈(亻刍)。大话的服务器开发历程我不了解,不便多说,暂且搁在这里好了。

继续谈新版的 Client 。

UI 模块的问题,我已经在最后那两个月完全解决了。UI 的底层是个非常繁杂的东西,要求设计人有足够多的经验才能把接口设计的好。做了这么些年软件,我觉得最复杂的东西莫过于此了。稍有不甚,就会把接口弄的污秽不堪。就连 Windows 的最为出色的界面系统,不也是发展了 20 多年才成现在这个样子,依旧被开发人员所诟病。虽然那个时候,我的想法也不成熟,可也经过一年多的思考沉淀,比大话一立项初期有把握的多了。

这次是由詹东取代古越的位置做逻辑那块东西,我依然写底层。只是这次范围更广一些,不仅要实现图象和声音这些的基本驱动(其实在大话一里已经很稳定了,延续下来用即可),还要负责 UI ,以及游戏中的逻辑对象的管理,消息分发等。

大家不约而同的想法是,新版的 client 一定要嵌入一个脚本语言,以应付连绵不绝的后期需求变化,以及用于描述多变的界面。

我首先想到的是自己实现一个解释型 C 语言,这个在北京时就着手做过。但是考虑到时间不允许,也就放弃了。当时也想过使用 CH 一个解释型的 C ,大家觉得不够好,作罢。

甚至我考虑过 java ,但网上尚没有成熟开源的 java VM ,我甚至想自己实现一个。这个想法来至于前几年一个叫做《吸血鬼》的 3d 游戏,如果你解开它的数据包,就会发现大量的 java class 文件。

还有 javascript ,因为被 IE 的事情弄出些恐惧症来,大家也不支持。

kyo 给我推荐了 python ,说是跟 java 齐名的语言。还有 ruby 等等。那时我们对这些日后名声大振的动态语言,都没有什么特别的感觉。一视同仁的去评估。因为嵌入式脚本,在国内同行中没有什么先例可供参考(早期大多数开发团队都是自己开发脚本语言),只能是靠自己的感觉来办。

最后大家一起看中了最为小巧易于嵌入的 lua 。网上比较多 lua 的相关工具,不过是针对 lua 3.2 的,当时 lua 4.0 发布不久,我们最终决定选用最新的版本,不去理会配套的第三方工具。

詹东开始研究 lua 的 C API ,以及怎样嵌入,这个工作很顺利,得益于 lua 的简洁。kyo 琢磨如何把 lua 和我写的底层桥接起来。当他最终用纯粹的 lua 代码驱动起第一个游戏内的界面对话框,我们都很高兴。ruiheng 则作力于 lua 的控制台调试器,他是 unix 背景的程序员,做出来的那个东西更像 gdb ,挺好用。哦,我做了个控制台的模块,支持彩色的信息输出。前一版的惨痛经历告诉我,一定要有一个好用的调试控制台。

说起 bug ,《大话西游一》的教训是非常惨痛的。最让我心痛的是,明明知道 bug 在那里,就是不知道该怎么改。往往改动一处,会引发新的问题。我想找到一种方法可以杜绝这种现象。所以在新版本里,引入了一种新的机制来解决。那就是给引擎加入录象功能。

所谓录象,就是让引擎记录下所有输入的消息以及发生的时刻。由于游戏 client 可以严格按帧来区分时序,时刻即帧序。所谓输入,无外乎网络包输入和键盘鼠标输入。这些只需要按次序写入记录文件即可。当有了这些数据,就可以无限制的回放给引擎。每次操作 client 玩上一段时间的游戏,只产生极少量的输入消息,而回放即可再现第一次游戏时的种种(甚至可以加快速度播放,只需要关闭和逻辑无关的显示模块即可)。这个功能是纯粹实在在引擎底层的,更上层建筑无关,顾而能为开发人员方便的使用。

如果不懂技术的读者看到这里还不明白,请联想暴雪游戏中的对战录象,星际和魔兽都支持的。

ps. 这一点是我以后做项目必须要求的基础设施。不支持录象功能的引擎是不合格的。我曾几次三番的要求服务器也加入录象功能(这比 client 更简单)但都没能如愿,直到我自己开发服务器。也有 3d 项目抱怨 3d engine 的复杂度而不能加入录象,其实没有什么道理。录象仅仅是记录操作,能不能加进去只跟 engine 处理外部输入的设计有关,跟图象呈现方式没有联系。

简单表述录象对调试的重要性,可以这样来解说。

即使我们拥有交互式单步跟踪的调试手段,当错误发生时,我们也只能向后运行程序,观察计算机内部的状态变化。而对之前发生的事情,仅仅只得一个内存快照而已。这是静态的信息,而变化的过程已经丢失。当然,内存快照已然非常有价值。比如在 unix 系统上,一个进程挂掉,可以生成一个内存快照文件,被称之为 core dump 。gdb 这种调试工具则可以分析 core dump ,还原当时的现场,程序员可以根据现场情况进行分析。

录象的威力则更进一步,不仅可以轻易拿到错误现场的快照(只需要重新回放一次),还可以让时光倒流,让你看到之前发生了什么。因为只要设计合理,每次回放,内存里任何一个对象的地址空间都不会有变化。如果我们拿不准出错时的问题是由什么前导因素造成,只需要重新回放一次在更早的时机中断下来观察即可。

有了这么一样利器,我们遇到的每个 bug 几乎都可以在当天找到根源,并修正。当 bug 是单个的出现,并迅速一个个的解决时。比同时面临多个 bug 要轻松的多。每次解决问题也都是从根源入手,而不是简单的使用 walk around 的方案。每解决一个 bug 当然不会引发新的问题了。

大话西游 2.0 的 client 非常稳定,以知的 bug 都已排除。那些日子,每天下班时我都可以这样骄傲的宣布。


那几个月,工作有条不紊,大家意气风发。我们甚至每天可以乘坐公交车回家。kyo 没结婚前住的很远,和我有一小段同路,当他转车赶上末班地铁,基本上我已到家。而他的归途一半都没走完呢。我们不再需要加班到太晚。

詹东常住北京,只是需要交流的时候才来广州住几天。大家分工明确,甚至不需要每天在一起写程序。(我想,异地合作也是我们抛弃 vss 的一大原因)所以,初期的设计比后期的实现更为重要。设计的好了,甚至缺少沟通都能把项目做好,反之,再多人再好的沟通也没有用。

甚至我都在想,这不三个月就把活干完了吗?赶快把大话换下来吧。但是 dingdang 说,不急,还不到时候。


渐渐的,开始有旧人陆续离开,先是古越接着 micro 而去,然后是果子。

古越的离开有些无奈,我没有问,因为新的项目已经没有让他参于,我想离开是必然的吧。(后来回头看,他有网易不少股票,公司股价涨到那么高,我想即使从收益上权衡,在网易干的一年也值了。可能让他遗憾的是,没有一起参与大话的起死回生吧)

果子辞职,还是有些舍不得的。他是个挺有想法的人,动手能力也很强。当时说想回家休息一下。等到再来看望我们的时候,手上居然拿着车工教材。我是学机械的,很好奇他怎么干这个起来了。他说他买了个小车床,放在家里做些东西玩。果子是个军事迷,喜欢仿真枪械。当时下载了一张德国二战时期的手枪图纸,在家自己摆弄。那天,他还给我欣赏了他自己车的枪管,很精细,比我的手艺强多了 :D 。

时不时的总能收到一些他的消息,先是说他买了部 polo ,整天大街小巷的乱窜,一天能在市区开 400 公里,堪比出租车司机;而后说是开车时用笔记本不方便,自己设计制作了一个笔记本支架,固定在坐驾里。听起来过的挺开心。

几年后,我介绍大学室友去他和古越一起开的经营短信业务的公司里写程序,果子请我吃过一顿饭,之后就联系不多了。

我不喜欢照相,相片很少。不过找到一张那段日子留下来的。好象是果子买了个摄像头,我拿过去试试拍的一张。纪念一下:

(未完待续)

作者:云风 点击查看全部

相关推荐
热点推荐
杨紫突然官宣,张一山点赞上热搜!网友:恭喜,这一天终于来了!

杨紫突然官宣,张一山点赞上热搜!网友:恭喜,这一天终于来了!

听风听你
2024-05-13 23:02:26
记住,与任何人相处,你越“这样”,别人就越不敢惹你。

记住,与任何人相处,你越“这样”,别人就越不敢惹你。

户外阿崭
2024-05-11 15:38:50
在美国总统拜登宣布对中国加征关税之后,特朗普出来表态了

在美国总统拜登宣布对中国加征关税之后,特朗普出来表态了

杂谈天下式
2024-05-15 07:57:20
有这事?唐斯上半场三犯下场后 戈贝尔曾让李凯尔去防约基奇

有这事?唐斯上半场三犯下场后 戈贝尔曾让李凯尔去防约基奇

直播吧
2024-05-15 14:49:14
香港最强软饭男,靠“淫技”征服女富豪,15年狂赚32亿!结局如何

香港最强软饭男,靠“淫技”征服女富豪,15年狂赚32亿!结局如何

猫眼观史
2023-09-18 18:26:41
吃瓜!我们公司退市后,董事长开心坏了...

吃瓜!我们公司退市后,董事长开心坏了...

金石随笔
2024-05-15 00:34:22
内地网友晒串烧小丑鱼!港人怒斥丧心病狂“像吃了小时候的朋友”

内地网友晒串烧小丑鱼!港人怒斥丧心病狂“像吃了小时候的朋友”

科学发掘
2024-05-15 23:04:57
托纳利:很幸运我没因赌博失去一切;在英超踢球比意甲压力小

托纳利:很幸运我没因赌博失去一切;在英超踢球比意甲压力小

懂球帝
2024-05-15 23:52:15
印尼1号人物表态后! 越南也表态了! 信号很清楚, 南海的事好办了

印尼1号人物表态后! 越南也表态了! 信号很清楚, 南海的事好办了

照亮谈财经
2024-05-15 16:07:37
王婆武汉说媒:30岁肥胖舞蹈女,要求年薪20万体制内或30万体制外

王婆武汉说媒:30岁肥胖舞蹈女,要求年薪20万体制内或30万体制外

沫姐美食记
2024-05-14 18:54:46
婚姻生活中性真的重要吗?网友:废话!不然为啥家暴都不愿意离婚

婚姻生活中性真的重要吗?网友:废话!不然为啥家暴都不愿意离婚

户外阿崭
2024-05-15 05:58:47
李轶楠:辽粤G4付豪解除了封印 他近三场太猛了 辽宁需要这样的他

李轶楠:辽粤G4付豪解除了封印 他近三场太猛了 辽宁需要这样的他

直播吧
2024-05-15 21:46:48
第四艘航母公开征名,福建网友语出惊人遭“围殴”!评论区炸锅

第四艘航母公开征名,福建网友语出惊人遭“围殴”!评论区炸锅

清欢渡语
2024-05-14 21:36:33
怒了!齐麟防守付豪被吹延迟哨5犯,英文爆粗韩国裁判:吹的什么东西

怒了!齐麟防守付豪被吹延迟哨5犯,英文爆粗韩国裁判:吹的什么东西

818体育
2024-05-15 23:05:20
苦难值得歌颂吗?10年前工资3千,10年后工资还3千,物价呢?

苦难值得歌颂吗?10年前工资3千,10年后工资还3千,物价呢?

唯唯安
2024-04-22 22:30:48
太给力了!央视怒批“世袭制”,发出灵魂拷问:问题出在哪?

太给力了!央视怒批“世袭制”,发出灵魂拷问:问题出在哪?

杂谈哥闲谈
2024-04-09 22:15:07
深圳楼市:很多置换群体傻眼了

深圳楼市:很多置换群体傻眼了

楼市诸葛
2024-05-15 07:10:09
刚刚传来一条愤怒的消息,2亿股民请避雷,周三A股会大涨吗?

刚刚传来一条愤怒的消息,2亿股民请避雷,周三A股会大涨吗?

静守时光落日
2024-05-15 06:35:03
成都持刀砍人事件后续!受害人多处刀伤,血流一地,知情人曝内情

成都持刀砍人事件后续!受害人多处刀伤,血流一地,知情人曝内情

阿莱美食汇
2024-05-15 23:40:24
海南第一座悬索桥乐城大桥将于今年6月底实现通车

海南第一座悬索桥乐城大桥将于今年6月底实现通车

新京报
2024-05-15 18:19:12
2024-05-16 02:40:49

科技要闻

蔚来新品牌乐道L60预售价21.99万元起

头条要闻

美方对中国电动汽车等加税 中使馆:强烈不满

头条要闻

美方对中国电动汽车等加税 中使馆:强烈不满

体育要闻

乔丹-贝尔:CBA外援的另一种用法?

娱乐要闻

欧阳娜娜营销才女人设却没拿到学位?

财经要闻

楼市小作文来了,大招马上出?

汽车要闻

无感胜有感 驾驶沃尔沃EX30竟与众不同?

态度原创

数码
教育
房产
时尚
军事航空

数码要闻

讯飞会议耳机Pro 2发布:1399元起 升级viaim AI

教育要闻

TTS新传论文带读:叶赫那拉·英的梗图真的很有意思!

房产要闻

万华“史诗级”交付,给海南楼市上了一课!

从穿搭到生活,恰到好处才高级!

军事要闻

布林肯突访基辅 称美国武器开始运抵乌克兰

无障碍浏览 进入关怀版
×