Зачем игровым студиям нужны графические программисты, если они используют игровые движки?

55

В разделе кредитов игр, в которые я играю, есть имена графических программистов . Если они использовали игровой движок, зачем им графический программист ? Разве игровой движок не выполняет свою работу?

Шуво Саркер
источник
15
Если вы хотите, чтобы ваша игра была точно такой же, как и все остальные, просто используйте движок. Если вы хотите, чтобы он отличался от других, вы используете двигатель в качестве отправной точки, а затем измените его. Я использую игровой движок (движок jmonkey), но я также написал шейдеры, чтобы переопределить некоторые из его поведения по умолчанию для вещей, которые меня особенно заботили)
Ричард Тингл
29
Это все равно что спрашивать, зачем вам гражданский инженер, если строители собираются строить мост. Мост - это больше, чем просто стык бетона и металла. Существует много подробного анализа физики и материалов, который строители не узнают. Для моста любой серьезной сложности и / или нагрузки попытка построить без этого знания вряд ли будет успешной. Точно так же знания разработчика программного обеспечения о том, как работают компьютеры и движок, будут иметь неоценимое значение при создании игры. (В крайних случаях вам
понадобятся
2
@RichardTingle Технически написание шейдера на самом деле не модифицирует движок, а предоставляет новый контент для движка.
Pharap
11
По теме: Зачем компаниям нужны математики и инженеры, если у них есть калькуляторы и компьютеры?
xDaizu
1
написание шейдера вряд ли является графическим инженером. @ShuvoSarker - «Или у каждого игрового движка есть свой собственный способ сделать это», конечно, «низкоуровневая инженерия» для игр может включать в себя любое количество навыков. (название «графические программисты» ничего не значит. это может быть просто * кто-то, кто делает «связанные с графикой вещи» в Unity »или это может означать, по сути, что вы думаете« хитрые вещи низкого уровня за пределами движка »).
Толстяк

Ответы:

94

Даже с помощью движка отображение чего-либо на экране так, как вам нужно, не всегда тривиально. Там будет много случаев, когда кто-то со знаниями в области программирования требуется для правильного отображения графики. Эти люди могут называться графическими программистами в титрах (графический программист не является сертифицированным или защищенным названием, и разница между различными названиями может сильно различаться в зависимости от компании).

Давайте приведем конкретный пример. Нам нужен анимированный вращающийся круг, как показано ниже:

введите описание изображения здесь

Некоторые из наших вариантов:

1 Поставьте кружок на рекламный щит, напишите скрипт для поворота рекламного щита.

2 Используйте анимированный GIF в качестве источника.

3 Делайте все это в шейдере, который позволяет 2 различных варианта:

  • Поверните рекламный щит в вершинный шейдер
  • Нарисуйте повернутый круг в фрагментном шейдере.

В 1. Кто-то должен написать этот сценарий, что является некоторой программной задачей, связанной с графикой. Для 2. нам не нужен программист, если движок - как и большинство - не поддерживает импорт анимированных GIF-файлов, и в этом случае кому-то нужно запрограммировать эту часть. В 3. кто-то должен программировать шейдер, которым может быть художник или программист.

РЕДАКТИРОВАТЬ, чтобы решить downvotes:

Понятно, что отрицательные последствия заключаются в том, что эффект слишком прост и, следовательно, не будет реализован «настоящим» графическим программистом. Я на самом деле не знаю, кем еще это будет реализовано, если в команде будет выделенный графический программист, и я иногда реализую такие эффекты вращения в шейдерах - хотя обычно вращение является лишь частью большего целого, как в этот пример .

Питер
источник
Комментарии не для расширенного обсуждения; этот разговор был перенесен в чат .
Джош
65

Игровые движки похожи на кухни, а разработчики (то есть программисты) похожи на поваров.

Игровые движки предлагают возможности, в то время как программисты используют эти возможности для нужд игры.

Таким образом, игровые компании нуждаются в графических программистах, чтобы адаптировать графические возможности движка к потребностям игры.

Если бы игровой движок управлял всем без какой-либо настройки, все игры, созданные этим движком, выглядели бы так, как будто они вышли из одной и той же формы: художники могут создавать разные 3D-модели и 2D-рисунки, приспособленные к видению дизайнеров, но внутриигровая настройка для этой графики будет ограничена тем, что движок предлагает из коробки.


Обратите внимание, что, хотя они позволяют вам изменять используемый стиль, некоторые игровые движки не дают возможности адаптировать другие графические аспекты к потребностям игры. Я думаю, что RPG Maker был таким: он позволял вам менять искусство, но вы были ограничены с точки зрения того, как вы могли бы настроить свою игру, чтобы придать ей особый вид. Это могло измениться за последние годы, так как я некоторое время не касался этого программного обеспечения.

Vaillancourt
источник
Комментарии не для расширенного обсуждения; этот разговор был перенесен в чат .
Джош
20

Конкретное значение большинства игр в игровой индустрии сильно различается от студии к студии, так что имейте это в виду. То, что представляет собой «графическое программирование» в одной студии, на самом деле может означать просто настройку шейдеров или материалов, тогда как в другой студии это может означать выполнение работы по оптимизации низкого уровня рядом с базовым графическим API, и так далее.

Тем не менее, в более крупных студиях относительно редко берут какое-то промежуточное программное обеспечение для движка и используют его без каких-либо изменений. В большинстве случаев необходимо будет настроить конкретные аспекты движка, потому что он не совсем соответствует требованиям, или потому что в этой версии есть ошибка, и компания пока не может перейти на более новую версию, которая может исправить ошибку, и т. Д. так далее.

Графика является одной из таких областей, где люди, как правило, делают небольшие изменения. Это может не включать переписывание использования Direct3D или аналогичного в движке, но может по-прежнему включать работу по настройке или оптимизации шейдеров, улучшению управления графическими ресурсами для лучшего учета профилей использования конкретной игры, добавлению новых функций или опций рендеринга, оптимизации конвейер графических активов, чтобы лучше соответствовать рабочему процессу студии, и так далее.

Кроме того, во многих случаях студия может захотеть интегрировать дополнительное связующее программное обеспечение, связанное с графикой. Существуют промежуточные пакеты, такие как Granite, Enlighten и TrueSky, которые предлагают различные графические функции (потоковая передача текстур, глобальное освещение, моделирование и рендеринг неба и т. Д.). Все эти промежуточные пакеты интегрируются с Unreal, но для их интеграции требуется работа. Некоторые из них могут конфликтовать друг с другом или нуждаться в тонкой настройке, чтобы хорошо работать вместе, поскольку все они разработаны разными компаниями. Графические программисты, вероятно, также будут вовлечены в такую ​​работу.

Джош
источник
7

Вы можете поставлять игры без графического программиста довольно легко в настоящее время из-за всех движков. То, для чего вам обычно нужен графический программист, это такие вещи, как

  1. оптимизация

    Программист графики знает и / или узнает, как работает конкретный движок, и сможет руководить художниками, модифицировать материалы или модели слияния или использовать другие методы и т. Д., Чтобы получить лучшую производительность от движка.

  2. понимание и обучение

    Художник хочет добиться определенного эффекта. Графический программист, который понимает, как работает движок, может объяснить, как добиться этого эффекта.

  3. настройки и эффекты

    Некоторые эффекты могут потребовать программирования. Большая часть рендеринга Bound - обычай.

Это ничем не отличается от фильмов. С сотнями программистов, большим бюджетом и плохим написанием вы можете получить Star Wars: The Phantom Menace. Без программистов и хорошего написания вы можете получить Primer. Программисты (или другие технические люди) могут разрешать новые вещи. Программисты принесли CG mud в Шрек, CG hair в Monsters Inc, Bullet Time в The Matrix и т. Д. Но фильмы сами по себе не об эффектах, и вполне возможно сделать потрясающие фильмы без эффектов или новых пользовательских технологий.

То же самое более или менее верно для игр сейчас. Программисты графики могут использовать жидкости в Pixel Junk Shooter или во всей динамической геометрии Bound, но можно создать множество игр со стандартным движком и без графических программистов.

GMan
источник
Это делает их работы тривиальными?
Shuvo Саркер
2
Создав игры более 30 лет, я вижу, что в разработке игр есть много тривиальной работы. Но я бы не сказал, что работа графических программистов тривиальна. На самом деле, если вам это действительно нужно, это скорее всего не тривал.
мужчина
1
@immibis Звучит так, как будто вы говорите, что балансировка игры тривиальна, с чем я не согласен, так как это должно быть сделано, иначе это может испортить игру. Тривиально означает, что это имеет мало значения.
Сердитый говорит восстановить Монику
2
@GrumpyCrouton тривиальная задача не имеет ничего общего с ее важностью. тривиальная задача означает, что это почти слишком просто, чтобы даже называться задачей. Кроме того, дизайн баланса сложен, реализовать его на самом деле тривиально.
Брайан Х.
1
@GrumpyCrouton ключ в малой ценности, как вы упомянули, мы не говорим о том, что задача достигает, мы говорим о самой задаче, которая имеет мало или вообще ничего не значит. Вы буквально изменили значение константы, и все готово.
Брайан Х.
4

Часто игровые движки не удовлетворяют 100% требований и спецификаций игрового проекта. Это особенно актуально для игр с тройным А, которые всегда расширяют границы игровых технологий. Если какая-то графическая часть игрового движка не совпадает с тем, что художники и дизайнеры хотят достичь «из коробки», они могут нанять графического программиста / специалиста, который поможет им выяснить, возможно ли их ожидание, и если это так, как этого добиться. Это может включать в себя настройку шейдерных / художественных ресурсов, или переработку частей рендеринга, или даже использование промежуточного программного обеспечения. Или их комбинация.

EZzyPEZzy
источник
3

Большинство стандартных методов будут реализованы в любом приличном коммерческом движке, таком как FXAA, освещение, затенение cel, нормальное отображение и т. Д., Но не во всех.

В том случае, если игровой дизайнер указал, что определенный эффект должен произойти, вы либо создаете его из того, что уже есть, либо кодируете новый шейдер, либо модифицируете графический движок, чтобы разрешить его. В обоих случаях требуется графический программист.

Ян Янг
источник
-8

Определите движок, затем определите графический движок. Если вы используете существующий движок для создания игры, это не то же самое, что писать игру с нуля в коде. Если с помощью кода можно определить, что такое графика или движок, не имеет значения, как вы это называете, если ваш код сильный. Создание игр в указанном движке, его ограничениях и / или сильных сторонах основано исключительно на способности программиста. Использование чего-то вроде Unity или даже Unreal или любого другого профессионального движка не определяет ваших способностей, игровые движки - это просто абстракция, написанная в чистом C ++. Например, вы можете нанять программистов, черт возьми, даже художников, но вы будете ограничены видением или ограничениями движка. Так что лучше кодировать с нуля, чем использовать уже существующее. Проблема в том, что ты выиграл Я не уверен, что многие люди даже удосужились написать код для игры, не говоря уже о завершении 2d проекта. Я просто немного откладываю, это означает, что не так много самоотверженных ответов объясняют это. Лучший способ - учиться и практиковаться!

Meeps
источник
Это полностью игнорирует вопрос, поэтому людям нужны графические программисты для проектов в таких движках, как производитель игр.
Великая утка