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

3 августа 2004 года Doom 3 появился в магазинах, после 4 лет упорной работы id software, где работают отнюдь не новички в области разработки игр. Из интервью с разработчиками можно понять, что начиная с 2004 года и заканчивая датой релиза, 80 часов в неделю были нормальным графиком и единственный день для отдыха было воскресенье. Будет мало сказать, что игровая индустрия изменилась за последние 20 лет. Doom 3 разрабатывался 4 года командой состоящей из звезд игровой индустрии. Это конечно не рядовой случай, но 2 года на создание игры командой состоящей из 50 или более человек — нормальный случай. В 1984 году на создание игры уходило в среднем 3 месяца при условии, что она создавалась 1 программистом. В лучшем случае, если это была известная фирма, она могла позволить нанять себе 2–3 программистов и художника и потратить на создание игры 6 месяцев.

Так почему сейчас так много времени затрачивается на разработку игр?

На этот вопрос можно ответить по-разному. Игры стали намного сложнее даже по сравнению с теми, что вышли пару лет назад. Создание каждой трехмерной точки в окружающей обстановке занимает в несколько раз больше времени, чем показать пару точек на дисплее Atari 2600 с разрешением 196?160 и назвать это окружающей обстановкой. Или например, создание хорошего звука в формате 5.1 для современной игры требует звукооператора и использование различных библиотек для программирования. Запрограммировать пару гудков намного легче.
Есть еще другие, менее очевидные причины. Раньше программист с текстовым редактором и парочкой программ мог создать нутро игры. Для сравнения, чтобы создать движок, графику и прочие компоненты, необходимые для создания современной игры, программистам и художникам потребуются сложное ПО, такое как 3-d редактор и различные дебаггеры. К сожалению, программисты и художники часто используют неподходящие средства разработки для создания игр.
Специальные средства разработки, такие как разработка для консолей, зачастую бывают нестабильными из-за недолгой жизни практически любой консольной системы. Для разработки игры для нескольких платформ заставляет использовать и знать всю специфику разработки для каждой консоли.
Отличное описание всех этих тонкостей можно найти в статьеGame
Development: Harder Than You Think by Jonathan Blow (Разработка Игр: сложнее чем вы предполагаете) Но несмотря на все это, одна вещь не изхменилась. В 2004 году как и в 1984 большинство игроков покупало игру, играло в нее немного и откладывало ее на полку. За исключением нескольких жанров время на прохождение сингла игры затрачивается совсем небольшое. Количество времени требуемое на прохождение «Super Mario Bros.» и «Metal Gear Solid 2» почти одинаковое. Однако количество времени затраченное на их создание не поддается сравнению.

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

