您的位置:首页 > 其它

游戏开发的最新发展趋势分析

2007-04-06 08:04 597 查看
游戏开发的最新发展趋势分析

这几年游戏产业的发展可以说是一波接着一波,呈现一片欣欣向荣,百家争鸣的景象。游戏产业发展至今虽然只有 30 年左右的时间,却已经成为全球娱乐市场的主流,游戏软件的销售量更是与日俱增,甚至超过悠久历史的电影与音乐产业。此外,三大游戏主机厂商 – Sony 的 PlayStation2、任天堂的 Game Cube以及微软的XBOX之间竞争趋于白热化,更使得整个游戏产业成为众所瞩目的焦点。

就国内的发展来看,最近这两三年内国内的游戏公司如雨后春笋般的成立,所开发或代理的网络游戏更是不胜枚举。以全球游戏业界的发展来看,这几年韩国的表现最为突出,特别是在网络游戏的技术研发与游戏制作,其所发行的网络游戏更成为全球游戏产业重要的指标之一。去年在美国洛杉矶所举行的 E3(Electronic Entertainment Exposition)展中,已经有几家的韩国厂商挤入世界第一线的游戏开发厂商之列。

近几年来,由于 3D 硬件绘图技术的突破,使得实时描绘的画面越来越精致,而且3D游戏性更多元化更逼近真实世界,因此在游戏产业中,3D 游戏已经逐渐取代2D游戏而成为游戏市场的主流,即使是网络游戏,也慢慢趋向3D化。然而游戏3D化将会带来的游戏开发上的困难与问题,之后的章节我们将分析这些问题及解决之道。

游戏开发的现况

 早期的游戏开发,由于硬件上的限制,如:运算速度慢,记忆空间小,使得程序设计师必须藉由一些特殊的技巧以提高效率或是挤出够用的记忆空间,所以每一个游戏最好是从头写起,以便针对各个不同的游戏程序做最佳化,让硬件的效能发挥到极致,由于这些限制使得当时的游戏画面只能以简单的线条或是图形来呈现,所以早期游戏强调的是游戏性而不是视觉的感受(例如:华丽的画面、惊人的视觉特效…等)。而游戏开发小组可能只需要一个程序设计师、一个美术师及一个的音乐作家,甚至可能一个全能的程序员包办所有的工作。

随着硬件效能的提升,游戏开始变得复杂而且多样化,而游戏的视觉的感受(如:华丽的画面)逐渐成为玩家是否接受这个游戏的首要条件,所以游戏在制作上日趋复杂,尤其是进入3D时代之后,游戏制作的难度更是陡升。3D 游戏的开发之所以困难复杂,有很多原因,各个厂商的困扰也不尽相同,底下我们将列出一些在3D游戏开发上比较常面临的问题:

1. 程序开发的困难

要在一个实时的游戏画面呈现复杂的场景与视觉特效,程序必须能够处理繁杂的空间几何数据、对象的材质以及光源的照明等信息,然而要驾驭这些元素,程序员必须具备数学与物理的相关知识。此外,程序效能的好坏,将直接影响游戏的流畅度和画面的精细度,这又牵涉到程序员本身的程序撰写功力,种种因素的影响,连带地提高了开发 3D 游戏的困难度。

2. 技术的更新

由于3D描绘技术以及算法的不断地更新,所以常常发生游戏开发到一半,就面临汰旧换新的窘境,而更换程序底层虽然可以让游戏的画面更漂亮或效能更好,但相对也会因此而延长游戏的开发时程。

3. 程序跟美术间的沟通

在3D游戏的开发过程中,程序员跟美术人员之间的沟通是非常重要的。一般的情况,3D场景越复杂意味着画面越精致,相对地,游戏的流畅度就越低。所以如何在游戏的流畅度以及画面的精致度之间取得一个平衡点就成为游戏开发中一个很重要的关键,而程序跟美术小组之间的沟通和协调扮演举足轻重的角色。然而由于这两个团队的立场和知识背景均不同,所以沟通不易且容易发生互相牵制的情况,让游戏的开发更为困难。

4. 硬件的影响

由于各家3D加速芯片的制造商所推出的芯片在效能、特性和规格都不尽相同,而3D游戏又相当倚赖3D加速芯片,所以在开发游戏时必须考虑到该游戏是否能与各家显示芯片的兼容,游戏是否够流畅…等问题。

