Разработка компьютерных игр

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Разрабо́тка компьютерных игр — процесс создания компьютерных игр (видеоигр).

Обзор[править | править исходный текст]

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

Разработка наиболее крупнобюджетных игр («AAA-игры») может стоить десятки миллионов долларов США, причем в течение последних десятилетий эти бюджеты непрерывно росли, как и численность команд разработчиков и сроки разработки. Так, в конце девяностых игру для консоли PlayStation в верхнем ценовом сегменте — 60 долларов США для конечного покупателя — могла сделать команда из 10 человек за год, для PlayStation 2 (первая половина 2000-х) необходима была команда из 30-50 человек и два года разработки, к 2012 году речь шла уже о командах из свыше чем 100 разработчиков и срок порядка трех лет. По утверждению Алекса Мура, геймдизайнера из компании Sumo Digital, если бы цена игры для конечного потребителя росла в той же пропорции, игры в 2012 году стоили бы по 1800 долларов США; иными словами, чтобы окупить возросшие бюджеты при сохранении тех же цен в магазинах, компании-издатели должны продавать намного больше копий игр[1].

Средний бюджет ААА-проекта — как правило, речь о играх, выпускаемых крупнейшими компаниями-издателями, продающихся на физических носителях и нередко входящих в состав известной серии из нескольких игр — колеблется от 18 до 24 млн долл. Если речь идёт о продукте для одной единственной платформы, то его стоимость составит около 10 млн долл[2]. Крупнобюджетная игра для двух платформ — Xbox 360 и PlayStation 3 — обходилась в 2012 году в среднем в 20 миллионов долларов, и для того, чтобы она окупилась, нужно было продать около двух миллионов копий[3].

Для российских компаний разработка среднего проекта обходится в среднем от 100 тысяч до миллиона долларов. Стоимость разработки маленьких российских проектов идет от 10 тысяч долларов.[4] Разработку обычно финансирует издатель, хотя последнее время появляются успешные примеры финансовых вливаний из индустрий, не связанных с геймдевом [5] [6]. Процесс разработки обычной современной игры занимает около года, для ААА-проектов может затянуться до 2-3 лет, цикл разработки «казуальных» игр занимает порядка 4-6 месяцев, при том, что идет конвейерная разработка сразу 2-3 проектов. [7]

Специализации[править | править исходный текст]

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

Разработчики графического контента и ассетов (художники)[править | править исходный текст]

  • Арт-директор. Как правило, это наиболее опытный и уважаемый член команды из занимавшихся созданием контента. Его задачей является контроль качества и времени исполнения.
  • 2D-художник. Основная задача 2D-художников состоит в создании двухмерных персонажей для соответствующих игр (флеш-игры, некоторые браузерные игры, игры для социальных сетей и т. д.). Также их работы используются в рекламных и маркетинговых компаниях, при создании сайта игры для взаимодействия с игровым сообществом, для наполнения установщика игры, позволяя им по мере набора опыта становиться или концепт-художником, или дизайнером интерфейса, или 2D-художником в нетрёхмерном проекте, или художником по текстурам.
  • Концепт-художник. Его задачей является отправить чёрно-белые и, возможно, впоследствии раскрашенные наброски на утверждение арт-директору, продюсеру, инвесторам, директорату или службе контроля качества лицензиата сеттинга, чтобы впоследствии донести их идеи и виденье игры до всех остальных художников проекта.
  • Художник по текстурам — очередная специализация 2D-художника, который способен создать текстуру для 3D-модели в соответствии с концептом.
  • 3D-художник. В его задачи входят: создание 3D-сетки моделей зданий и техники в специализированных программах, как то: LightWave, 3D Studio Max, Autodesk Maya, Blender и др.
  • 3D-Художник персонажей. 2 узкоспециализированных подкласса 3D-художников, создающих высокополигональные модели разного рода органики. Зачастую, для уменьшения нагрузки на платформу игры (особенно если платформой является ПК) используется технология так называемого рельефного текстурирования (bump mapping), при которой высокая детализация достигается наложением текстуры рельефа, а не изменением самой модели.
  • Аниматор или mocap studio. более старым методом создания движения является key framing, который до сих пор используется для анимирования негуманоидных монстров, техники, и нереальных для исполнения живым актёром движений. mocap является более современным методом, дающим более плавную и реалистичную картину движения гуманоидного персонажа
  • Художник спецэффектов.

Дизайн (геймдизайнеры)[править | править исходный текст]

  • Ведущий дизайнер — помимо генерации и развития основной идеи, его задачей является координация работы остальных дизайнеров. Его работа построена на тесном взаимодействии с арт директором и ведущим программистом и заключается не только в добавлении идей в игру, но и в определении того, что стоит в неё вносить. Помимо этого он выполняет задачи, с которыми не в состоянии справиться дизайнерская команда.
  • Дизайнер игровой механики. Как правило он в прошлом был программистом и представляет как идеи превращаются в код. В задачу дизайнера по механике входит, получив идею от ведущего дизайнера, пообщавшись с дизайнером миссий или уровней, составить список требований программистам. А дальше многократно проигрывая отдельные фрагменты игры, получить представление, насколько их понимание игровой механики сбалансировано.
  • Дизайнер миссий или уровней. Им может быть скриптовик, пишущий код для встроенного в игру интерпретатора, или художник, создающий игровую карту в редакторе уровней, или кто-то ещё, просто описывающий на формальном языке, из чего должен состоять уровень.
  • Дизайнер UI разрабатывает функционал пользовательского интерфейса, иногда собирает его из контента предоставленного художниками с помощью инструментов, сделанных программистами.
  • Сценарист — в отличие от писателя или сценариста в кино его повествование должно быть интерактивным и, как следствие, он должен постоянно обсуждать дальнейшее развитие сюжета с дизайнерами, чтобы определить, что возможно сделать на скриптовом языке, в редакторе карт и иных утилитах. Как и коллеги по литературе и кино, он должен владеть родной речью и литературным языком, этот талант сродни музыкальному слуху, позволяет тону и словам, произносимым игровыми персонажами, звучать реалистично.

Звук[править | править исходный текст]

  • Инженер по звуковым эффектам — ищет нужный звук в библиотеке, либо записывает новый с натуры, либо синтезирует подходящий из одного и более существующих
  • Композитор — создаёт или синтезирует музыкальное оформление для игры
  • актёры озвучивания — озвучивают персонажей

Контроль качества (тестеры)[править | править исходный текст]

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

  • QA (контроль качества) команда издателя — как и все отслеживают дефекты в контенте и баги, как правило указывая при этом какие баги править в первую очередь, наиболее жёстко из всех следят за тем, чтобы разработка укладывалась в график
  • QA основная — внутренняя команда разработчика, оценивает одиночный режим игры
  • QA мультиплеер — если игра будет позиционироваться как мультиплеерная, то создаётся отдельная команда, которая им занимается
  • QA внешняя — чтобы получить независимый взгляд, иногда оплачиваются услуги профессиональных тестировщиков аутсорсеров, т.к. они не участвовали в разработке, у них лучше получается выявлять баги в кривой обучения игрока
  • QA совместимости — если игру помимо консолей планируется выпустить на ПК, её гоняют на нескольких десятках самых различных конфигураций; проверяется правильность настроек производительности и поддержка основной массы «железа»
  • QA локализации — проверяется качество перевода
  • бета-тестеры — это неоплачиваемые фанаты будущей игры, которые захвачены идеей её улучшить ещё до релиза, в случае откровенно слабого тайтла издатель может принять решения об отмене бета-тестирования, т.к. помимо того, что оно в любом случае удлиняет сроки разработки, в данном случае оно ещё и не позволяет «продавить» рынок под эту игру увеличением маркетингового бюджета. Единственным исключением здесь являются массивные многопользовательские игры, которые в силу специфики их монетизации в любом случае выигрывают от бета-тестирования
  • управляющий бета-тестированием — как правило это линейный продюсер или сопродюсер, которому достаётся наиболее стрессовая часть общения с фанатами, которые обычно очень эмоционально описывают баги и требуют новые фичи.

Программирование (инженеры)[править | править исходный текст]

  • ведущий программист — до 90-х гг мог быть единственным программистом, как правило, это программист с наибольшим опытом, и не обязательно руководитель, т. к. иногда управление кодингом перекладывается на технического директора, которому отчитываются руководители отделов
  • технический директор — в крупных компаниях отвечает за качество кода и архитектурных решений (соблюдение стандартов, возможность повторного использования и т. д.) сразу на нескольких проектах
  • программист игровой механики — именно от него зависит, как игрок и сущности взаимодействуют друг с другом, будь то удар меча по ящику или выстрел пушки, раскидывающий всех по округе
  • 3D-программист — от него зависит отображение мира на экране, поэтому от него требуются глубокие познания в векторной алгебре, численных методах, тригонометрии
  • программист AI — требования к нему сильно размыты при переходе от одного к другому жанру; именно он предоставляет возможность дизайнеру уровней задавать через триггеры и скрипты ответ окружения, мобов, NPC на действия игрока
  • программист UI — создаёт пользовательский интерфейс, позволяющий данным с HUD воздействовать на игровую механику, будь то выбор меню или осмотр карты
  • программист инструментов (утилит), в т. ч. редактора уровней — наиболее трудоёмкая должность, но именно он экономит основную часть времени художников и дизайнеров, делая более производительные редакторы моделей, уровней, триггеров, игровых параметров и прочего контента
  • программист сетевого кода — создаёт сетевой движок игры для поддержки мультиплеера, кооператива, скачивания обновлений и т.д.

