如今,游戏开发使用了哪些技术?[关闭]


14

每当我在在线论坛上问有关游戏开发的问题时,我总是会得到一些建议,例如学习画线算法,位级图像处理和视频解压缩等。

但是,以《战神3》之类的游戏为例,我很难相信可以使用如此低级的技术来开发这些游戏。

此类游戏的绝对威力无视任何可理解的(对我而言)编程方法。

除了游戏硬件,现在确实是个怪物。因此,有理由认为开发人员将在更高的抽象水平上工作。

游戏行业中最新的开发方法是什么?一个由30-35个开发人员组成的团队(其中大多数是管理和市场营销人员)如何能够制作出令人难以置信的游戏?

如果问题看起来太笼统,您能否解释《战神3》的体系结构?或者您将如何制作克隆?我认为应该客观地负责。


2
有人会在乎解释下降票吗?
Monika Michael

2
赞成票是由于问题不是“建设性的”。引用一下“此问题不适合我们的问答形式。我们希望答案得到事实,参考或特定专业知识的支持,但该问题可能会引起辩论,争论,民意调查或扩大讨论范围”。即,不能精确地回答问题。我仍然认为您的问题值得,但需要重新制定。
9000

2
@ 9000这个问题如何不具有建设性?

1
@delnan:反对者可能对“游戏行业的最新开发方法是什么?”这样的短语不满意。对我来说,“如何生产克隆”会更好。
9000 2012年

Answers:


12

免责声明:我不是视频游戏开发商。但我对此确实有“业余爱好者”的兴趣。


您看到的大多数AAA游戏都是使用引擎制作的。它们不是从头开始编写的。将引擎视为框架。您拥有.NET框架,Java SDK和Cocoa工具包。

所有这些使您创建软件的工作变得更加轻松,并简化了厨房的代码。这是必要的,但是每次编写都没有效果。

使用这些引擎,开发人员可以构建自己的游戏,而不必担心一些底层代码。(毫无疑问,游戏开发是软件工程中最困难的分支之一。

例如,虚幻引擎4有一个杀手级开发套件和工作室:

http://www.youtube.com/watch?v=MOvfn1p92_8

在此处输入图片说明

有很多不同的引擎。有些是付费的,有些是免费的,有些甚至更多,而另一些则提供更高的抽象度。

例如:

  • 食人魔
  • 虚幻引擎
  • 统一
  • 资源
  • 还有很多...

5

关于gbjbaanb的评论,使游戏编程变得有趣的一些事情是代码库的有限寿命和缺乏精度要求。例如,如果您正在设计FPS游戏,并且您的移动算法有时会将您的游戏角色放置几个像素,那么这没什么大不了的,也没有人会注意到。如果您正在设计一款商业软件,并且有时您的求和函数会使您损失数美元,那将是一个更加严重的错误。因此,在设计游戏时,某些方面的准确性可能要低得多(并且只需要通过人工测试,而不是通过自动测试套件来检查答案是否正确)。

我的经验是,特别是针对实时游戏的游戏编程与...几乎与我所做的任何其他软件开发(与GUI工作无关)都有很大不同。这是您必须尝试的东西!


4

答案是“引擎”。许多fo游戏都建立在各种图形和游戏引擎之上,这些引擎基本上是大型的库或框架。

在OSS领域中,以Ogre为例,对于商业游戏,您拥有诸如Source之类的东西

还有其他因素在起作用,例如许多代码是可处理的,不会在商业环境中通过–这是因为游戏寿命有限,开发时间加快,这意味着(几乎)设计了代码只是为了工作,而不是为了维护。


当然,这些引擎只是在底层API(例如用于图形的DX或OpenGL)之上的常规(尽管经过高度优化的)C / C ++代码构建抽象。

但是,最好有经验使用C或C ++创建一个非常简单的游戏,以使作者了解游戏开发的方式。
KyelJmD 2012年

4

Unity3D真的很棒。这是我喜欢的几点:

  • 它使您能够以与平台无关的方式构建游戏,然后自动为Windows,Mac OS X,Android和IOS创建可部署项目。对于当前版本(3.x),这是正确的。显然,版本4还可让您在Linux上进行部署:

http://zh.wikipedia.org/wiki/Unity_(游戏引擎)#Major_features

  • 即使您需要付费许可证才能实际使用(商业上),也可以下载免费版本,在其中可以使用大多数功能(即,例如,无法使移动平台可部署)。在您决定是否购买之前,它提供了一种预览的方法:

http://unity3d.com/unity/licenses

  • 适用于大多数3d建模软件(我更喜欢3d Studio Max,但它也支持其他软件):

http://unity3d.com/unity/editor/importing(向下滚动)

  • 编码(脚本)可以用C#完成,这是一种不错的语言,具有良好的API和编译时间检查。带有良好的开发环境(IDE和所有功能)。如果您想要不同的东西,它也支持Javascript。

  • 具有很好的物理支持(碰撞,重力,力等):

http://docs.unity3d.com/Documentation/Manual/Physics.html

  • 拥有资产商店,可让您购买各种模型,脚本,动画等,并根据您的技能(和钱包)来获取/修改这些资产,从而快速获取游戏的体面资源。

  • 最后但并非最不重要的一点是,它速度很快。看看移动演示,恕我直言,它们运行得很好,并且图形非常好:

http://unity3d.com/gallery/made-with-unity/game-list

这是我目前正在等待的一个不错的Unity项目:

布莱恩·法戈的荒原2

他们有一篇不错的博客文章,介绍了他们为什么选择Unity,以及其他讨论如何使用Unity的过程


3

ID软件是通常发布最新游戏状态的供应商之一。几年后,他们经常将它们作为开源发布。在http://fabiensanglard.net/quake3/index.php上,您可以找到Quake3源代码的分析。这是一个非常冗长的描述,尽管Quake3已经很老了,但概念仍然与现代游戏相关。

是的,如果您想构建最先进的现代快速,具有竞争力的游戏引擎,则必须了解所有这些低级的知识。如果您不想关心这些问题:可以使用不同的引擎(quake3引擎或其他答案中的引擎),但是好了,那么您就不必创建新的革命性游戏了;-)


从分析的角度来看,《雷神之锤3》比当今游戏开发中的许多重要“低级”技术要早。首先,(OpenGL提供的)着色器。

地震3于1999年发布。是的,很久以前。但这显示了人们如何努力工作,力图达到当时的极限。大多数其他可用的引擎更倾向于可重用性,“干净的”代码等,而不是最大的性能。(这并不意味着其他引擎性能不好且运行缓慢,但是如果您想了解3D游戏引擎的架构和实现,我认为仍然值得一看)
johannes 2012年

:在3D游戏的二进制低电平数学另一个相关的文章,用地震作为一个例子blog.quenta.org/2012/09/0x5f3759df.html
约翰内斯

1

正如许多答案提到的那样,游戏引擎和库发挥着重要作用。但是,请注意,这不仅适用于小型“独立”游戏,还适用于中大型商业游戏。

例如,在移动平台上,大多数游戏仅使用一组相对原始的库编写,而不是依赖于成熟的游戏引擎和框架。它们确实存在,但是在大多数情况下,这是关于重用早期项目中的自己的代码。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.