» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

[求助] 转一篇老文:日本游戏业是否错过了什么?

作者:【A9】scourge

  就在不远的ps2时代,日本厂商还是游戏业霸主,但进入ps3时代之后,无论在软硬件市场,日本人的地位都受到了欧美厂商的严重动摇。俗话说,冰冻三尺非一日之寒,而且这种现象也不可能是有一种原因导致的。很多朋友都谈了自己的看法,也都很有道理。而我想从另一个方面来讨论一下日本人相对于欧美人在游戏软件开发的发展上是否错过了一些重要的东西。

  我认为日本的程序员,就平均水平来看,绝不比欧美的平均水平低。而且日本也有不少伟大的程序员,创作了不少了不起的程序。所以,就智力而言,欧美人比之日本人不占任何优势。但开发一套大型的程序,不是一两个人能够完成的,而是一群人努力工作的结果。当一群人在一起工作时,个人的智力不再是主要因素,制度往往决定了效率和质量,而且,除了制度之外,一些不易察觉的因素往往也会有决定性的影响。那么日本人到底缺少了什么呢?

  首先是《DOOM》!大家可能很奇怪,难道说日本人不善于开发出FPS就导致了今天的衰落?似乎和网上上某些朋友们的论调有些像啊。当然,做不好枪车球确实是一种原因,但我要谈的不是这个。对于欧美游戏界来说DOOM的影响不只是其作为FPS游戏非常好玩,更加在于其开发者将这款游戏开源了!由于DOOM的开发公司IDSoft采用的发售方式以及DOOM所在的PC平台的特殊性,再加上创立IDSoft的年轻人们受到的开源思潮的影响,使他们可以做出这样的决定。这个决定的最直接后果就是,使得当时最先进的游戏软件技术广泛的传播开来,很多从程序员通过阅读这些源码了解到了自己可能一辈子都研究不出来的技术。如果说DOOM还只是一款伪3D游戏的话,那么QUAKE则是当之无愧的真3DFPS了,而且是世界上第一款。IDSoft再次选择了开源,甚至QUAKEII也依然如此。这样做虽然对于IDSoft可能没有任何好处,但是这些随着这些代码的开源,在当时能够用于游戏开发的最先进的软件技术在程序员中广泛的流传开来,使得3D技术得到了极大的推广。很多公司和团体在QUAKE的基础上进行了改进,大家所熟知的HL系列就是由QUAKEII引擎改写的。可以说QUAKE是欧美游戏程序员的启蒙教材,培养了一大批优秀的游戏成员,并衍生出许多优秀的3D游戏引擎,为今后欧美游戏业的崛起打下了坚实的技术基础。

  而日本呢,各大游戏公司相互独立,对于技术都采取了严格的保密措施。从该公司的角度来说这无疑是明智的,但是就整个游戏产业而言,这无助于提高该行业中从业者的技术水平。从另一方面来说,这也限制了日本游戏程序员之间的交流。如果稍加考察便会发现,欧美的游戏程序员们往往热衷于在开源社区中对开源项目中的技术问题进行讨论并分享经验。而日本的游戏程序员们似乎就缺少这样的传统。不能不说,这为今天日本游戏业的衰落埋下了一个祸根。

  其次是引擎技术,虽然卡普空这样的公司已经意识到了引擎对于游戏开发的重要作用,但是我不得不遗憾的说,他们恐怕至少已近晚了10年!在欧美,功能强大的开源引擎都已经是一抓一大把了,而日本人最近几年才刚刚开始研发。对于这一点,倒也不能怪日本的游戏公司,因为在ps2之前的时代中,游戏机在日本游戏业中占有主导地位。由于游戏机平台的特殊性,程序员在开发游戏时往往不需要一个引擎来帮他简化工作量。所以日本的游戏开发者很难意识到要去做一个功能强大的引擎(不能说日本的开发者没有开发过引擎,只是引擎技术是一个不断发展的概念,当一套引擎远远落后于时代时,它也就不配被称为引擎了)。

  普通的游戏玩家可能很难想象引擎是一种什么东西。事实上,在我成为程序员之前,也为这个问题困惑了很久。就现在而言我也很难给出一个准确的答案,原因就在于引擎技术发展到今天,可以说是“包罗万象”,牵扯到游戏中图像,声音,逻辑等各个方面,从地图编辑器到最底层的交叉编译环境都可以归到引擎的范畴中。所以一般玩家只要了解到,引擎是一种可以成倍地简化游戏开发工作的一系列软件即可。一套良好的引擎可以帮助开发者在极短的时间中完成开发工作,起到事半功倍倍倍......的效果。

  现在的ps3和xbox360架构几乎照搬PC,程序员不可能向以前那样在不借助引擎的前提下高效的完成开发工作,而且现在游戏开发的工作量已经非常巨大,即使硬件平台还和以前一样,也不可能在不借助引擎的前提下完成如此巨大的工作量。

  欧美的游戏引擎技术,从模糊的概念被踢出来到现在已经经历了很长的一段发展时间,产生了大量优秀的产品。其中具有代表性的包括:QUAKE系列(可以说是欧美3D游戏引擎的太祖),虚幻系列(目前最火的系列,也是通用性最好的),HL系列(半条命系列,好不好看看《CS》就知道)。这些引擎经过长时间的演化,不但核心功能已经十分强大,而且通用性也很好。从FPS到GLGame(虽然没人用这些引擎做过这种游戏...)样样都能做,而且效果绝对不差。如此强大的功能是靠时间和大量程序员的心血积累起来的,日本的游戏公司想靠一己之力在短时间内赶上来,是很难的。

  以上总结了两点,缺乏开源传统和引擎技术落后,是我认为日本游戏业在当今会衰落原因之一。这其中,我尤其认为缺乏开源传统是最为关键的原因,关于这一点,我以后会在写一篇文章和大家交流。


TOP

我对游戏引擎的一点了解

作者:【A9】scourge

  首先我要说明一点,我对于TV游戏机平台并没有偏见,实际上对于一个程序员来说,TV游戏机平台是一个良好的开发环境。但是,有时候,太方便了,人就容易变得懒惰且不思进取。久而久之自然就会被别人超越。

  虽然很多国内玩家对于TV游戏非常热爱,对于游戏的设计以及游戏乐趣的本质也很有研究。但是,绝大多数玩家似乎对于游戏的软硬件技术实现却十分茫然。这一方面固然是因为,一个热爱游戏的人自然因该把心思花在游戏本身而不是其运行的软硬件平台上,另一方面,也是由于我国的TV游戏玩家受到日本厂商的影响比较大。而日本厂商出于宣传自己产品的目的,往往有意模糊技术概念。比如我小时候就一直认为,游戏机的机能一定是8位>16位>33位,而实际上直到我上大学之前都对这个“位”到底意味着什么一无所知。其实“位”作为一个计算机所特有的概念,并不怎么深奥,很容易就能向一个小学生解释清楚。之所以会这样,多拜当年几大硬件厂商在各种杂志上铺天盖地的广告混淆了我的视听。而时至今日,这种不好的影响似乎依然在延续,很多玩家在争论ps3和xbox360到底谁的机能强大的时候,往往还是将其主机厂商的广告词拿来作论据。而实际上,这些论据中的大部分在对硬件稍有了解的人看来都是不可理喻的。

  所以,为了消除这种不好的影响,我决定写几篇关于游戏软硬件技术方面的文章,向大家介绍一些游戏开发中常用到的技术实现。不过,由于我本人虽然是一名程序员,但是并没有参与过什么游戏项目,其中一些观点难免有偏误,如有发现,还望各位不惜指正。之前的一片文章中,我提到了引擎技术,这里就先谈谈引擎吧。

  前一段时间有这么一则新闻曾经引起了大家的热议,我记得大致的内容是:街霸4的制作人员说,借助于卡普空自行研发的引擎,街霸4的移植工作就是点开文件夹,选择“编译为3DS”,然后3DS版的街霸4就移植完成。这则新闻发出之后,许多玩家都表示这简直是胡扯,根本没有可能。但是,我认为,胡扯是肯定的,但也绝不是“根本没有可能”。无疑,对于美工来说,他们至少要为3DS调整人物和背景模型,这个工作量还是不小的。但是对于程序员来说,如果他们之前真的已经在引擎中添加了3DS的编译模块的话,那么除了调节一下按键和菜单界面之外,他们的工作可能真的只是“编译为3DS”了。

  是的!引擎就是这样一种神奇的工具。

  那么引擎到底是什么?它为什么能够拥有如此多的功能?而且这些功能又都如此强大?关于这个问题,我之前说过:“引擎是一种可以成倍地简化游戏开发工作的一系列工具软件”,但实际上这只解释了引擎的作用。关于引擎是什么的其他描述,我觉得比较准确的说法是:“引擎就像是火箭发射架,将游戏中所包含的能容‘发射出去’。”但这种说法只有一个已经了解了引擎的人才能真正理解,对于一个普通的玩家来说,他很难想象出自己的卡带或是光盘里有着这么一个“发射架”。其实,我对于引擎的了解也不是一步到位的,而是一个渐进的过程。其原因就在于,引擎本身就是一个不断发展和进化的概念。虽然其核心意义没有改变,但随功能的不断增加和改进,引擎这个概念已经多次由量变引发了质变。我认为想要向别人介绍一种不断进化的事物,最好的办法不是给这个事物下一个准确的定义,而是将这个事物从无到有直到现在的发展过程描述出来。所以,要了解引擎技术,还必须从头说起。

  早期的游戏开发中没有引擎的概念,我本人甚至认为,在“关卡”这个概念诞生之前,人们都没有想到要去做引擎这个东西。然后,当关卡的概念出现并普及之后,开发人员们开始很自然地想到了这样一件事情--每一个关卡中总有些事情是不变的。想象一下,在《超级玛丽一代》中,每一关的地图,敌人和敌人出现的位置都是不同的,有的关卡是天空,而有的关卡是城堡。但是每一关的规则却都是相同的,跳、顶和踩构成了游戏不变动的核心规则。即使你不是一个程序员也很容易想到,用于描述游规则的代码是可以供所有关卡共用的。很显然,我们没有必要给每一个关卡都提供一段相同的代码来描述相同的规则。而这部分用于描述游戏核心规则的代码,就是游戏引擎的最初雏形。由此开始,开发游戏的程序员们开始专心于编写描述游戏核心规则的代码。而图像和声音以及关卡地图等则交由其他专门的人员制作后按规定的数据格式存储在游戏中。游戏运行时,描述游戏核心规则的代码会去读取这些文件,然后根据规则展现出来。

  由此可见,其实早期日本游戏开发者们绝对是制作过“引擎”的,而且从那时的游戏质量来看,日本人的“引擎”可能还优于欧美。但是,要注意的一点是,日本人在游戏机上开发游戏的传统在此时给他们埋下了一个隐患。由于同一品牌的游戏机是一个硬件配置绝对统一平台,所以日本人此时所开发的“引擎”相对于欧美的同行们缺少了一个功能,就是“屏蔽硬件层”。“屏蔽硬件层”这个概念,其实说来也很简单。由于pc平台没有一个统一的硬件标准,在APPLE流行的年代直到DOS操作系统的末期,硬件平台真是千差万别。如果你想要开发一个DOS平台下的游戏,那么第一个问题就是:市面上至少有几十种互不兼容的声卡,你要如何让你的游戏支持所有这些声卡!在尝试了无数方法之后,欧美的pc游戏程序员们终于痛下决心,彻底屏蔽硬件层!简单的说就是写一个专门的程序,用于支持所有的声卡设备,并在该程序中预留一个接口,其他的游戏开发者如果想要自己的游戏能够支持所有声卡,只要调用这个接口即可。这样一来,对于程序员来说,原来的那些五花八门的声卡就变成了一个统一的接口,硬件层的那些复杂的处理过程就好像不存在了一样,它们被“屏蔽”了。“屏蔽硬件层”在今天已近发展成为引擎技术的一个重要组成部分,甚至已经超越了“屏蔽硬件”的概念,这一点之后会再介绍。

之后,就是《DOOM》了,DOOM所使用的引擎在本质上并不比《超级玛丽》高级,也还是将逻辑规则和数据分开的那一套做法。但是DOOM的引擎中有一个特别之处,它的图像处理模块异常强大(以当时的标准来说)。事实上,由于描述该如何绘制游戏中炫目的3D场景的代码,远远超过了其他部分的代码。导致这个结果的原因在于,3D图形不同于2D图形,绘制3D图形是一个非常复杂的过程,所以需要一套复杂却又高效的代码来处理这一过程。由此,引擎技术另一个特点显现了出来,那就是对于特别复杂的模块(如3D绘图),引擎会将其独立为专门的模块进行处理。在DOOM之后,几乎所有的引擎都将主要的精力放在了对图形模块的改进上,以至于当时业界干脆将“引擎”称为“图像引擎”。在今天,游戏开发变得越来越复杂,即使是像联网这样的模块也已经复杂到必须专门独立为一个模块来处理点的地步了。而且,优秀的引擎,其包含的模块还可以进行更换,比如一个引擎的图形模块可能来自于某家公司,而人工智能模块可能又是另一家公司的产品。

  到了QUAKE3的时候业界已经发生了很多的变化,ps已然显示出王者风范,但日本的开发商们不会想到他们的游戏开发方式有什么缺陷。而在pc这边,微软做了一件大事终于完善了DX。DX作为一件产品,其意义大于价值,它指明了一个引擎的核心意义。DX能做什么?它能够绘图,播放声音,接受键盘手柄鼠标以及其他外设的输入,也能将信息反馈给这些设备。而且当你调用DX的这些功能的时候,你不必在意硬件是怎么实现的,因为DX会帮你实现。那么现在我要给出引擎的核心定义了,那就是:引擎是一个可以提供游戏中绘图,声音播放,输入输出等最基本功能的程序,且用户在使用这些功能时只需要调用接口而不必关心具体的实现方式。这就是引擎的核心作用。

  DX能做到这一点是非常不易的,首先,想要屏蔽硬所有件层是一项非常浩大的工程,你不可能去主动支持所有的显卡、声卡、显示器、鼠标、键盘、CPU,唯有利用微软的霸主地位让所有的硬件厂商向微软提供统一的接口,然后再由DX调用这些接口来实现功能。像HL和虚幻系列的引擎最早都是调用DX来实现最底层的功能的。虚幻引擎十分强大,它另外实现了一套兼容性极强的底层代码。所以虚幻引擎能够通吃ps3和360。而HL离了DX就活不成,所以半条命干脆就360独占了。很多跨平台游戏都是ps3悲剧,就是因为其最初的引擎是基于DX实现的。不过,这也怪sony没有提供最底层实现。

  于此同时,游戏引擎程序员被独立了出来,他们不再关心游戏的上层内容,而只关心如何能够使游戏运行的平台高速处理绘图、声音播放等最基本的功能。而上层的游戏逻辑则交由其他的程序员编写(往往是用脚本语言来并编写的)。

  到今天,引擎技术已经发展的十分完善了,除了核心功能,各个外围的模块也已经十分强大。比如虚幻引擎,就配备了强大的地图编辑器和角色模型编辑器,这些虽然都只是开发时才用到的编辑软件,但如今也已经成为商业引擎必不可少的组建了。而且还提供了许多便捷的功能,比如前面提到的卡普空的引擎。他可以将360的游戏编译为3DS的游戏,这其实是一种交叉编译技术。现在的引擎已经越来越像是一套开发环境了。

  事实上,虚幻引擎已经开放了免费的mini版本,如果各位希望对引擎有一个更直观的了解,可以去Epic的官网下载该版本(使用是免费的,但你如果真的做出游戏来发行的话,是要分成的)。不过前提是,你的电脑至少要完全支持DX9.0的所有功能!

  最后,引擎中有一个重要的模块:“脚本语言”。据考证,虚幻引擎最早引入了该技术。之前的引擎必须将游戏中的逻辑写在代码中,而引入了脚本语言技术之后,逻辑也可以像图像和声音一样作为资源来加载了。如此一来,本来是FPS游戏的引擎,加载了赛车游戏的逻辑之后,就变成了赛车游戏了。这项技术极大的扩展了游戏引擎的通用性。

  那么下次就来说说“脚本语言”吧。(该技术的原理很难用通俗的语言来解释,所以可能要等一段时间才能写出来。)



TOP

引用:
原帖由 乌鸦 于 2010-12-7 08:33 发表
中国人没受到TV平台"太容易开发,容易懒惰"的限制吧,有什么世界级大作,有什么世界级的游戏程序员?

能赚到钱,技术又如何?说什么都没用,能让人买单就是能耐.
血狮....古剑奇谭.....傲世三国....传奇世界.....


TOP

查了一下,似乎这几个国产游戏都是用虚幻3开发的

2008 武林群侠传Online 中华网龙  
2009 中华英雄 中华网龙  
2010 天子传奇 中华网龙

TOP

引用:
原帖由 zhuliang 于 2010-12-7 09:24 发表
posted by wap, platform: Nokia (5530)

大项目的规划管理也是致命伤,以最近的GT5来说,我都怀疑这个东西有没有项目管理跟规划人员存在。
就GT5的表现来看,我一直觉得PD用大量时间来考察数据....宣传拉赞助等等这些东西上面了

似乎游戏开发时间加起来也就2年左右,甚至不到2年

TOP

引用:
原帖由 karlmao 于 2010-12-7 17:15 发表
posted by wap, platform: Nokia (E71)

主要现在主流就是枪车球,小日本做这个不擅长。
应该说主要是因为微软的乱入,微软作为IT业界巨头,可能不把PC那些同行带过来支持自己的主机么?所以我们现在看到流行的游戏基本都是PC那些东西:枪车球

所以有时候不要忽略了带头人

几个大分支:
雅达利把PC和游戏机分开来
任天堂把画面提升的同时,让我们认识了许多卡通形象,尤其是胡子大叔
索尼把CG这种东西带到游戏里面来
现在是微软把PC游戏带了进来

不知道下一代主机会不会彻底变成PC游戏,哈哈

微软一向1,2,3
第一步介入,你也可以说是捣乱或者试探
第二步砸钱战术
第三步通常都是成功,如果失败(好比10多年前平板电脑的失败)就彻底退出

微软跟苹果还不太一样,苹果基本都是要么不做,要做就做的很成功
而索尼基本就是朝三暮四,做游戏机也一定要想着自己其他行业,比如记忆棒,比如电视机

要说纯,现在似乎就老任最纯了,纯纯的游戏机行业(不知道以前那些情人旅馆会不会在N64,NGC的低潮期变卖了),平均来看质量也只有老任的最好了

TOP

发新话题
     
官方公众号及微博