网易冯云在冯云
2001四月初的一天,冯云从床边厚厚的一堆历史和哲学书籍中又选了一本,津津有味地读了起来。这样的生活已经持续了一段时间。虽然他大学毕业后曾去北京旅游,但他仍然觉得在武汉的家乡更舒服,尽管他更喜欢休闲生活。
电话铃响了,是丁磊从广州打来的。原来,早在大学时就编写了图形引擎冯魂。这个引擎很多公司都在用,天下就是其中之一。这家很早就进入网游开发领域的公司,最近被网易收购,正在开发一款网游《大话西游》。在开发过程中,我觉得风魂的某些模块需要扩展,于是我找到了冯云。起初,冯云在家做一些兼职,但后来,对方认为异地合作很麻烦,所以他希望冯云能去广州。冯云不同意,现在网易的“老板”亲自出动了。
经过半个小时的长谈,冯云动摇了。让冯云没想到的是,第二天,丁磊就派人把去广州的飞机票送到了他家。抱着看一看无妨的想法,冯云来到了广州。
当我第一次去的时候,冯云的主要工作是维护原来的引擎。不过,当时《大话西游I》的发展已经到了后期。因为很多人都是第一次玩游戏,所以项目比较混乱。最后,在连续几天加班,工作了六七十个小时后,冯云也未能幸免,到处充当消防员。
西游我不成功,再加上当时网易股价低迷,很多员工选择了离职。游戏的系统架构也有很多问题,连主程序员都觉得维护起来很麻烦。冯云建议重做,但大多数人认为工作量太大,浪费资源。
冯云在为《大话西游I》收费后没有太多具体工作,就跑回家按照自己的想法重写了客户端的核心架构。新系统明确划分了对象层,加强了对对象的管理,包括内部消息的传递。整个系统架构更清晰,模块间耦合更小。整个系统没有使用任何类库,数据结构也是由冯云自己实现的。
一个月左右,样机出来了。看到冯云的原型,丁磊下定决心再做一次西游,把原来技术部的优秀程序员都请进来了。后来,他们还使用了第三方LUA脚本,将网络层和接口层的处理分开,更容易扩展,这样程序员就不需要做很多细致的工作了。
新版完成后,冯云也很累,所以他请了两个月的假去旅行。当时新大话西游二推出,大受欢迎,大家都很期待。
冯云的职责主要是做R & amp;d、向其他程序员提出实现方案,并提供代码的框架和底层。他喜欢尝试新技术,写升级程序时从不复制任何原代码。2002年,学院派流行仿制药的思想和模板。冯云也做了大量的研究,通读了STL的源代码,给他留下了深刻的印象。根据这个想法,冯云重写了图形引擎,砍掉了很多不必要的内容,让它刚好够用。冯云说:“我现在不提倡代码复用,因为游戏不是特别大的项目,只要有非常基础的代码就行。我之前做过一整套UI系统,底层代码写了一两万行。但是有个朋友告诉我,日本有一套游戏开发的UI代码,10年没换过,而且只需要1000行代码,只包括最简单的对话框和按钮。我同意这一点。我觉得网游最重要的是稳定性。确保稳定性的一个解决方案是简单,其次是一定的可扩展性。”在这一思想的指导下,冯云重新研制了一种发动机。
新引擎不仅简化了图形,还增加了很多功能,方便二次开发。比如用汇编写的协同多线程模块,完全独立于OS,每个线程的工作可以由开发者自己指定,每个线程的开销很小。每个活动对象都由自己的线程控制,方便开发者思考问题,真正做到了每个对象逻辑的分离。而且它还有其他的好处,就是当你在汇编级看程序的运行时,指令的顺序会变得相对混乱,这会让做插件的人非常头疼。
《奥德赛2》成功后,丁磊准备拍一部漫画版的《奥德赛》。几个被招募的同事看到冯云的新技术后,建议不如用这个新引擎做一套新游戏,于是梦幻西游诞生了。现在正在推广,反响很好。
冯云过去喜欢玩电脑游戏,但现在他很富有。他更喜欢玩Xbox、PS2和GBA等游戏,认为上面的游戏更好玩。看来冯云在未来创造新梦想的空间还很大。