Статьи

Технический гейм-дизайн. Когда работают руками

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

Кто такие технические гейм-дизайнеры?

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

  • Прототипирование;
  • Скриптинг уровней;
  • Настройка контента;
  • Разработка простых механик от документации до кода;
  • Создание инструментов для дизайнеров уровней;
  • Ведение переговоров между программистами и другими гейм-дизайнерами;
  • Написание технической документации;

Но надо понимать, что конкретный список задач, который выполняет технический гейм-дизайнер, зависит от трёх факторов:

  1. Компания;
  2. Команда;
  3. Проект;

Так что точного списка, одинакового для всех компаний и проектов, вы никогда не получите.

Кому нужны такие гейм-дизайнеры?

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

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

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

Какие знания необходимы?

В целом, всё начинается с базовых знаний гейм-дизайна:

  1. Написание документации;
  2. Проектирование игровых механик;
  3. Балансировка;
  4. И т.д.;

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

Но это база, которая нужна всегда, а что по другим навыкам?

Английский язык

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

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

Функционал игровых движков

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

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

Какой движок выбрать? Зависит от ваших целей, но выбор весь сводится, на данный момент, к двум игровым движкам:

  1. Unreal Engine — крупные игровые проекты для PC и консолей;
  2. Unity — мобильные игры, от гипер казуальных до мидкор и хардкор;

Программирование

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

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

Как научиться программированию? Эта тема достойна отдельной статьи. Здесь же я ограничусь ссылкой на своё выступление на DevGAMM:

Программирование для гейм-дизайнеров

Главное помнить, что знание программирования:

  1. Не делает вас программистом;
  2. Не даёт вам право говорить программистам как делать их работу;

Системы хранений версий

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

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

Математика

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

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

Во-вторых, теорема пифагора. Это очень важная теорема, т.к. через неё проводится очень много расчётов, которые связаны с векторами.

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

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

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

Тестирование

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

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

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

К сожалению, в маленьких студиях QA редкость и тут выбора особо не будет: придётся самостоятельно проводить тестирование не только своих, но и чужих игровых механик.

Как составить портфолио?

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

С чего начать?

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

Игровой джем от Марка Брауна, традиционно проходит летом.

Как это сделать? Начните участвовать в игровых джемах (game jam). Игровые джемы — это аналоги хакатонов из энтерпрайз индустрии. Вам необходимо за ограниченное время (2 – 3 дня, иногда и больше) сделать игру на заданную тему или с некоторыми важными ограничениями. Игровые джемы не только позволят вам укрепить и продемонстрировать навыки технического гейм-дизайнера, но также поможет лучше понимать важность планирования, оценивать сложность игровых механик, а также научит очень важному скилу для любого гейм-дизайнера — фичекату.

Один из стареших джемов, проходит весной и осенью.

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

Важен ли визуал?

Ваша основная задача — показать, что вы умеете работать с движком, а также что в вашу игру весело играть даже с простой графикой. Проекты в портфолио должны быть легковесными, чтобы их можно было быстро скачать и начать играть. Я рекомендую использовать lowpoly, например из наборов Synty Studios.

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

Где хранить исходники?

Исходники лучше всего хранить на GitHub или GitLab. В целом, принципиальной разницы нет: выбирайте тот, который больше нравится. У меня так повелось, что я использую GitHub.

Самое главное, не забудьте аккуратно оформить README.md. В нём я советую дать ссылки на билд, видео и скриншоты, рассписать короткое описание игры и как в неё играть.

В качестве примера можно посмотреть на исходники HONK III, которую я вместе с командой сделал в рамках Ludum Dare 49.

Где хранить билды?

Самый простой способ хранения билдов — Google Drive. Я не считаю данное место удобным по паре причин:

  1. Сложно оформить хорошее readme с инструкциями, ссылками на исходники, видео, скриншотами и т.д.;
  2. Ограниченное место. Да, можно купить дополнительное, но не всегда хочется тратить деньги на такую вещь. К тому же, таких прототипов может быть много, а их суммарный вес может привести к превышению лимита очень легко;

На мой взгляд, лучше всего прототипы хранить на сайте www.itch.io. Там можно оформить как одну страницу для всех проектов, так и индивидуальные страницы для каждой игры. От вас не требуются глубокие знания дизайна. Главное, чтобы всё было аккуратно.

В качестве примера я приведу:

  1. Свою страницу на сайте;
  2. Страницу игры HONK III;

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

Дополнительные материалы

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

Всегда сопровождайте ваше портфолио:

  1. Видео прохождения;
  2. Скриншотами;
  3. Гифками с геймплеем;

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

Напоследок

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

2 комментария

Добавить комментарий