5. 团队的扩编

由于游戏越做越庞大,加上程序开发不易、复杂程度高等特性,使得开发一个游戏需要更多人员的参与。人员的扩编使得人事费用的大幅增加,而且团队合作也更为重要,而团队合作本身就是一个困难点。

6. 失败率增高

由于3D游戏在操控及镜头设计上的多元化,使得游戏在设计上的变量变多,设计得宜可以让游戏更为出色,但是如果设计不当,则会使得整个游戏毁于一旦,因此在投入大量人力之前,制作一个游戏雏形来测试游戏设计者的创意是否可行是一个必要的方式。

这些开发3D游戏时所可能会面临的问题,都会造成开发成本的增加,因此为了解决这些问题降低所需耗费的开发成本,便产生一种新的游戏开发趋势—使用现有的(或是自行研发)3D游戏引擎,所谓的3D游戏引擎,可以看成是游戏制作的核心,它主要目的是将游戏开发过程中一些常用的模块或是复杂的运算抽离出来,简化游戏设计的难度让游戏设计人员可以将心力放在游戏设计上,至于3D描绘的相关技术就交由开发3D游戏引擎的开发小组或厂商负责研究开发。

目前大部分的游戏厂商都是利用游戏引擎开发游戏,但由于游戏引擎的开发不易,因此开始出现专门负责开发游戏引擎的厂商提供良好、稳定的游戏引擎给游戏开发商使用,以缩短开发的时程和成本。关于3D游戏引擎所扮演的角色及所能提供的功能我们将在下一节做详细的探讨。

3D游戏引擎所涵盖的功能

当初由于FPS类型游戏的盛行,所以不少游戏厂商竞相开发类似的游戏,由于类型一样,因此很多游戏组件都可以重复使用,而不需重新制作。在id Software所开发的Quake造成游戏风潮之后,id Software便开始授权Quake引擎给其它厂商开发不同题材但类型相同的游戏,目的主要是缩短相同类型游戏开发的时程,重复利用以前所开发过的功能。伴随着游戏的复杂度与精致度的提高,其制作难度也逐渐攀升,因此善用游戏引擎以缩短游戏开发的时程便慢慢形成一股趋势。而每一个3D游戏引擎所提供的功能和特性都不尽相同,不过,大致上来说大部分的3D游戏引擎都会包含底下的功能:

1. 跨平台

由于三大主机的兴起,所以现在的游戏开发厂商不在局限于单一主机上,因此跨平台的趋势慢慢兴起,由于各个主机的硬件设计不尽相同所以若是没有将这些平台相关的程序代码抽离,当该游戏要跨平台时,其所耗费的工几乎等同于开发一款新的游戏,因此必须设法将这些平台相关的程序代码抽离出来,而这一部份是引擎的核心,所以3D游戏引擎必须负起跨平台的功能,一个具有跨平台的3D游戏引擎,可以使得开发单一游戏却可以平行地在各个主机上发行。
2. 平行发展

一个好的3D游戏引擎,应该将各个模块如:3D描绘(3D rendering)模块、动画模块、AI模块、游戏内容(game content)模块、声音(sound)模块、特效(special effect)模块、镜头控制(camera control)模块…等独立开来。如此一来在游戏开发的过程中,每个小组便可以平行开发,藉由这种方式降低各个小组之间的沟通隔阂。此外,由于3D的描绘技术不断地翻新,因此若要使用最新的技术提高游戏的效能或是让画面更精致就必须实时更新底层的程序技术,由于引擎所提供的是接口,所以当引擎的底层技术更新时,上层的游戏相关的程序代码并不需要大幅的更动便可以运用新的描绘技术或效果以达到降低更新技术时困难度。

3. 提供工具程序

3D场景的建构方式和复杂度都会影响游戏的流畅度,因此在建构场景时,美术与程序之间必须互相协调配合,但一般来说,美术人员并不了解程序人员的设计理念,而程序人员也不清楚美术人员在场景制作上的困难点,也就造成了沟通上的隔阂,甚至出现互相牵制的情况,进而拉长游戏制作的时程。要降低这些情况的发生,工具程序是一个很好的解决方式,藉由这些工具程序,美术人员可以了解自己所制作的场景在程序端的显示结果及效能,而程序端也可以藉由这些工具程序让美术人员知道场景该如何建构才能提高游戏的效能。

