Каковы типичные ежедневные задачи программиста игр начального уровня? [закрыто]

64

Я хотел бы знать следующее: каковы ежедневные обязанности программиста на рабочем месте в игровой индустрии? Это в основном кодирование, анализ, проектирование или что?

Спасибо.

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

kymully
источник

Ответы:

103

Исходя из моего опыта (в Соединенных Штатах, нанятый из колледжа на проект, который только что вышел из прототипирования и был командой из 50 человек, затем был отменен, а затем мы продолжили делать еще две игры в течение четырех лет, которые я был там с общей базой разработчиков около 200),

  • Вероятно, вы потратите около 50-70% своего времени на программирование. В это время я включаю «забавные вещи», такие как создание действительно умной функции, а также время, когда вы смотрите на дамп памяти в течение 8 часов подряд, пытаясь выяснить, что вылетело. Может быть, 25-50% этого факта - это длинное программирование сидячего на клавиатуре и получай в зоне.
  • Еще 15-25% на собраниях и административных задачах, таких как сортировка ошибок, встречи по сортировке ошибок, планирование, высокоуровневая документация для других программистов и производителей, электронная почта, обновления статуса всего проекта / компании и так далее. Это зависит от того, насколько у вас есть автономия - если у вас нет автономии, вы будете тратить больше времени на программирование, потому что будете тратить меньше времени на настройку своего собственного расписания. Если вы будете больше контролировать свой график, вы можете заняться более интересными вещами, но тогда вам придется потратить время на выполнение этих вещей.
  • Еще 15-25% помогают дизайнерам / художникам, посещают творческие встречи, посвященные игре, следят за документами по дизайну игр и так далее.

По мере того, как вы повышаете уровень заработной платы, время, которое вы тратите на программирование, вероятно, будет сокращаться . Вам придется принимать больше административных решений, обращаться за помощью к менее опытным людям в команде и тратить больше времени на изучение документации и кода / архитектуры. С другой стороны, качество программирования, вероятно, повысится; вы будете работать над более интересными функциями (и более расстраивающими ошибками).

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


источник
Не совсем так, как я это помню, но это помогает, когда ваш партнер по обучению на самом деле учит вас ;-)
coderanger
@coderanger: Я не думаю, что кто-либо из нас получил большую помощь от нашего партнера по обучению. ;)
26

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

  • Как правило, вы будете использовать какой-либо инструмент отслеживания ошибок или отслеживания задач, который будет использоваться вашим руководителем для назначения вам задач. Иногда они одинаковы (например, FogBugz). Иногда ваш список ошибок будет через издателя, а ваш список задач находится на внутренней вики. Вы не просто садитесь и начинаете делать что угодно , ваши задачи будут направлены.
  • Иногда вам будет предложено оценить ваши задачи. Это подразумевается при использовании таких систем, как FogBugz. Часть ваших обязанностей будет / должна / может состоять в том, чтобы разбить функцию более высокого уровня на части, которые вы можете использовать, чтобы правильно оценить, сколько времени потребуется для того, чтобы увидеть, как вы на пути к завершению этапов и т. Д.
  • Многие студии перешли на более гибкие методики в стиле scrumm. Обновление таблиц выгорания (то есть, если вы потратили X часов на задание Y и ожидаете, что оно будет выполнено за Z раз) довольно распространено. Ежедневные регулярные встречи, вероятно, немного более распространены. В любом случае вы будете предоставлять некоторую информацию о том, над чем вы работаете.
  • Вы будете использовать контроль версий / исходного кода. Чем больше студия, тем больше вероятность, что они будут использовать Perforce. Вы должны знать об этом (проверка файлов, фиксация файлов, возможность разрешения локальных конфликтов слияния). Вас также могут попросить понять ветвление и слияние ветвей. Некоторые студии работают там, где все разработчики получают свои локальные филиалы, и вы можете регистрировать столько, сколько хотите, и объединять их в своем филиале. У других (наших) студий просто есть политика «не нарушать основное», поэтому вы должны убедиться, что вы обновляетесь, сделать быстрый тест, чтобы убедиться, что вы ничего не сломали, а затем зарегистрироваться. Некоторые студии не имеют эта политика и люди постоянно ломают дерьмо, и это очень раздражает, и вы должны научиться обходить это.
  • Обзоры кода довольно распространены. Иногда они для всего отдела кода. Наша команда использует подход «приятель по коду», при котором он больше подходит для проверок проверок. В любом случае вам следует ожидать, что вас попросят предоставить критический анализ кода других людей.
тетрада
источник
11

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

Многое из того, что я делал, также было связано с информационными технологиями. Разработка внутренних инструментов была большой вещью - некоторые напрямую помогали разработчикам игр, некоторые автоматизировали вещи, которые были сделаны ранее вручную. И, конечно же, исправления ошибок для других инструментов, включая установщик Microsoft Games for Windows Live.

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

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

Мэтью Рид
источник
4

Мой последний год проекта на холсте HTML5. В настоящее время я работаю над стажировкой в ​​течение последних двух месяцев, где мне нужно перенести существующую флеш-игру на HMTL5 canvas.

Из того, что я могу рассказать вам о моей жизни здесь, ну это сложно. У команды требований есть очень определенные требования. Что должен делать щелчок мыши, как, как эффекты должны применяться к игре. Независимо от того, насколько это тяжело для программиста, даже для самого глупого запроса, его нужно решать и после того, как все требования будут выполнены. Начало сообщения об ошибках. Бог это раздражает. Это действительно начинает действовать вам на нервы. Смещение в 1 пиксель за клик может сделать вашу жизнь адом, поверьте мне! Это может означать новое структурирование всего пространства позиционирования и взаимодействия, которое вы могли бы приспособить к их прихотям и фантазиям.

Но это также весело! :) Сама радость от написания этой действительно умной функции, взаимодействующей с сообществом в том, как вы можете воссоздать функцию, которую Flash выполняет автоматически. Все это. В такие времена ты не жалеешь о том, что у тебя есть такая работа. Это похоже на лучшую работу в мире, а для моих племянников - самую классную в мире.

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

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

Shouvik
источник