Что такое «разработка инструментов»?

18

Я смотрел на различные вакансии в игровой индустрии, и многие из вакансий, которые я видел, рекламировались для должности «разработчика инструментов». Я не знаю, что это на самом деле.

Может кто-нибудь объяснить, что это для меня, пожалуйста? И если у кого-нибудь есть ссылки на материал, который поможет мне понять его лучше, это будет очень цениться.

Elliott
источник

Ответы:

22

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

Однако в первую очередь вам будет поручено создание программного обеспечения, которое будет использоваться другими разработчиками в студии, и роль этого программного обеспечения может заключаться в следующем:

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

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

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


источник
17

Вкратце: разрабатывайте программы, используемые другими для создания чего-либо (например, инструменты).

Популярным и простым примером будет редактор уровней для игры.

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

Марио
источник
6

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

Как программист для нескольких игр с тройным А, я сделал:

  • Создавайте новые редакторы, например, уровень, график и звук, для дизайнеров.
  • Расширяйте, исправляйте ошибки или добавляйте функции в существующие редакторы, например, в Unreal 3 и 4.
  • Написание скриптов и плагинов для пакетов создания цифрового контента (DCC), таких как Maya и Photoshop, например, импорт / экспорт анимации, управление контентом и т. Д.
  • Интеграция контроля версий (Perforce) в инструменты.
  • Модификация инструментов с открытым исходным кодом для встраивания в конвейер.
  • Проверка контента.
  • Освоение финальной игры для приставок.
  • Сборка системы и непрерывная интеграция.
  • Инструменты локализации импорта и экспорта.
  • Изредка пишите новые функции движка и вспомогательные инструменты.
  • Управляемые базы данных с миллиардами записей, например данные о производительности.
  • Облачные вычисления / приложения для фоновых серверов (AWS)
  • ... и т.д

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

Ниже приведено несколько ссылок на IGDA Tools SIG и блог Toolsmiths (International Game Developers - Tools Special Interest Group).

Деннис
источник
1

Сценарий 1: Flash и AS3

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

Например, Flash в основном не обеспечивает идеальное обнаружение столкновения пикселей. Таким образом, вы можете либо написать один самостоятельно, либо попробовать поискать в Google, сделал ли какой-то парень это раньше и представить его как код с открытым исходным кодом. Коллекция исходных кодов в правильно расположенных папках принесет вам пользу в долгосрочной перспективе. Что-то вроде вашей собственной библиотеки.

Сценарий 2 Единства

Точно так же вы можете использовать Unityscript (Unity-версия Javascript) или C # для написания компонентов, небольших небольших инструментов, например, B сплайнов, кривых Безье. Вещи, которые не приходят по умолчанию в единство. Либо напишите один самостоятельно, либо получите его оттуда в Интернете. Они приходят в бесплатных / платных версиях.

Вишну
источник
1
По моему опыту, «разработчик инструментов» в основном нанимается для ААА-студий, которые вы вообще не рассматривали в своих «сценариях».
Стефан ван ден Хеувел