4. 易于制作游戏雏形

由于3D游戏在操控及镜头设计上的多元化,配合不同的主题,藉由操控上或是运镜上的变化,可以使得整个游戏效果更为突出,更容易将整个游戏所想要表达的情境呈现出来;但相对来说,由于这些自由度也使得游戏更难设计,如果设计不当,便无法顺利将游戏的情境传达给玩家因而成为一个失败的作品。所以在游戏正式制作之前,应该先制作一个雏形测试设计者的设计理念是否可行。因此3D游戏引擎应该提供方便的工具和函式让游戏设计者在不需要撰写复杂程序代码的情况下,可以在短时间内实作出游戏的雏形,以了解该设计理念是否可行。

5. 缩短开发时程

3D游戏引擎的另一个重要目的,就是缩短开发时程,由于3D游戏引擎已经具备一些常用的3D特殊效果及运算函式,因此游戏开发者便可将心力放在游戏设计本身上,而不用将心力花在这些琐碎而复杂的组件上,自然可以提高开发速率而达到缩短时程的目的。

开发3D游戏引擎的困难点

运用3D游戏引擎开发游戏俨然成为现今游戏开发的趋势,但是开发一个3D游戏引擎并不是一件容易的事,开发一个3D游戏引擎将会面临许多的问题:

1. 开发成本

由于3D游戏引擎的功能包罗万象,不仅要考虑底层程序的效能、绘图技术,更要能够提供良好的程序接口和编辑工具,因此要开发一个3D游戏引擎所花费的成本和时间人力颇高。

2. 技术层面

一个3D游戏引擎所提供的功能通常会超过20个以上先进的计算机绘图技术及动画功能(如bump mapping、environment mapping、shadow volume、mipmap….等),若工程师没有相当的实力,要在时间内开发出所需的功能供游戏制作用是一件很不容易的事情。

3. 工具是否齐全

在前一节有提及,游戏引擎扮演着一个重要的角色:程序员与美术人员之间的沟通桥梁,这一个角色扮演是否得当,端赖该引擎所提供的工具是否齐全、是否易用而定,例如:level editor、character editor、sound editor…等工具供设计人员设计并测试游戏用。而这些工具的设计也是一个相当困难的挑战。

4. 稳定度

最后,还有很重要的一点是:游戏引擎的稳定度及开发度,一个游戏引擎是否稳定将直接影响到该游戏的稳定度。然而一个新的游戏引擎需要更长的时间测试和除错,而这些都会影响到游戏的开发时程。
另外,人员的流动、新的硬件平台测试、新的绘图技术更新、不同平台的移植等,都使得维护自有的3D游戏引擎变得困难万分。
综合以上所言,我们可以了解到运用3D引擎开发游戏是一股新的趋势。然而由于引擎的开发和维护都具有相当的难度,因此开始出现专门开发和维护3D游戏引擎的厂商,这些厂商提供稳定且性能良好的引擎供游戏厂商开发游戏,如此一来游戏厂商便能将重心放在游戏的开发及设计上,至于受底层的3D描绘技术及工具设计就交给引擎开发商或开发小组去烦恼吧。

结论

由于3D描绘的技术更新越来越快,使得游戏的开发难度日渐升高,因此将常用的部分慢慢地抽离出来以提高重用性是一个降低开发成本的好方法,这些模块集合起来之后便形成3D游戏引擎的雏形。3D游戏引擎的优点就在于提供稳定的游戏开发平台、最新的动画或绘图功能、与游戏引擎互相搭配的游戏制作工具及跨平台…等强大功能,因此利用3D游戏引擎来开发游戏已经成为一股新的游戏开发的趋势。

然而开发并维护一个功能强大的3D游戏引擎并不是件容易的事,因此慢慢出现以开发及维护3D游戏引擎为主的公司。3D游戏引擎的发展会日趋成熟,因此游戏开发的困难度也将随着3D游戏引擎的成熟而逐日降低。由于这些3D游戏引擎的成熟发展,将使得游戏开发厂商可以将其开发的重心放在游戏内容及游戏设计上,因此未来游戏厂商将可以摆脱复杂的3D绘图技术的程序设计、沟通不易、跨平台…等困扰,而更容易地设计出画面华丽、内容充实的游戏。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: