在中国大陆,说到“起源”引擎,很多人可能都不了解。但是只要提起求生之路系列,Dota2,CSGO的大名,哪怕是平时对端游接触不多的普通学生也会有所响应。“什么,这些游戏原来是这个引擎做的?”哪怕他们甚至不清楚引擎的概念,也有很大概率会如此说道。
相信不少人曾经经历过或者听说过关于起源引擎的论战,也或多或少接触过一些观点,比如起源引擎廉颇老矣、起源引擎简单易用、起源引擎扩展性高、起源引擎优化良好、起源引擎已经不适合时代了等等。相信也有人会好奇,为什么同是起源引擎的作品,泰坦陨落2的画面会显得和任意一款起源游戏(包括泰坦陨落初代和CSGO)都如此与众不同?
今天,我以一名八年起源开发者的身份,和大家讲述一下这个曾经轰动了业界的游戏引擎。希望大家在看完我的文章后,会对起源引擎有更深的了解。
说到起源引擎,就不得不提起雷神之锤2(Quake 2)。众所周知,半条命所采用的引擎是雷神之锤2所用引擎的魔改版本,亦即是 约翰·卡马克 大神的Quake Engine,在Valve开发半条命的时候,他们采用的,正是经过大量修改和优化的Quake Engine。
V社把他们大量修改过的引擎,命名为Goldsrc(非正式翻译:金源)—这个名字其实很有意思,但是我们这次不打算探究这个名字的起源。
1997年,Valve雇佣了Ben Morris,这位哥们为GoldSrc引擎量身打造了一个简单,易用,功能强大的地图编辑器。这个地图编辑器也为后来起源引擎的“被嫌弃”埋下了属于自己的一份祸根。这个地图编辑器便是WorldCraft,本来只想着用来做雷神之锤地图,随后改名为Valve Hammer Editor,简称Hammer。谁也没有想到,这个名字会在多年之后成为无数起源开发者的噩梦。
之后的事情稽核的诸君应该都很清楚:《半条命》在发布之初轰动了业界,一举拿下无数个年度游戏奖,不久之后,Valve将《半条命》的资料片:《针锋相对》、《蓝色沸点》,还有PS2独占的资料片《衰变(Decay)》全数外包,便全力投入了《半条命2》的开发。
这时Valve意识到他们需要一个新的引擎。于是他们量V社之物力,结引擎之欢心(误),全心全意开发一款新的引擎(官方口径)。实际上,这个所谓的“全新”的引擎,其实严格意义上来说是GoldSrc引擎的改头换面大升级。
...《半条命2》里面还留着雷神之锤的一些早期的代码呢。
...there are still bits of early Quake code in Half-Life 2.
不过早在半条命2发布前,起源引擎是GoldSrc的升级版这点就已经被猜测出来了。并不是说画面落伍,也不是说互动性没有提升,而是在这段时间里,发生了同样是震惊了业界的一件大事:《半条命2》泄露。具体内容大家可以百度一下,我要说的是,这次连fbi都参与了的事件,泄露出去的除了游戏本体之外,还有源代码和全套早期的Source SDK。
在这里需要说点题外话。在泄露版在网络上疯传的时候,俄罗斯一些店铺甚至已经《半条命2》上架了。这些《半条命2》当然不是我们现在玩到的正式版《半条命2》;这些是基于泄露版,用其提供的Source SDK和源代码进行了少许修复,勉强“可玩”的版本罢了。这个版本也称为Anon(阿尼翁)版。在2017年之前,阿尼翁版都算是完成度最高的《半条命2》泄露版。至于《破冰船(Missing Info)》,则是后来的大神根据泄露版的代码和内容基于半条命2第二章的起源2007引擎重构的“复古MOD”了。某些更早期的泄露版,完全就是光影特效加强,连布娃娃效果都不存在的半条命1罢了。
回归正题。起源引擎和金源引擎一脉相承似乎是没跑了,但是不知道是不是因为泄漏事件,《半条命2》发布后Valve公布的Source SDK里面包含的源代码里,存在着很多奇怪的内容。这些内容有的根本不应该存在,有的还各种残缺,2004和2007版本的《半条命2死亡竞赛》的源代码第一次编译甚至还诡异地编译不出来;这些代码里,还残留着很多奇怪的内容,比如喷火效果的定义,居然是在已经被删掉了的喷火枪里(weapon_flaregun.cpp和weapon_flaregun.h),各种npc的代码残缺不全,如果要调出来,甚至会导致游戏崩溃。
再举个例子,npc_missiledefense这个实体根据代码内容,本来应该是用来干扰玩家和npc双方的飞弹,结果无法使用;武器里面其实注册了各种功能,却统统都不能使用;如果玩家要调出一些代码中有游戏里却没有的武器,最终迎接他的十有八九只有崩溃。
“这里有很多代码完全没有意义。我甚至怀疑这些代码是V社的临时工敲的。”
“嘛,V社也就这样..鬼知道他们想的什么。”
这是我们制作组两位起源编程大佬,在讨论编程的时候发表的言论。
起源引擎至今已经延伸出了很多的版本。在此我们一律不把泄露版的半成品起源算入其中。目前已知的版本大概如下:
在《洛奇英雄传》和《求生之路》系列出来的时候,大家一贯把它们用的起源引擎直接称作“起源引擎”。然后不懂事的我当年根据2004年的起源叫Source 2004,2007的叫Source 2007,便根据当时是2012年,把它们称作了起源 2012……这个谬误居然就传开了,FUCK。
纠正一下,《洛奇英雄传》,《CSOL2》使用的其实是经过大量修改的 Alien Swarm Branch,也就是Source 2010(一说结合了2010功能的2007)。值得注意的是,Source Film Maker(起源电影制作器),使用的也是这个引擎,同样继承了有问题的水面反射存,官方为何不换装更新的引擎或者修复水面这两点有点奇怪。
我们团队建立于八年前,那时候我们采用的是起源2004,之后经过了几年,换成了2007,个中痛苦,我现在都还能记得。2004的光照和2007完全不是一个水准,很好奇Valve怎么把半条命2和失落的海岸线还有css这些做的这么自然的..
肯定老了。如果是我,我会选择这么回答。但是看看现在起源引擎的游戏!《CSGO》、《TitanFall》……起源引擎这不还很强劲吗!
请大家先冷静一下,观察一下《泰坦陨落2》的截图,大家会明显发现,这种自然的反光,明显是加持了PBR的(Physically-Based Rendering,基于物理的着色技术),而PBR则应该是当代主流引擎的标配。那么也许会有人问,《泰坦陨落2》不是有吗,这不就意味着其他人都可以做出来嘛?是的,确实有,据我所知,油管上就有两个。
但是我需要岔开一下话题,介绍一下起源的着色器(Shader)。起源引擎的着色器只认HLSL(High-Level Shader Language,高阶着色器语言),而且会用HLSL,你还不一定能给起源写PBR。为什么?因为你还得对起源引擎有很深的了解,没掌握起源编程的人基本也就无法掌握起源着色器的编写,确实存在第三方的Source Shader Editor,但是易用性还是算了吧。
略有了解的人都应该知道,现在市面上主流的引擎,比如虚幻3\4,Unity等等,都是拥有“蓝图”的。大家不需要了解太深..只需要知道这东西能够减少工作量就行。使用这些引擎不仅意味着拥有一个可视化的开发平台,你甚至不需要编程就可以做出属于你自己的作品。而且很多情况下,只要足够用心做出来的东西就不会太差。况且这些主流引擎还有更强大的软实力加持:唾手可得的本地化教程—教程就算了,你还特么是中文的啊!
反观起源,Valve Developer Community可以算是一家独大的教程汇总了。我甚至可以很自信地说出这么一句话:全世界起源的官方加上第三方教程,都没有一个Unity国内的中文同人教程多。
更惨的是,起源引擎是半工具半代码的。我举个例子,在使用Unity或者虚幻4的情况下,你想增加一把武器,通过很简单的操作就可以加一把枪。但是在起源呢?
首先,你得下载老版本的Visual Studio;然后,你得摸清楚起源游戏的运作套路;最终,通过敲代码来完成添加武器。精通C++只是个起步,如果你不花时间吃透起源编程,想不靠编程就实现某些功能,只会是举步维艰。
附:起源引擎版本不同需要的Visual Studio版本(左为引擎版本,2006与2009这两个不算在内),如果用非规定的VisualStudio版本来进行修改,那就准备好吃苦吧。
《泰坦陨落的最后时刻》这部电子书大家可以在网上找到,B站曾经也有对于泰坦陨落制作过程的访谈,但是现在找不到了。这部电子书和那个消失的视频里面都有提到,Respawn Entertainment之所以选择了起源引擎,是因为看中了它的“易用性,扩展性,可行性”,但是一般的开发者哪有这些iw遗老的高度,对他们而言,起源更像是灾难。
讲完了编程遇到的问题,我们来探讨一下地图制作。之前我讲到过Hammer的诞生,它在1997年绝对是空前绝后的,也绝对简单易用。但是在今天主流引擎世界编辑器的对比下却是如此原始。
在《史丹利的寓言》的主创功成名就后独立完成的《新手指南》中,Davey(旁白,也就是作者)对于他的挚友使用起源引擎开发游戏,做过如下的评论:
......Coda使用的是一个名叫Source的引擎。这个引擎擅长渲染平直的走廊,所以Coda的游戏里大量充斥着平直的设计和空旷的环境。
这算是委婉的说法了。说得难听点,其他引擎的地图编辑是创作,起源地图的制作是堆积木。也许有人会问,CSGO的世界就充满了各种多边形啊?Dota2用的Hammer就很先进啊?Ytb上面流出来的Source 2 Hammer也很像现在的主流引擎用的地图编辑器啊?
但是一般的开发者或者爱好者能搞到起源2吗?起源2现在看来还遥遥无期呢;CSGO的世界充满了水准极高的模型-高到什么程度呢?Valve甚至能把普通的Phong反射做到以假乱真,这哪里是一般的开发者能达到的水平?
大家大可认真观察我上面发的Hammer视图。也许尝试过主流游戏引擎的人能发现一个问题,虽然看起来可能没这么严重,但是这个问题实践中会化为巨大的绊脚石,甚至是时间黑洞,那就是——没有实时预览。如果Hammer自带的那个简陋还问题繁多的光照预览能算作实时预览的话,那么实际画面就可以叫做地球ol了。这个问题带来的严重后果就是,你永远不知道你做出来的东西是怎么样的,除非你真正进入游戏。
但是起源的地图是需要编译才能游玩的,而这个过程又需要耗费大量时间和资源。我们可以想象一个萌新,兴致勃勃地完成了他的地图,然后他点下F9,选择了编译模式后,开始编译他的心血。本来保持一个人自信的秘诀应该是让他看到自己的成功,即便没那么好,也能看着自己的作品一步步变好,最终趋于完善。
然而在等待的过程中,他的热情可能就被消磨掉。更不用说编译的这半个小时这位萌新经过看各种视频、打上一局游戏的消遣,进入游戏里,看到光影大崩坏的时候是什么心情了,大概就是“我三个小时的心血,又等了半个小时,你特么就给我这个?”的意思。
对了,忘了说了,起源的脚本和代码修改也是一样。比如说,我们在制作的时候,发现hud出了问题,但是不知道问题出在哪儿,就得重复这么一个流程:编译dll-覆盖-进入游戏-等待-进入测试地图-检查-关闭游戏-编译dll,直到一切都好为止。
恶劣的生态圈与开发者的困境:马儿不吃草,当然没法跑
一个引擎的成与败,我个人以为更重要的应该是生态圈。一个良好的生态圈,首先得有两个先决条件:一是物,二是人。
我们先从物开始。我可以断言起源绝对不可能会面临《盗墓笔记》页游那样用虚假素材做宣传的问题,即便是抛却人气不谈。
为什么?因为《盗墓笔记》官方可以从虚幻商店买,而起源呢?想买都买不到啊。想要场景?乖乖去堆积木吧。
首先,起源不存在像虚幻商场、Unity素材库这样成型的、通用的素材中心和繁多的素材网;其次,起源的素材并不如大多数人所理解那样,CSGO,半条命系列,传送门,求生之路都是现成的素材库。
东欧风格的红砖墙是你想用就能用的?!
——小组一名地图师的感慨
起源的模型存在着不兼容的情况。远了不说起源2013和2007的模型不少就不通用,近了讲本应是起源素材库的SFM-那可是2010-都问题多多。然后官方虽然默许使用官方游戏的素材,但是起源素材库的半条命2和传送门这些-东欧和未来风格的贴图,哪里能满足开发者啊!如果我想做现代中国的街道,用上这些素材只会各种违和。
谈完了物,我们再来谈谈人。我认为,一个良好的引擎生态圈就应该如马克思老爷子所言,最根本还是依托于人本身。没有庞大的用户基数,就没有充足的第三方贡献者;而第三方贡献者的衰竭,势必造成引擎吸引力的流失。
每个人每件事都有曾经年轻的时候,起源也是,但是它的辉煌是在半条命2发布的2004年到半条命2第二章发布的2007年,最乐观地估计,也是十年以前了。十年意味着什么?意味着曾经那批经验丰富的开发者,地图师们,早已成家立业,不会再是想碰这么一个过气的引擎;他们可能曾经也和我们一样是十几岁的年纪,但是十年弹指一挥间,他们早已跨过了二十的坎,早已拥有了自己更应该为之奋斗的直接的人生目标,甚至可能早已放弃了十年前那片自己努力耕耘过的荒土。
好吧,我承认大神年年有,奇人遍地出,那么,现在还在起源界深耕的大神有吗?有的。
我在上文提到过,有两个第三方开发者也实现了PBR。很多人都说过,为什么起源会给人一种看画风知引擎的感觉?根据知乎一位用户的回答,“起源的画面都有共同的特点就是素”,没错,起源的着色器能渲染的深度很低,并且起源引擎开发的游戏(包括泰坦陨落初代和csgo)几乎就没有太多的后期处理。而像PBR这样的突破,理应是能够让起源在画质上比肩虚幻和Unity的利器,理应为众多起源拥趸和开发者所期待,所欢欣。
但是并没有。为什么?我来给大家讲一个故事。虽然我无法100%确认这个故事的真实性,但是作为在moddb混迹了5年的起源开发者,我对我的信息来源还是有信心的。
一个致力于复兴起源,登载各种起源教程的叫做SourceModding的社区找到这位大神,请求他把PBR的源码或者教程公布出来,帮助想给自己的项目带来突破的人,也帮助起源振兴。但是那位大神并没有拒绝:他直接无视了SourceModding的请求,甚至没给人家一个答复,而SourceModding的联络人,就差跪下来了吧。
最终这件事情无疾而终。同样的还有另外一个实现了PBR的起源开发者,他们最终都没有把他们的成果公诸于世,另外一个则只把他的pbr交给了Cinematic Mod的作者。SourceModding最终不温不火并且几次面临关停的危机,这也许隐隐的意味着什么吧。
他们抱着这些成果而又不公布是想抬价吗?不是,他们甚至都没想通过这些东西来盈利。出于个人的不满,我只能认为,这些人只是享受别人跪倒在他们脚下的感觉。
更惨的是,现阶段世界范围内的起源大神里这种人占据了大多数。甚至在油管一些视频的评论区里能见到这样的回复:
uploading another video without sharing anything.
似乎不少人都已经对这些炫耀成果的大神们司空见惯了。而放眼Unity和虚幻这边,第三方分享的、可以简单就植入的插件(例如Unity的SSAO)比比皆是;而看回来,像Moddb上面那位愿意公开分享SSAO做法的起源游戏 Crossroads Episode I 那样的开发者,却显得日益稀少。而最具有分量的实时光照,可以移植的一个重大成果,一个名为 Deferred Lighting的可以提供实时光照、体积光的带有源码的模组(这就意味着可以移植),则是五年前的事情了。 对于那两位实现了PBR却不分享的“大神”,他们的成果,分享与否,是他们的自由,我们无权干涉。但是无可否认,这种做法对于起源生态圈来说,绝对是百害而无一利。
我知道我这种言论是站在道德制高点上批判当事人,但我偏要。我也是普通人,我同样是起源开发者,我同样有七情六欲,为什么我就应该克制克制再克制,为什么我不能发出属于我自己的声音?我欢迎一切批评,我可以接受批判,但是我内心的想法,我必须说出来。
本就孱弱的起源界,被官方的不作为(上个世纪的地图编辑器用到现在什么大改动没有还要堆积木算不算不作为?免编程工业化开发普及了的今天还逼开发者不得不敲代码算不算不作为?)和第三方的疲弱与内因所累,在现阶段以及可预见的未来,我不是个悲观的人,但是我必须承认我看不到未来。
我只能眼睁睁地看着这个我耕耘了八年的引擎日渐衰微。CSGO只能带来Mapper,贴图制作者和玩家,但是带不来愿意深耕这个引擎的开发者;Dota2可以带来无数的观众和职业选手,但是带不来愿意为了这个引擎而再付出八年努力的制作人。
八年前,当我还是个小学生的时候,当我第一次在gmod吧豪言壮语地宣布“我要做一个半条命2中美大战的mod”,并且成立我的制作组时,我绝对想不到我能走得这么远;四年前,当我被小组驱逐出去时,我不知道我的起源之路是否已经结束;现在,在三年前回到了小组的我,回过头去,却徒然留下了感伤;抬起头来,看向前方,才发现前路是如此的黑暗。
在这里我要带点私心谈谈我的小组和我们的项目。作为主制作、小组创始人和现任副组长,八年岁月,曾经嘲讽过我们的、赞扬过我们的,早已随风而去,不见踪影。贴吧依旧,我们已在国外立足,但是国内曾经关注我们的人却早已不再。
我不愿意回想这八年里我是怎么坚持过来的。很多人走了,很多人来,铁打的小组,流水的成员。在现在这个随便做个游戏发到b站就扬言要上Steam大卖几万份的人俯拾即是的时代,我们这批凭着爱好聚在一起、花了八年,而且还会更多,只为了一个完全免费的《红色安魂曲:解放》的小组成员,显得如此的愚蠢。
我们的努力不求经济上的回报,我们只想做好,无愧于家人与朋友,无愧于关注我们的人,这就够了。这可能也是现在起源界最需要的“蠢蛋精神”吧。
最后以我们的一部宣传片作结,继续回过头去,看着我们这八年来的积淀,看看身旁,这些使用着Unity和虚幻4甚至是CryEngine的人们,只要他们愿意,只需要一年甚至几个月就可以达到我们现在的高度。
我高考前两个月,发生了一支英国小组和另一支小组偷我们的截图用以骗取众筹的事情,这以后我们决定减少对外宣传,直至一个月前,我们都变得杳无音信。在这段时间里,我曾经把截图展示过给别人看,评价大多类似:“看起来故事不错,但是这画面啊,也就是十年前的水平。如果你换成虚幻4啊,可能就不是这样了。”我早已接受这个事实,并且能一笑而过。我还能怎么样呢?
评论区
共 150 条评论热门最新