他曾是《仙剑3》主程,钻研17年终成游戏引擎技术专家
房燕良
3D游戏引擎技术专家
从2000年毕业,加入游戏行业,房燕良经历了这个行业的几起几落,也经历了一些事情。从一个极为天真的程序员,磨练了17年,变成了今天这个比较天真的程序员,一个只会变老不会长大的程序员。热爱学习,热爱编程,依然热爱游戏开发。
GAD:谈谈您是如何选择进入游戏行业的吧?
房燕良:我上中学的时候,就一直很向往计算机技术,那时候电脑可是很稀罕的玩意儿。不过,后来高中的时候,学校开设了BASIC编程,学的我兴趣索然,对编程一点儿兴趣都没有了。后来,家里有了一台PC机之后,偶尔发现BASIC还能绘图,才又产生了兴趣。同时也接触到了PC游戏,当时玩《大航海时代》《大富翁2》《DOOM》非常痴迷,好在我是一个好奇心很重的孩子,并不是单纯的玩,而是很想知道它们的内部构造,后来就开始学习汇编、C语言,到上大学的时候,我已经能够做简单的RPG DEMO了。卡·马克的故事很大程度上激励了我,每个孩子心里都有一个英雄,我也一直梦想能开发出自己的游戏。2000年毕业的时候,费了很大力气寻找游戏开发的工作机会,那时候游戏公司很少,最终来到了智冠在上地的海豚蜂工作室实习,算是迈出了第一步。后来,又有机会跟随我的另一位偶像姚壮宪一起开发游戏,算是正式进入了游戏行业。
GAD:出道17年,您有哪些作品?给大家秀一秀成果吧!
房燕良:很多朋友是因为《仙剑奇侠传三》知道我,那是我2001到2003年期间作为主程序开发的PC单机游戏;后来,又开发了端游《功夫世界》,虽然不是很有名的游戏,但是在我心目中占有很重要的地位,算是我第一次技术的高峰期。从引擎底层开始开发,直到把产品推上线,其中经历了不少的磨难。又做引擎又做产品真的挺难的,曾经一度信心都快崩溃了,是当时的团队,几个人一起摸爬滚打,最终坚持了过来,至今我们还都是非常好的朋友。《功夫世界》的开发也后面的《龙online》打下了基础,《龙online》在2009年取得了不错的成绩,算是当年最火的3个端游之一(另外两个是《成吉思汗》和《蜀门》)。再到后来,我参与了虚幻3端游项目《神兵传奇》,这个项目使得我技术上收获很大,但是产品本身并不成功。
在这之后,可以说我就进入了低谷,后面尝试转型做制作人,带了一个端游项目,最终失败了。这次失败给我的打击非常大,很长时间找不到方向,在迷茫和徘徊中,又错过了移动时代。可以说很惭愧,进几年都没有成功的作品。不过,经过这2年的反思,我已经成功“渡劫”,过去的失败算是我在不同方向上的试错,成本很高,但是收获也很大。我还在积累能量,希望将来有一天,可以实现自己的梦想。:)
GAD:您是如何与《仙剑奇侠传》结缘的?
房燕良:2001年的时候,我加入北京软星,当时姚仙刚刚来大陆创办软星科技1年时间,张毅君刚刚在上海成立了上海软星。我当时刚刚玩过了《轩辕剑3》,而《轩辕剑3》的主程黄志荣是在上海软星的,我挺想能和他多学些东西的,有一次就和姚仙说:如果上海软星缺人,我可以过去,就这样,我转岗到了上海软星。当时并不知道是做《仙剑奇侠传3》这个项目,他们的保密工作做得很好,所以也真的算是缘分吧。:)
GAD:谈谈《仙剑奇侠传3》这个项目的开发过程?
房燕良:前面说到,我是奔着向黄志荣学习而来到上海软星的,可是到上海软星不久,黄志荣跟我说他要回台湾了,并且要推荐我来担任《仙剑3》项目的主程。我一直清晰的记得和他的一次谈话,我问他是不是做了很多年游戏才做出《轩辕剑3》这样好的作品,他说不是,《轩辕剑3》是他的第一个游戏;我问他回台湾是否还是继续做游戏,他说不是,他要转行做商业软件,《轩辕剑3》也是他最后一个游戏。当时我心情非常沉重,一句话一直回响在我心里:他这样杰出的一个游戏开发者,只有一个作品,而我又能有几次机会开发自己的游戏呢?黄志荣走之后,我给了自己很大的压力,我觉得我高考的时候都不曾这么努力过。半年之后第一版DEMO获得了总公司一致好评。到项目后期不断加班,但是很开心,相信很多人也有类似的体验。项目最终完成了,发售了,销量还不错,但其实我很失落,因为遗憾太多,如果再多一点时间,我们完全可以做的更好。《仙剑3》是一个比较讲求商业化运作,控制成本、周期比较严格的项目。
GAD:听说您后来开发了端游游戏引擎?
房燕良:在前2、3年的工作期间,业余时间基本都用来学习,到后来开发端游的时候,可以说是我的第一次技术爆发期。当时大概用了半年的时间,非常高效的开发了一套自研的3D端游引擎,当然只是初步成型,后来在项目中又不断的改进、优化,经历了3年左右的时间。在《龙Online》项目之后,那套引擎的代码泄漏,很多人从网上下载了那套代码,还有一些公司在那基础之上开发了自己的产品。在网上遇到不少朋友,说是学习那套代码入门的。后来,在我研究了虚幻3引擎之后,又重新构造了这套引擎,目前还有公司在使用这套引擎进行商业开发。
GAD:你如何看待Unity3D和虚幻这两款引擎?
房燕良:Unity3D和Unreal都是顶尖的引擎。Unity3D的API设计的非常好,它采用了纯的组件结构,API统一度设计的非常好,这也是它易学的一个原因;另外,Unity3D开启了引擎工具化的时代,大大降低了游戏开发的门槛,这是具有划时代意义的,但是也造成很多Unity程序员不求甚解,沦为搬砖工人。
作为一个老牌的商业引擎,Unreal错过了移动时代这个大机会,实在可惜,但它在技术上仍然不失为顶尖引擎。EPIC的特点是,他们开发引擎也开发游戏,所以,Unreal引擎中融入了很多EPIC对于游戏开发的理解和游戏开发方法的创新。例如蓝图,在Unreal Engine 4中,它试图通过蓝图,打通所有游戏内容开发环节,这对于以体验为核心的游戏产品开发是非常有意义的,因为设计师可以亲手去制作、调整自己创意出来的内容,而不用再假手与程序员。当然,还有其他很多,这些是非常值得我们学习的。
GAD:什么时候开始接触虚幻引擎技术的?
房燕良:大概是在2008年,在开发《神兵传奇》项目的时候,开始接触虚幻3。因为我从入行开始,一直开发自研引擎,虽然也会看一些国外的开源项目例如OGRE,但一直非常好奇,不知道国际一线大厂的技术是怎样的,不知道自己跟他们的差距到底有多大。有机会接触虚幻3,真的让我大开眼界,同时也不再妄自菲薄。
使用虚幻3开发了一个MMORPG项目,同时我也花了大量的时间通读了整个引擎的源代码,技术上收获很大。特别是虚幻3的AnimTree动画系统,回想起当时的震撼,仿佛就在昨天。另外还有对于游戏开发的方法、思想上,也有很大的收获。
当时除了学习引擎代码,还需要看EPIC官方的项目代码,学习他们是如何使用引擎的,当时重点看了《战争机器》的代码,看到其中有几个类的名字就是角色的名字,而且每个类都有很多代码,对我的游戏开发思想产生了一个扭转。中国人讲求”道可道,非常道“,喜欢追求宇宙万物运行之道,反应到程序员身上,我们从来不喜欢写一个”摧毁地球“这种代码,而是喜欢写一个”摧毁行星“的功能,把地球当做参数,也就是说我们喜欢写一些更”通用“的功能,不大愿意做那些“只用一次”的功能;而我在《战争机器》中看到大量的代码只为刻画一个角色,让我理解了《战争机器》中的每个角色为什么那样鲜活、那样生动、那样充满个性。要创造出好的游戏内容,就需要在内容上下大力气,而不能一味的程序员思维。
GAD:您是怎么想到录制一系列的虚幻引擎的视频教程的?
房燕良:虚幻引擎一直是我很关注的一个技术方向,大概2014年吧,虚幻4推出了订阅模式,才19美元一个月,简直是”昔日王谢堂前燕,飞入寻常百姓家“,忙不迭的订阅、下载,抽业余时间学习。后来,2015年有完全免费开源,我感觉虚幻引擎是非常有价值的,特别是开源之后,使得我们有机会深入学习它。
虚幻引擎的学习曲线比较陡峭,当年我学习虚幻3的时候也是经过EPIC的培训才入门的。虽然在虚幻4中已经有了非常大的改善,但是还是使很多人望而生畏。我觉得,只因为一个小小的门槛,就错过了这样一套国际顶级的引擎技术,实在可惜,所以就产生了一个想法:把自己学习虚幻4引擎的一些经验总结出来,希望能帮助更多的能够接触、学习它。这些教程受欢迎的程度大大超出了我的预期。
视频教学作品:《Unreal Engine 4开发快速入门》
(点击阅读原文,可获取视频网址)
GAD:引擎技术老兵,给新人有什么建议?
房燕良:从业这么多年,我带过不少新人。我一个主要建议是:建立自己的知识体系。为了很好的完成我们的工作,我们需要一个健全的知识体系。项目所需的知识、技能,往往只是冰山一角,这些都很重要,但是还不够。特别是在这个技术迭代更新非常迅速的时代,如果没有一个坚实的基础,很快可能就跟不上了。
作为一个游戏程序员,需要一个包括计算机体系结构、操作系统、编程语言,图形学、物理模拟、AI等方面的基础知识体系。虽然现在Unity3D已经将游戏引擎引领到了工具化时代,但我一直坚持这个观点,也许有点老套,但我个人从中确实获益匪浅。回顾我自己工作、学习的历程,基本上前2年是突飞猛进,因为要学的东西太多了。后来,我就确立了“建立自己的知识工程系”这个方法,使得我在工作到5年的时候,可以总结前面所学,开发完整的端游引擎和产品。到我工作超过10年的之后,我非常注重知识的更新。现
在技术更新换代确实很快,但是更新的往往是上层的技术,而底层的技术、算法实际上发展还是缓慢的。我记得看过某个老外名人讲的一句话:我们的父辈背着纸带去上班,我们现在兜里可以装一个几十G的U盘,而我们却没有创造出比父辈更辉煌的成就。我想说的是,如果你的基础很扎实的话,在你跟进新技术的时候,也可以驾轻就熟。
GAD:您作为行业大牛,为何坚守技术岗位?未来有啥职业规划?
房燕良:首先吧,我感觉自己就是个手艺人啊,亲手做东西的感觉从来都是一种享受。做技术呢,也是因为这个,也是因为喜欢,另外一方面吗,也是为了发挥自己的强项吧。现在分工越来越细,只有发挥自己的强项,才能有优势。现在是一个技术快速发展的时代,有很多东西要学,我也很喜欢学习,所以技术对我来说就是:曲不离口,拳不离手,一直会坚持下去。
未来的规划嘛,首先还是做好现在手头的工作,将来有机会的话,我还是想实现自己的梦想:做一款属于自己的游戏。梦想还是要有的,万一实现了呢。
GAD:当家庭和工作都需要你时,你如何抉择?
房燕良:我刚工作的时候,接受了一个“时间管理”的培训,让我收获匪浅,后来我就一直追求工作效率、提高时间管理的方法,但是面对项目进度的压力,感觉那些真的全都没有半点用啊,哈哈!我曾经一直认为,我是个很爱家的男人,但是暮然回首,我感觉很惭愧,我只是很“恋家”的男人。
我一直想平衡工作和家庭,我也一度认为自己做的不错,但是实际上我完全没有做到,有些事想起来很是很心酸的。记得我刚结婚的时候,正好是《功夫世界》项目难产,所以蜜月也几乎没有怎么陪老婆,而是天天熬夜加班,睡在公司的宿舍里(没有睡地板,也许该知足了)。后来家里买房子,装修这些大事,好像每次都碰到了我项目开发的“关键时刻”,基本都是我爱人独立支撑的。所以,在家庭和工作之间,我相信我和大多数人一样,都是想优先家庭的,但是我们都没有做到。
GAD:工作之外,空闲的时间都是如何安排的?
房燕良:我觉得自己是个典型的技术宅。业余时间,大部分都用来学习了,很多时候是学习新技术,经常也要动手实践。有了小孩之后,前几年基本也没怎么陪她,挺遗憾的。经过老婆大人的不断教育,终于意识到这个问题,哈哈。现在平时还是要注意学习,不过,现在也会看一些非技术类的书籍。每年寒暑假,也要抽时间陪老婆、孩子、父母旅游度假一下。现在女儿上小学,我也会抽空辅导她的数学和英语,我爱人负责她的语文。现在回想起来,前些年“学习焦虑症”有点太严重了。:)
今日推荐
添加小编微信,可享双重福利
1.加入GAD程序猿交流基地
获取行业干货资讯,观看大牛分享直播
2.领取60G独家程序资料库,地址在小编朋友圈
包括腾讯内部分享、文章教程、视频教程等全套资料
↓长按添加小编GAD苏苏↓