Время от времени меня спрашивают, почему я настаиваю на важности изучения того, как работают шейдеры.

Я понимаю, откуда исходит этот вопрос.

Это неправильный вопрос. Настоящий вопрос: «Почему вы настаиваете на изучении того, как все работает?».

Почему вы настаиваете на изучении того, как все работает?

Unity, Unreal и подобные значительно упростили задачу для новичков.

Вы можете закончить игру, даже не зная, что существует что-то вроде шейдеров.

Что ж, они, вероятно, знают, что там есть, но никогда не утруждают себя изучением того, как они работают.

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

Посмотрите на экосистему библиотеки JavaScript, чтобы понять, что я имею в виду.

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

Большинство разработчиков никогда не заглядывают, что внутри.

УТОЧНЕНИЕ. Я не говорю, что использовать библиотеки неправильно. Это было бы бессмысленно. Я хочу сказать, что если мы не знаем, как работает библиотека внутри, мы находимся на пути к судному дню.

То же самое и с Asset Store Unity. Его даже рекламируют как «средство экономии времени». В каком-то смысле это так, но это не только позволяет сэкономить время, но и сэкономить время.

Проблема в том, что разработка черного ящика в играх довольно рискованна:

Наши игры должны работать со скоростью 60 кадров в секунду (если не больше).

Это оставляет нам всего ~ 16 мсек на рендеринг. Обычно времени достаточно, но иногда его нет. Что нам делать, если это не так?

Кроме того, мы привыкли работать с компьютерами с таким большим объемом оперативной памяти, что в большинстве игр она не заканчивается. Если вы не пользуетесь мобильным, встроенным или ограниченным оборудованием.

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

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

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

Используйте Asset Store, используйте все инструменты, которые есть в вашем распоряжении, но узнайте, как все работает.

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

Для начала вы должны знать, как ответить на эти вопросы:

  • Как работает видеокарта? Зачем он нам нужен? В чем разница между процессором и графическим процессором?
  • Почему что-то может выделять так много динамической памяти каждый кадр? Почему это плохо?
  • Что означает частота дискретизации аудиофайла?
  • Что такое аффинное преобразование?
  • Что такое кеш ЦП? Как я могу это использовать?

Список можно продолжать бесконечно долго, но если вы не можете ответить на эти вопросы, я предлагаю вам начать тратить время на обучение. Проведите время, чтобы поправиться. Почему?

Случай для выздоровления

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

Согласно теории самоопределения, человеческая мотивация (и, как следствие, счастье!) Определяется тремя основными факторами:

  • Автономность: вам нужно чувствовать, что вы можете самостоятельно определять, что делать, что у вас есть выбор и вы принимаете решения.
  • Связь: вы должны чувствовать связь со своими мотивами.
  • Компетентность: нужно испытывать трудности. Вы должны чувствовать себя ценным для дела, над которым работаете.

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

Автономность страдает от разработки черного ящика, потому что вы привязаны к проектным решениям других: Unity, создателя ресурсов и т. д.

Компетентность страдает, потому что вы не понимаете, как все работает, и, следовательно, не становитесь более ценным.

Последующий вопрос может заключаться в том, почему я хочу стать ценным?

Теория карьерного капитала

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

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

Когда я прочитал эту книгу много лет назад, многие вещи, которые я чувствовал в течение своей жизни, сразу же щелкнули.

Вот почему так важно быть хорошим и понимать, как все работает.

Отлично разбираясь в своем деле, вы сможете работать над самым интересным.

Вас будут окружать самые интересные люди.

Вам никогда не будет скучно, и вы будете полагаться на пустые вещи, чтобы убить время.

Это важно, потому что ведет к счастью.

Зачем ты все это пишешь?

Я буду искренним. У меня есть скрытый мотив. У всех есть.

Я хочу, чтобы как можно больше людей знали, что я делаю.

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

В настоящее время я провожу розыгрыш перед запуском моей третьей книги. Приз - годовая подписка на Unity Plus. Это дает вам доступ к Unity Learn Premium.

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

Надеюсь увидеть тебя там!