Дневник разработчиков №56: Meet the Team
Всем доброго дня. Я Magne «Meneth» Skjæran, программист CK2. В прошлом я написал дневники разработчиков о моддинге, оптимизации и повышении удобства игры. Началось лето, поэтому значительная часть офиса разъехалась кто куда до конца июля, в том числе большая часть команды CK2. Однако шоу должно продолжаться, поэтому в течение этих четырех недель я буду писать все дневники разработчиков CK2. Поскольку нахождение большей части команды в отпуске означает малый прогресс в разработке, поэтому эти четыре дневника будут довольно скупы на информацию о предстоящем дополнении и обновлении, однако несмотря на это я надеюсь рассказать вам о некоторых интересных результатах, информации и забавностях.
Сегодня я напишу о разных ролях, которые исполняют люди в нашей команде, и о том, за что отвечает каждая из этих ролей. На момент написания этой статьи основная команда CK2 состоит из: одного креативного директора, одного руководителя проекта, одного дизайнера, двух дизайнеров контента, одного программиста, одного художника и двух тестеров, обеспечивающих контроль качества. Помимо основной команды, нас также поддерживают головной отдел контроля качества, 3D-художник и целый ряд внешних подрядчиков, а также ряд издательских ролей.
Итак, начнем с головы – с креативного директора.
Игровой директор
Персона: Henrik «Doomdark» Fåhraeus
Henrik Fåhraeus был нашим креативным директором с момента создания CK2, хотя в то время эта роль совмещалась с ролями руководителя проекта и программиста и просто называлась «руководитель проекта».
Задача креативного директора – задать общее направление игры. Основной способ, которым это делает директор, – описать общее представление о каждом дополнении, а также предоставить дизайнеру рекомендации и каркас для работы, которые собираются все в одном документе. В этом документе описывается каждая функция, которую, как предполагается, будут иметь дополнение или патч, с описанием того, что каждая функция охватывает, её цель, насколько она важна, будет ли она бесплатной или нет и какие работники будут задействованы в ее реализации.
Затем игровой директор проверяет состояние игры, чтобы убедиться, что она находится в соответствии с его общим видением и концепцией, что функции реализованы таким образом, чтобы они соответствовали потребностям, которые они должны удовлетворять, и работают так, как задумано.
Дизайнер
Персона: Alexander «rageair» Oltner
Далее, у нас также есть дизайнер. В то время как игровой директор сосредоточен главным образом на всеобъемлющем видении, дизайнер больше внимания уделяет проработке деталей, и хотя здесь есть существенное совпадение с тем, чем занимается игровой директор, дизайнер иногда несёт ответственность за часть облика игры.
Дизайнер превращает документ с общей игровой концепцией в проектный документ; достаточно детально проработанный для того, чтобы он мог быть реализован программистами, контент-дизайнерами и художниками без необходимости постоянно делать предположения о том, как что-то должно работать.
Дизайнер также выступает в качестве основного контактного лица между людьми, внедряющими концепцию, и командой разработчиков (креативным директором и дизайнером). Если дизайн неясен, противоречив или разработчик видит потенциальную проблему, дизайнер является тем человеком, кого следует спрашивать для решения таких проблем.
Руководитель проекта
Персона: Anna «Anona» Norrevik
Пока команда разработчиков решает, какой должна быть цель дополнения / патча, руководитель проекта определяет то, «как» это будет происходить, чтобы максимально облегчить релиз, а также обеспечить соблюдение графика. В рамках этой работы руководитель проекта отслеживает прогресс, достигнутый на пути к релизу, чтобы проверить, что мы находимся на верном пути, и обеспечить, чтобы новые функции не проскользнули в план проекта без веских на то оснований. Если проект отстаёт от графика, руководитель проекта также несёт ответственность за возвращение его в нужное русло. У руководителя проекта есть три основных способа для этого:
Попросить больше ресурсов. Например, если отстаёт написание кода, может быть временно позаимствован программист из другого проекта. В некоторых случаях «больше ресурсов» означает просто больше времени и перенос релиза на более поздний срок, чтобы можно было сделать больше.
Уменьшить объём задач. Зачастую можно сократить функцию до некоторой степени, если просто недостаточно времени. Например, если изначально предполагалось, что новая функция будет иметь шесть связанных цепочек событий, сокращение этого количества до пяти может стать способом вернуть проект в прежний режим.
Вырезать функции целиком. Каждый дизайн первоначально начинается с ряда идей или функций, которые не являются основой общей концепции. Если проект отстаёт, первыми под нож идут именно такие вещи. Например, в процессе разработки «Монахов и мистиков» мы реализовали большое количество улучшений, но было и несколько таких, которые были вырезаны в силу нехватки времени ещё до начала разработки. Однако функции, вырезанные из одного патча или дополнения, часто оказываются в более позднем.
Руководитель производит ряд действий для слежения за ходом реализации проекта:
Оценочные совещания
В начале разработки каждого дополнения руководитель проекта встречается с каждой группой разработчиков (художники, контент-дизайнеры и кодеры). На этих встречах они обсуждают каждый пункт дизайна, группа определяет все задачи, связанные с её специальностью, а также то, сколько времени может потребоваться для их реализации.
Основываясь на этом, руководитель проекта с самого начала может увидеть, действительно ли возможно завершить проект вовремя, и определить, нужно ли уже что-то сократить.
Если позже в концепт добавляются новые функции, то для этих функций также будут проведены короткие оценочные совещания либо лидерами специализированных групп будет произведена такая оценка, чтобы их внедрение могло вписаться в план проекта.
Распределение задач по спринтам
Основываясь на оценках и доступном времени, задачи распределяются по нескольким спринтам. Каждый спринт длится четыре недели, причем первые три посвящены новым функциям, а четвертая неделя посвящена устранению проблем, возникших в течение первых трёх. Задачи разбиты так, что каждый спринт имеет примерно одинаковый объём работы, однако задачи с более значительными рисками запланированы на более ранний этап, чтобы команда имела больше времени для их устранения.
Распределение задач и установка приоритетов
Когда специализированная группа имеет больше одного члена, руководитель проекта несёт ответственность за назначение индивидуальных задач каждому её члену, либо делегирует эту обязанность кому-либо из этой группы.
Руководитель проекта также отвечает за назначение приоритетов задачам и ошибкам, так что остальная часть команды знает, в каком порядке они должны работать над задачами.
Скрам-совещания
Команда CK2 использует методологию разработки скрам, в которой есть три типа совещаний: планёрки (т.е. утренние совещания), обзоры итогов спринта и ретроспективные совещания.
- Утренние совещания. Каждое утро команда собирается для краткого изложения того, что они сделали за предыдущий день и что они будут делать сегодня. Это помогает держать всех в курсе того, что в настоящее время происходит в проекте.
- Обзор итогов спринта. В конце каждого спринта каждый член команды демонстрирует кое-что из того, что он сделал в течение спринта. На этих встречах обычно присутствует несколько человек, не входящих в основную группу, чтобы они тоже могли видеть, как продвигается проект. Это также является возможностью получить отзывы о проделанной работе.
- Ретроспектива спринтов. В конце каждого спринта команда определяет, какие аспекты проделанной работы можно улучшить, а что прошло хорошо. Например, команда может определить, что связь между двумя специальностями улучшилась или что части концепта недостаточно ясны. Выявляются наиболее важные проблемы и составляется план, призванный их решить, чтобы в будущем команда стала лучше.
Дизайнеры контента
Люди: Milla «IsakMiller» Isaksson, Joel «Divine» Hansson, и до недавнего времени Drikus «Bratyn» Kuiper (который сейчас работает над HoI4).
На время лета к нам присоединился также Matthew «blackninja9939» Clohessy из команды Mod of Game of Thrones.
Дизайнеры контента являются частью команды внедрения. Раньше эта роль просто называлась «скриптер», но название в конечном итоге было изменено, так как хотя «скриптер» действительно охватывает кое-что из того, что делает дизайнер контента, но и оставляет очень многое без внимания.
Дизайнеры контента несут основную ответственность за создание фактического содержимого игры, в отличие от работоспособности кода и рисования. Командой разработчиков определяется то, что должно быть добавлено, а проработка деталей, как правило, передаётся разработчикам контента, поэтому их больше и не называют «скриптерами». Дизайн контента означает не только разработку деталей, но и творческое сочинительство, исследование, игровой баланс, совместимость концепций и т.д.
Например, концепция нынешних артефактов, которые были включены в «Монахов и мистиков», была довольно расплывчатой. Один пункт, к примеру, гласил: «Добавить 10-20 важных христианских реликвий. Чтобы сделать их более интересными, они должны быть уникальны и не могут быть уничтожены».
Затем дизайнерам контента пришлось придумывать, какие исторические артефакты нужно включить, сочинить для каждого описание, предложить идеи для иллюстраций, эффекты для каждого и методы их приобретения. Один абзац концепции превратился в сотни абзацев текста события и тысячи строк кода.
Работа дизайнеров контента включает в себя:
- отдельные события и цепочки событий;
- решения;
- общества и другие системы;
- артефакты;
- колоритный текст;
- персонажей;
- титулы;
- религии;
- культуры;
- ещё много всякого.
В отличие от концепции, говорящей что делать, дизайн контента превращает её в готовый продукт и продумывает все детали. Дизайнеры контента также часто улучшают старый контент, например, исправляя ошибки событий, орфографические ошибки или делая цепочку событий более обширной.
Художник
Персона: Bjarne «Grimjotun» Hallberg
Художник отвечает за создание новых иллюстраций для игры. Это в основном проявляется в огромном множестве значков интерфейса, но они также ответственны за общую компоновку каждого интерфейса, а также составляют эскизы и тому подобные вещи, так что собственно интерфейс может быть разработан до завершения его отрисовки.
Например, вот эскиз интерфейса сообщества из проектного документа «Монахов и мистиков»:
Как вы можете сказать, с тех пор многое изменилось, однако общая идея узнаваема в игре даже сегодня. Подобные эскизы неоценимы, когда речь заходит о разработке и повторе ранних версий.
Художник также помогает описать, что требуется от художников, не состоящих в команде. Например, если требуется трёхмерная графика, художник может сделать двумерный эскиз того, что он хочет, чтобы у 3D-художника было что-то, с чем можно было бы работать, и чтобы результат в конечном итоге хорошо вписался в игру.
Все сказанное означает, что художник оказывает значительное влияние на общее художественное направление игры, следя за тем, чтобы новые интерфейсы не выглядели неуместными.
Программисты
Люди: Magne «Meneth» Skjæran и, до недавнего времени, Gwenael «Moah» Tranvouez
Основной обязанностью программистов является создание новых систем на основе проектного документа. Например, система обществ, представленная в «Монахах и мистиках», была создана программистами, сами общества были созданы дизайнерами контента, а иллюстрации для неё – художником.
Для некоторых систем дизайн контента не требуется. Одним из примеров этого являются приказы союзникам в «Монахах и мистиках». Однако для большинства систем задача программистов состоит в том, чтобы создать основу, на которой дизайнеры контента смогут построить реальную конструкцию. В случаях, когда должна быть разработана такая система, программисты обычно встречаются с дизайнерами контента, чтобы обсудить, что им требуется от системы, и согласовывают синтаксис, который будут использовать дизайнеры контента для взаимодействия с запрограммированной системой.
После внедрения дизайнеры контента зачастую обнаруживают функциональность, которая им нужна, но которая не была заложена изначально, и на основе этого программисты будут использовать её в дальнейшем.
Помимо создания новых систем, программисты поддерживают старые системы, исправляя ошибки и внося улучшения. Например, большинство улучшений, внесённых обновлением 2.7, были реализованы программистами, хотя зачастую при значительной помощи со стороны художника.
Другим аспектом поддержки является то, что игра остаётся работоспособной. Это достигается как путём внедрения новых функциональных возможностей таким образом, чтобы они не оказывали существенного влияния на производительность, так и путём проведения оптимизации существующих систем для ускорения их работы.
В целом программисты и дизайнеры контента тесно сотрудничают: программисты обеспечивают работу базовых систем, в то время как дизайнеры контента должны убедиться, что системы действительно разнообразны и интересны в использовании.
Контроль качества
Люди: Arthur «[Arthur-PDX]» Bialecki и Daniel «Tuscany» Moore
Команда дизайнеров выясняет, что надо делать. Руководитель проекта определяет, кто должен это делать, когда и как придерживаться графика. Разработчики создают это.
Контроль качества гарантирует, что оно действительно работает и в него интересно играть.
У контроля качества есть ряд задач. Наиболее известным является простой поиск ошибок, но это далеко не всё, что они делают. Короче говоря, в обязанности контроля качества входит:
- проверка работы новых функций;
- проверка того, что ошибки, отмеченные как исправленные, действительно были исправлены;
- определение новых проблем, созданных для старых функций;
- идентификация проблем со старыми функциями, которые не были найдены ранее;
- предоставление отзывов об игровом балансе;
- предоставление отзывов о том, действительно ли интересно использовать новые функции;
- предоставление отзывов о том, есть ли досадные аспекты игры, которые могут быть улучшены;
- мониторинг стабильности игры (сбои и рассинхронизации);
- мониторинг производительности игры;
- привлечение к проблемам внимания тех членов команды, которые могут их исправить;
- мониторинг форумов для сбора ошибок, которые не были обнаружены при внутреннем тестировании, либо сообщение респондентам о том, что проблема уже известна;
- мониторинг форумов для определения того, что беспокоит игровое сообщество;
- выявление рисков, таких как увеличение количества известных ошибок, ухудшение производительности, снижение стабильности и т.д.;
- определение того, могут ли быть выпущены патчи или же нет.
Помимо собственных тестеров контроля качества команды CK2, PDS в целом также имеет головной отдел контроля качества. Это подразделение используется для определенных типов тестирования, таких как тестирование того, готовы ли патчи к выпуску, а также участвует во внутреннем мультиплеере для выявления проблем, которые возникают только в том случае, если в игре много игроков.
Подрядчики
Помимо внутренней команды, есть также несколько подрядчиков, которые выполняют множество задач по игре, только более ограниченных по охвату.
- Локализация. У нас есть несколько подрядчиков, которые переводят игру на немецкий (shokii), испанский (kgw) и французский (zimxavier) языки.
- Портреты. Наши портреты давно созданы внешним подрядчиком CrackdToothGrin. Вы можете познакомиться с ним на форуме по моддингу CK2.
- Рисунки для событий. Обычно мы нанимаем стороннюю компанию, которая создаёт для нас набор картинок событий каждого дополнения.
- Музыка. Хотя мы сами тоже пишем музыку, но иногда передаем это дело на аутсорсинг.
Подрядчики помогают заполнить области, где объём работы сильно меняется с течением времени или когда работа выходит за рамки наших основных компетенций.
Итоги
Надеюсь, вам понравилось это представление о том, чем занимаются люди в команде CK2.
На следующей неделе я расскажу о жизненном цикле ошибки: от первоначального открытия до выпуска её исправления.
В качестве дополнительного бонуса, вот пять пунктов списка изменений обновления 2.8, выбранных случайным образом:
- Список членов общества теперь содержит счётчик их количества. При наведении над ним указателя всплывающее окно даст вам разбивку по тому, сколько членов занимают каждый ранг.
- Игровое правило гендерного равенства «Все» больше не запрещает получение достижений, хотя вы и не сможете получить достижение «Empressive» при включённом таким образом правиле.
- Исправлено благочестие, дававшее бонус к отношению с любым, кто может владеть храмами, а не только с теократической формой правления;
- ИИ теперь проверяет, чтобы точно узнать, ополчения какого размера он лишит своего сюзерена при восстании, вместо того, чтобы думать «эм, половины моего ополчения, я полагаю?»
- Исправлен расчёт даты окончания строительства поселений в окне подтверждения строительства поселения, не всегда соответствовавшей фактической дате окончания, даже если все модификаторы времени сборки оставались неизменными на протяжении всего строительства.
Автор перевода — Каллиграф
Для просмотра ссылки Зарегистрируйтесь