如果游戏工作室使用游戏引擎,为什么他们需要图形程序员?


55

在我玩的游戏的积分部分中,有图形程序员的名字。如果他们使用游戏引擎,为什么需要图形程序员?游戏引擎不是在做他们的工作吗?


15
如果您希望自己的游戏与其他所有人完全相同,则只需使用引擎即可。如果您希望它与众不同,则可以使用引擎作为起点,然后对其进行修改。我使用游戏引擎(jmonkey引擎),但我也编写了着色器以覆盖我特别关心的某些默认行为)
Richard Tingle

29
这就好比问为什么建筑工人要建造这座桥,为什么需要土木工程师。这座桥不仅仅是将混凝土和金属拍打在一起。有很多详细的物理和材料分析,建筑工人不会知道。对于具有任何严重复杂性和/或负载的桥梁,尝试在没有这些知识的情况下进行构建不太可能顺利。同样,软件开发人员对计算和引擎如何工作的了解对于构建游戏将是无价的。(在极端情况下,您将需要底层硬件知识。)
jpmc26,2015年

2
@RichardTingle从技术上讲,编写着色器实际上并没有修改引擎,而是为引擎提供了新内容。
法拉普

11
相关:如果公司拥有计算器和计算机,为什么需要数学家和工程师?
xDaizu

1
相当,编写着色器几乎不是图形工程师。@ShuvoSarker-“或者每个游戏引擎都有自己的做事方式”,当然,用于游戏的“低级工程”可以包含许多技能。(“图形程序员”这个标题什么都没有。它可能只是*在Unity中从事“与图形相关的东西”的人,或者实质上是指您正在考虑“超出引擎的低级棘手的东西”)。
Fattie

Answers:


95

即使使用引擎,以您想要的方式在屏幕上显示某些内容也不总是一件容易的事。在许多情况下,需要具有编程知识的人才能正确显示图形。这些人可能被称为学分制的图形程序员(图形程序员不是经过认证或受保护的头衔,不同头衔之间的差异因公司而异)。

让我们举一个具体的例子。我们需要一个动画旋转圆,如下所示:

在此处输入图片说明

我们的一些选择是:

1将圆圈放在广告牌上,编写脚本以旋转广告牌。

2使用动画gif作为源。

3在着色器中完成整个操作,它允许2种不同的选择:

  • 在顶点着色器中旋转广告牌
  • 在片段着色器中绘制一个旋转的圆。

在1.中,需要编写该脚本,这是与图形有关的某种编程任务。对于2.,我们不需要程序员,除非引擎(像大多数引擎一样)不支持导入动画gif,在这种情况下,需要有人对该部分进行编程。在3.中,必须对着色器进行编程,该着色器可以是美术师或程序员。

编辑以解决掉票问题:

降低投票率似乎是因为效果太简单,因此无法由“真正的”图形程序员来实现。我真的不知道如果团队中有专门的图形程序员,还会由谁实现,我偶尔会在着色器中实现这种旋转效果-尽管通常旋转只是更大整体的一部分,例如这个例子


评论不作进一步讨论;此对话已转移至聊天
乔什

66

游戏引擎就像厨房,而开发人员(即程序员)就像厨师。

游戏引擎提供了可能性,而程序员则利用这些可能性来满足游戏的需求。

因此,游戏公司需要图形程序员来调整引擎的图形可能性,以适应游戏的需求。

如果游戏引擎无需调整就可以管理所有内容,那么该引擎制作的所有游戏看起来就好像是从同一个模具中出来的:艺术家可以制作出适合设计师眼光的不同3D模型和2D艺术,但是这些图形在游戏中的自定义功能将仅限于引擎提供的开箱即用功能。


请注意,尽管它们允许您更改所使用的图形,但是某些游戏引擎并没有提供根据游戏需求定制其他图形方面的可能性。我认为RPG Maker就是这样:它可以让您改变艺术,但在如何调整游戏以赋予其独特的风格方面受到限制。在过去的几年中,这可能有所改变,因为我已经有一段时间没有接触过该软件了。


评论不作进一步讨论;此对话已转移至聊天
乔什

20

游戏行业中大多数游戏的具体含义因工作室而异,因此请记住这一点。在一个工作室中构成“图形编程”的内容实际上可能意味着仅进行着色器或材质调整,而在另一个工作室中,这可能意味着在底层图形API等附近进行相对较低级别的优化工作,等等。

也就是说,在较大的工作室中,很少使用引擎中间件而不进行任何修改就可以使用它。大多数时候,需要对引擎的某些方面进行调整,因为它不能完全满足要求,或者因为该版本中存在错误,并且该公司仍无法升级到可以解决该错误的较新版本,等等。等等

图形是人们经常进行一些调整的领域之一。它可能不涉及重写引擎内Direct3D或类似工具的使用,但仍可能涉及工作定制或优化着色器,改善图形资源管理以更好地考虑特定游戏的使用情况,添加新的渲染功能或选项,简化图形资产管道,以更好地适应工作室的工作流程等。

此外,在许多情况下,工作室会希望集成其他与图形相关的中间件。有一些中间件软件包,例如Granite,Enlighten和TrueSky,它们提供与图形相关的各种功能(纹理流,全局照明,天空模拟和渲染等)。所有这些中间件软件包都与Unreal集成在一起,但是需要工作来集成它们。由于它们都是由不同公司开发的,因此它们中的一些可能彼此冲突或需要进行一些调整才能很好地协同工作。图形程序员也可能会参与这种工作。


7

由于所有引擎,您现在可以很容易地在没有图形程序员的情况下发布游戏。通常,您需要图形程序员来处理的事情是

  1. 优化

    图形程序员将了解和/或了解特定引擎的工作方式,并能够指导美术师或修改材料或合并模型或使用其他技术等以从引擎获得更好的性能。

  2. 理解与指导

    艺术家想要达到一定的效果。了解引擎工作原理的图形程序员可以解释如何实现该效果。

  3. 定制和效果

    某些效果可能需要编程。绑定的大部分渲染都是自定义的。

这和电影没什么不同。拥有数百名程序员,庞大的预算和糟糕的写作,您可能会遇到《星球大战:幻影威胁》。没有程序员,没有好的写作,您可能会得到Primer。程序员(或其他技术人员)可以允许新事物。程序员带来了史莱克CG泥,怪兽公司带来了CG头发,《黑客帝国》带来了子弹时间,等等。但是,电影中的电影与效果无关,完全可以制作出没有效果或新的定制技术的惊人电影。

现在的游戏也是如此。图形程序员可能允许使用Pixel Junk Shooter或Bound的所有动态几何图形中的流体,但是可以使用标准引擎技术制作大量游戏,而无需使用图形程序员。


这会使他们的作品微不足道吗?
Shuvo Sarker

2
从事游戏已有30多年的历史了,我可以看到在游戏开发方面有许多琐碎的工作。但是,我不会说图形程序员的工作很琐碎。实际上,如果您实际上需要一个,那很可能不是一件容易的事。
gman

1
@immibis这听起来像是您在说游戏平衡是微不足道的,我不同意这一点,因为它必须要做,否则会破坏游戏。琐碎意味着它没有什么重要性。
脾气暴躁的人说,莫妮卡

2
@GrumpyCrouton一项琐碎的任务与它的重要性无关。一项琐碎的任务意味着它甚至太简单,甚至不能称为一项任务。同样,天平的设计非常困难,实际上实现其中的一些琐碎也是微不足道的。
Brian H.

1
@GrumpyCrouton正如您所提到的,关键价值不大,我们不是在谈论任务正在实现什么,我们是在谈论任务本身,它几乎没有价值。您从字面上更改常量的值就可以了。
Brian H.

4

很多时候,游戏引擎无法满足游戏项目的100%要求和规格。对于始终在推动游戏技术发展的AAA级游戏尤其如此。如果游戏引擎的某些图形部分与艺术家和设计师想要的即用型实现不匹配,则他们可能会聘请图形程序员/专家来帮助他们弄清他们的期望是否可行,以及如果是,如何实现。它可能涉及到调整着色器/美工资产,或重新制作部分渲染,甚至使用中间件。或它们的组合。


3

大多数标准技术将在任何体面的商用引擎中实现,例如FXAA,照明,cel阴影,法线贴图等,但不是全部。

在游戏设计师指定必须发生某种特定效果的情况下,您可以从已经存在的效果中构建效果,或者编写新的着色器,或者修改图形引擎以允许它。在这两种情况下,都需要图形程序员。


-8

定义引擎,然后定义图形引擎。如果您使用现有的引擎来制作游戏,那么这与从头开始编写代码并不相同。如果通过代码可以定义什么是图形或引擎,那么如果您的代码很强大,那么您称其为什么也没关系。在所述引擎中创建游戏,其限制和/或优点仅基于程序员的能力。使用Unity甚至Unreal或任何其他专业引擎之类的东西都无法定义您的能力,游戏引擎只是用纯C ++编写的抽象编码而已。例如,您可以雇用程序员甚至是艺术家,但您将受到引擎的视野或限制。因此,最好从头开始编写代码,然后再使用已有的代码。问题是你不会 找不到像Stackexchange这样的在线答案我怀疑很多人甚至不愿意编写游戏代码,更不用说完成2D项目了。我只是有点拖拖拉拉,这意味着没有很多自我服务的答案可以说明。最好的方法就是学习和练习!


这完全忽略了这个问题,那就是为什么人们需要图形程序员来开发游戏机等引擎中的项目。
大鸭
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.