В последнее время программистов часто называют инженерами (от английского software engineer).

Управление (продюсеры)[править | править исходный текст]

  • линейный продюсер — решает повседневные вопросы компании, начиная от заказа ужина для заработавшихся работников и прохладительных напитков в жаркий день, заканчивая рассылкой свежих билдов бета-тестировщикам и издателю, следит за тем, чтобы разработчики не слишком много рабочего времени уделяли «изучению» продукции конкурентов
  • сопродюсер (associate) — как следует из названия, объединяет работу нескольких команд или офисов, отвечает за обновление и доведение планов до участников команды, отчитывается за их выполнение перед начальством
  • исполнительный продюсер — отвечает за составление планов и их своевременное исполнение в контексте бюджета, ведёт переговоры с инвесторами, издателями, заключает сделки со сторонними разработчиками, решает кадровые вопросы

Другие специальности[править | править исходный текст]

При разработке ММО возникает необходимость в поддержке проекта, что влечёт за собой появление дополнительных специальностей — операторский отдел, платёжный отдел (и создание платёжной системы), гейм-мастера, отдел продаж, рекламный и т. д.

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

Процесс разработки[править | править исходный текст]

Процесс разработки игры меняется в зависимости от компании и проекта. Однако разработка коммерческой игры обычно включает следующие этапы:

Предпроизводственный процесс (препродакшн)[править | править исходный текст]

Ранние стадии разработки игры часто характеризуются низким качеством графики. Особенно это справедливо для различных игровых прототипов.

Обычно перед началом разработки любой игры должна сформироваться идея, а издатель/разработчик должен дать «зелёный свет».

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

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

Представителем проекта обычно является геймдизайнер, но им также может быть человек из игровой индустрии любой другой должности. Перед началом полномасштабного производства геймдизайнер должен написать дизайн-документ — подробный документ, описывающий концепцию и геймплей. Также он может содержать некоторые предварительные скетчи различных аспектов игры. Некоторые геймдизайнеры включают в дизайн-документ даже примерный рабочий прототип, демонстрирующий одну или несколько сторон игры. Обычно дизайн-документ объединяет в себе все или большую часть материалов начального замысла. Основная особенность дизайн-документа — это его «живость» — в действительности он не будет завершён до тех пор, пока игра находится в разработке. Он может изменяться каждую неделю, иногда — каждый день. Поэтому, даже если дизайн-документ должен существовать в некоторой форме перед началом полномасштабного производства, он почти никогда не является завершённым дизайном, хотя может описывать многие аспекты всех стадий полностью спроектированной игры.

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

Производство[править | править исходный текст]

На этапе основного производства выполняется огромный объём работ. Программисты пишут исходный код, художники рисуют графику (спрайты или 3D-модели игровых элементов). Звукооператоры разрабатывают звуковые эффекты, а композиторы пишут музыку для игры. Дизайнеры уровней создают уровни, а писатели пишут диалоги для скриптовых сцен и неигровых персонажей.

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

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

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

Поддержка[править | править исходный текст]

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

Аутсорсинг[править | править исходный текст]

Некоторые аспекты производства видеоигр, такие как создание и подбор музыки и звуков, актёрская озвучка или захват движения, зачастую требуют крупных и не всегда целесообразных финансовых вложений, если выполнять их силами самого разработчика (это может быть эффективным только в том случае, если разработчик создаёт несколько игр одновременно и имеет внутренние отделы для реализации конкретных задач). Нанимать сотрудников в штат для выполнения этих задач компаниям не выгодно, поэтому абсолютное большинство разработчиков прибегают к услугам соисполнителей для выполнения части своего проекта — отдают их на аутсорсинг.[8][9]

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

  • Программирование обычно не отдают на аутсорсинг. Однако, некоторые модульные инструменты, такие как видео-компрессор или редактор уровней могут быть отданы другой студии на разработку.[10]
  • Цены на создание музыкальных треков разнятся в стоимости в зависимости от длины, метода произведения (синтез или живое исполнение) и опыта композитора. В 2003 г. минута высококачественной синтезированной музыки стоила $600-1500; 60 минут музыки для игры с 20 часами геймплея могли обойтись издателю в 50-60 тыс. долларов.[11]
  • Актёрская озвучка как аспект производства хорошо подходит для аутсорсинга, т.к. требует набор конкретных узкоспециальных навыков. Лишь наиболее крупные издатели принимают актёров озвучивания в штат.
  • Студии для захвата движения (motion capture) очень дороги и сложны в постройке, поэтому небольшим компаниям нецелесообразно иметь собственные студии для захвата движения, гораздо выгоднее воспользоваться услугами компаний-аутсорсеров.

См. также[править | править исходный текст]

Примечания[править | править исходный текст]

Ссылки[править | править исходный текст]

Сайты, посвящённые разработке компьютерных игр:

Русскоязычные
Англоязычные