Что ищут потенциальные работодатели в хорошем портфолио?

21

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

Я много боролся с тем, как начать реальный проект, более конкретно, чтобы создать движок или использовать пакет OTS, или использовать один, затем создать один, или создать один, затем использовать один ... и т. Д.

Что выглядит лучше для потенциальных работодателей? Меньшее портфолио игр, которое включает в себя ваш движок или (возможно) больший, который был построен с использованием чего-то OTS?

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

На работе мы оба разработчики .NET (C #). Я знаю, я знаю, «Ну, тогда используйте XNA», некоторые будут кричать на меня. Демонстрации, которые я закончил, были в XNA. Но у меня есть некоторые проблемы с созданием портфолио XNA. Хотя было бы неплохо абстрагировать DirectX, я опасаюсь, что мне не удастся создать необходимую базу знаний, чтобы легко выйти за пределы XNA. В противоположность этому аргументу, вероятно, «вы можете легче перейти на DirectX после XNA», но, поскольку я перенесу карьеру с развития бизнеса на разработку игр, стоит ли вообще сейчас сосредоточиться на XNA? Или потенциальные работодатели хихикают, когда я говорю XNA?

Должен ли я использовать опыт XNA, зная, что концепции и извлеченные уроки будут в основном передаваться? Или потратить мой самый ценный ресурс (время) еще где?

Нужны советы от ветеринаров любой отрасли.

Джастин Селф
источник
Спросите себя, что вы хотите продемонстрировать больше: гибкость или внимание к деталям. Это твой ответ. Лично я иду за гибкость.
Крис Бёрт-Браун

Ответы:

44

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

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

  1. Подойдет ли этот человек в мою команду? (социальные, гигиенические и др.)
  2. Этот человек быстро учится? (часто неправильно формулируется как «умный ли этот человек?»)
  3. Есть ли у этого человека какой-либо соответствующий опыт, который поможет мне?

Теперь, отвечая на ваш вопрос. Вся эта проблема «какой тип проекта мне следует делать» затрагивает наименее важный из критериев, которые меня интересуют. Меня больше волнует вопрос о том, вписываются ли вы в мою команду в социальном плане, и насколько хорошо вы сможете быстро осваивать новые вещи, чем меня волнует, использовали ли вы XNA или собственный игровой движок в каком-то предыдущем проекте. В общем и целом, я предполагаю, что мне придется обучить вас нашему собственному игровому движку, и поэтому ваши предыдущие проекты не имеют для меня никакого значения. Это, конечно, если у вас нет волшебного опыта работы с конкретным инструментом или технологией, о которых мне нужно, чтобы кто-то знал. Но это необычно; обычно я предполагаю, что мне придется научить вас использовать наш API.

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

Но я хочу, чтобы вы рассказали мне о своих проектах. Я хочу увидеть, насколько вы полны энтузиазма, когда говорите о них, потому что это говорит мне о том, какой вы человек (см. Пункт 1 выше). Я хочу услышать о проблемах, с которыми вы столкнулись, и о том, как вы преодолели их при разработке своего проекта (см. Пункт 2 выше). Я абсолютно хочу, чтобы вы завершили хотя бы один проект - способность преодолеть боль и фактически завершить что-то многое говорит о том, какой вы человек, и говорит мне, что вы тот, на кого я смогу положиться если ("когда") все становится жестким.

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

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

Тревор Пауэлл
источник
3
Это фантастический ответ. Большое спасибо за то, что изменили мою точку зрения на процесс найма.
ультифинит
Возможность использовать стороннее программное обеспечение всегда является большим плюсом, хотя он может быть «быстро учится».
Вальмонд
Я не думаю, что вы когда-нибудь встретите программиста, который не знает, как работать со сторонним программным обеспечением. Все уже пишут в документированный сторонний API, будь то libc, STL, OpenGL, DirectX, Windows API или любой другой. Это те же самые навыки в коммерческой индустрии, но часто используются менее известные библиотеки. :)
Тревор Пауэлл
2
+1 Портфолио не должно соответствовать строгим стандартам. Смысл их состоит в том, чтобы служить почти частями разговора для интервью, чтобы они были интересны с точки зрения программиста.
ChrisC
1
@ShuvoSarker Для крупных компаний это все еще верно. EA не будет ожидать, что вы станете экспертом в их движке Frostbite, когда они собираются нанять вас. Ubisoft не ожидает, что вы узнаете Snowdrop. Это, возможно, изменилось для небольших компаний, однако, за шесть лет, с тех пор как я опубликовал этот ответ. Unity стала достаточно большой силой в пространстве для небольших студий, поэтому очень реалистично думать, что знание Unity, безусловно, может повысить ваши шансы таким образом, что это было не так, когда абсолютно все использовали собственные проприетарные движки.
Тревор Пауэлл
12

Одна вещь, которую другие еще не упомянули, - это то, что важно завершить ваши проекты.

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

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

Яри ​​Комппа
источник
1
Не на 100% уверен, что я согласен, у нас много людей с незавершенными вещами, это очень часто, и это не имеет большой корреляции с качеством их вещей. Завершение чего-то демонстрирует самоотдачу, а не способность.
Крис Бёрт-Браун
Полагаю, каждому свое.
Яри ​​Комппа
4

Мне кажется, что ответ зависит от того, какое программирование игры вы хотите сделать.

Если ваша цель - быть кодировщиком движка или графическим кодировщиком , вам будет полезно заглянуть под капот и узнать, как работают движки. Это не означает, что вы не можете использовать XNA или другой готовый движок, фреймворк и т. Д. Знакомство с внутренностями высококачественного движка - отличный способ научиться создавать высококачественный движок! Если вы идете по этому пути, вам не обязательно даже писать реальные игры. Портфолио автономных графических демонстраций и / или нетривиальных расширений для существующего движка (например, реализация нового шейдера в движке и т. П.) Поможет вам. Вы можете взглянуть на мое портфолио графических демонстраций здесь; это уже несколько лет, но в основном это и дало мне работу по программированию графики в игровой студии.

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

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

Натан Рид
источник
Я ценю ваш ответ. Это дает мне лучшее чувство направления. Я вижу себя больше как программист двигателя. Как вы думаете, что лучше потратить время (основываясь на вашем опыте), чтобы пропустить абстракцию и погрузиться в D3D?
Джастин Селф
1
D3D будет отличным местом для начала. Позже, вы также можете проверить некоторые движки с открытым исходным кодом, чтобы понять, как другие сделали крупномасштабную структуру и организацию. Также полезно прыгать в большую и незнакомую кодовую базу и пытаться понять ее, не читая каждую строку кода.
Натан Рид
Хорошо, ваш ответ в сочетании с Тревором действительно дал мне то, что мне нужно. Позор, я не могу выбрать два ответа; так +1. Спасибо, Натан. Я очень ценю это.
Джастин Селф
2

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

http://leewinder.co.uk/blog/?p=23

Stowelly
источник
1

Не делайте свое портфолио, основываясь на том, как вы воспринимаете «стандарт». Вы должны работать над проектами, которые вас интересуют . Если вам нравится игровая механика, сделайте кучу игр. Если вам нравится создавать интересный ИИ, возможно, сделайте демонстрацию для RTS-подобной установки. В качестве примера я проявляю растущий интерес к графическому программированию и уделяю больше времени изучению концепций рендеринга и их применению в своем движке. (Соответственно, мой игровой проект был временно положен на полку.)

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

ChrisC
источник