Помогут ли исходные коды в разработке игр?
Открытые исходники работают лучше всего, когда программа необходима в течении долгого времени. Это позволяет пользователям получать пользу от программы в течении долгого времени и обеспечивает возможность стать добровольным разработчиком, что развивает дальше проект. Т.е. интерес общественности к программе продолжает развиваться, когда личный интерес или необходимость в программе у оригинального автора уже отпала. Эффективность открытых исходников и 2 огромных плюса по сравнению со закрытым кодом заключаються в том, что пользователи могут сами улучшить игру и разработчики могут использовать код, который сделан до них. К сожалению, ни один из этих аргументов не играет большой роли в разработке игр. Жизнь большинства игр недолгая. Это нормально. Из-за того, что интерес игроков к одной определенной игры не очень долог, разработка игры с открытым кодом не принесет много пользы.
В большинстве современных игр большую часть работы занимает создание графики и звука, а не программирование. Создание графики и звука сложная работа и невозможно использовать то, что было создано до тебя как в программировании. Вы можете взять готовый код как алгоритм, улучшить его и использовать для решения проблемы. Вы не можете взять готовую музыкальную композицию из старой игры, изменить несколько нот и получить хороший результат. У вас получиться песня, который звучит как испорченная версия оригинала.
Давайте возьмем реальную игру — Doom 3. Могли ли открытые исходники помочь в разработке этой игры?
Художники в id software тратили часы на создание и тестирование каждой комнаты, трубы, коробки или окровавленного трупа в Doom 3. Это сравнимо с временем, которое затратит разработчик в создание и тестирование каждой части математической модели в ПО. Сейчас необходимо, как каждую часть математической модели, протестировать каждую комнату: ровно ли лежат текстуры, правильно ли работают скрипты, подходящая ли сложность и т.д.
К сожалению, «content-based»(Прим. переводчика: имеется ввиду стандартные однопользовательские игры с сюжетом, миссиями и т.д. ) игры «имеют» только 1 жизнь. Пользователь не получит огромного удовлетворения, если он будет проходить через один и тот же уровень для того, чтобы найти минимуальные отличия и возможности.
Разработчик может каждую неделю выпускать новую бета версию и давать ее тестерам, чтобы получить отзывы о том, насколько хорошо были сделаны возможности. С каждой бетой игра становится более удачной.
Однако разработчик получает все меньшую отдачу от тестеров потому, что у большинства пользователей пропадает интерес к игре.
Doom 3 стал более-менее играбельным уже на половине своей разработки. Это означает, что после того, как прошло 2 года в игру, если бы она разрабатывалась открыто, игроки уже могли бы поиграть. 2 года — это большой срок в игровой индустрии. Сложно держать интерес у публики с помощью еженедельных бета-версий, где все изменения заключаются в том, что оружие было tweaked, в середине игры добавили комнату, усовершенствован свет или время загрузки было уменьшено. Это было бы тоже самое, что и заставлять смотреть зрителей в течении 2 лет смотреть один и тот же фильм, где каждый раз изменялось бы пару сцен. Зрителям не только бы не понравилось, но они бы стали ненавидеть фильм после 6 месяцев просмотра.
Другое главное отличие открытого кода — возможность использовать уже готовые куски кода или графики. А теперь представим, что разработчики нашего Doom’a 3 с открытым кодом взяли графику из Doom 2 за основу.Но это не особо полезно. Художник не может загрузить модель импа, сделанного в 1993 году, применить фильтры и получить великолепную трехмерную модель.В разработке игр, единственной сферой, где применение наработок применимо, является программирование движка. Но большинство программистов уже делают так.
Некоторые могут поспорить и в качестве своего аргумента поставить Creative Commons откуда пользователи могут брать графику, музыку и звуковые эффекты.
Но большинству игр необходима музыка, звуковые эффекты и графика специально созданная для нужд игры. Однако результат будет не радужным: игра будет выглядеть и звучать пюре сделанное из сотни картинок и звуков.

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

Когда открытый код подходит для разработки игр?
Конечно, во всем правилах есть исключения. Открытый код конечно не подходит для создания шутеров профессионального уровня, однако он работает в играх с удивительно долгой жизнью. Вот несколько примеров игр с открытым кодом, которые стали очень известными: BZFlag, FreeCiv и FrozenBubble. Сюда же можно включить и всех, тех кто занимается созданием модов для игр.Вот отличный пример когда используют плюсы открытых исходников, while avoiding many of the pitfalls.
Также возможно, что кто-то единолично поставит систему разработок с открытым кодом на ноги. Вот пример такой попытки: HappyPenguin Игра месяца. Каждый месяц добровольцы берут одну игру и пытаются довести ее до состояния готового проекта в наиболее короткие сроки. Для систем наподобие этой открытый код может быть очень полезным.

О авторе:
Адам гейтгей (Adam Geitgey) проффесиональный разработчик и автор игры с открырм кодом SuperKaramba. Отдельное спасибо Шейну Риммеру(Shane Rimmer) за предложения и внимательное чтение.
О переводе:
Статья была переведена kzk.cooper’om.


  1. SvM

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

  2. Джон Кармак

    На практике практически невозможно создать абсолютно универсальный движок, подходящий, к примеру, как для стратегий, так и для шутеров. Все существующие профессиональные движки (Doom, Source, Unreal) имеют очень узкую заточенность и малопригодны для создания игр других жанров, даже при желании.

Name: