Бесплатный сыр геймдева
По интернету бродит призрак коммунизма. Причем уже не первый год. Речь идет об Open Source , бесплатных программах с открытым исходным кодом, которые может изменять и переписывать любой желающий. Вокруг подобных проектов образуются сообщества энтузиастов, которые совместными усилиями улучшают бесплатный софт — каждый берет, сколько хочет, и отдает столько, сколько может. По этой схеме разрабатываются в том числе и бесплатные игровые движки. Для начинающих игростроителей это открывает хорошие стартовые перспективы. Ведь современные игровые движки чаще всего стоят денег, и немалых. А тут предлагают полный набор удовольствий, да еще бесплатно.
Но так ли все просто? Всем известно, как дорого порой обходится бесплатный сыр в мышеловке. Сегодня своими соображениями по поводу игровых движков с открытым программным кодом с нами поделятся:
rudybear — Алексей Медведев , ведущий программист CryENGINE , Crytek Studios ;
tool — Алексей Пациорковский , продюсер компании 2RealLife ;
shodan — Андрей Аксенов , технический директор SkyFallen Entertainment ;
ALexusB — Алексей Бобровников , программист и геймдизайнер « Акеллы »;
zakker — Александр Зеберг , технический директор компании Katauri Interactive ;
Amicus — Петр Прохоренко , руководитель проектов и продюсер Lesta Studio.
Представители «Игромании» — Владимир Болвин , Алексей Макаренков и Светлана Померанцева — метались в сомнениях. С одной стороны, хотелось бесплатного Open Source и побольше. С другой — продать сделанное на основе этой халявы и подороже. К сожалению, последнее явно не вписывалось в идею открытого программного кода.
Открытое, бесплатное… но не всегда
[Игромания]: Что такое Open Source и как вы относитесь к идеологии открытого софта? К примеру, некоторые пренебрежительно называют свободно распространяемые продукты коллективной деятельности «кодовой помойкой», а другие видят в них «светлое будущее» индустрии.
[shodan]: Оба подхода однобоки. Бывают помойки, а бывает отличный софт, работающий не хуже коммерческих аналогов. С другой стороны, очевидно, что все программное обеспечение в мире никогда не станет бесплатным и открытым.
Open Source часто путают с полной бесплатностью всего на свете. Причина путаницы в том, что софт с открытыми исходниками часто бывает бесплатным, это во-первых, и распространяется под лицензией, позволяющей многое бесплатно, это во-вторых. Однако кое-что следует прояснить:
— Открытость, то есть наличие исходников, вовсе не означает бесплатность самого софта. Некоторые весьма недешевые библиотеки могут поставляться в виде исходного кода, фактически как Open Source. Например, библиотека FMOD — при покупке коммерческой лицензии за $3000 к ней прилагаются исходники.
— Бесплатность самого софта не означает, что возможно его бесплатное коммерческое использование. Все зависит от лицензии. Например, есть BSD-лицензия (Berkeley Software Distribution), она подразумевает, что код можно смело использовать в закрытой коммерческой игре. А вот в случае с GNU GPL (General Public License) ничего такого сделать уже нельзя. Этот вариант требует, чтобы исходные коды были открыты и пользователь имел право передавать программу третьим лицам совершенно бесплатно.
А вообще к идее Open Source я отношусь крайне положительно. В нашей студии мы успешно используем довольно много бесплатных программ с открытым кодом. Правда, приходится перекраивать его под себя, но для программистов это не проблема.
[tool]: Как правило, имеет смысл внимательнее читать лицензии к программам с открытым исходным кодом — они достаточно жестко регулируют, что вам можно делать и на каких условиях. Вы сами удивитесь, насколько много существует ограничений.
[ALexusB]: Добавлю свои пять копеек. Многие путают с Open Source еще и программы и движки с закрытым кодом, но открытыми заголовками. Объясню, о чем речь. Допустим, тот же самый звуковой движок FMOD. За его использование в бесплатных проектах никто не будет требовать от вас денег. Причем зачастую его используют и во время разработки коммерческих проектов, причем на ранних этапах — потом звуковой движок могут и поменять. Но при этом доступа к исходникам у вас нет.
Заплатив же примерно $3000, вы дополнительно получите 15 Мб кода, в котором, если начистоту, что-то править будет только помешанный на оптимизациях энтузиаст. То есть на деле исходники серьезных движков в большинстве случаев не нужны. Вполне достаточно инкапсуляции: что внутри, знать совершенно необязательно. Но! Иногда требуется поправить одно малюсенькое условие, которое важно для вашей игры. Всего-то дописать пару строк кода. И тогда деваться некуда — без исходников не обойтись. Так что не думайте, будто разработчики, получив доступ к исходным кодам, переписывают его процентов на 90. Иногда приходится платить, лишь бы исправить два-три оператора.
[zakker]: «Кодовая помойка» и «светлое будущее» — это крайности. Open Source — это просто одно из направлений развития софтостроения, со своими плюсами и минусами. Самый очевидный плюс — доступность таких движков. Скачал — и пользуйся на здоровье. Однако сделанное на них далеко не всегда можно продать (чаще всего вы тоже обязаны распространять такие продукты бесплатно).
[rudybear]: Лично я отношусь к Open Source спокойно. Существуют очень приличные и качественные проекты, не уступающие коммерческим аналогам. Скажем так — это хорошая альтернатива платным продуктам, налицо здоровая конкуренция.
Стальные огры
[ALexusB]: По поводу Open Source есть мнение, что, если это бесплатное, значит, нельзя продать, значит, качество не то. Пойдем в соседнюю лавку и, как в том анекдоте, купим галстук в тысячу раз дороже.
Но есть и идейные разработчики, которые делают качественно, на совесть, и делятся со всеми нуждающимися. Но даже идейные товарищи должны чем-то питаться и зарабатывать хотя бы на хлеб. Тут бывают разные варианты. Если Open Source занимается коммерческая структура, то, скорее всего, под этой маркой они так хитро тестируют свои наработки. Ведь все копирайты им все равно не принадлежат, а так люди корпят и дорабатывают их код «за бесплатно». Энтузиасты же занимаются разработкой в свободное время из чистого интереса, а на жизнь зарабатывают чем-то другим.
Если говорить об играх, то, несмотря на широкий ассортимент бесплатных движков, лучше выбирать условно-бесплатные, а еще лучше — платные. Потому как принцип у бесплатного почему-то всегда один и тот же: дареному коню в зубы не смотрят. Чего дали, тому и радуйтесь. Иногда, правда, случаются исключения, разработчики идут навстречу — могут что-то подправить или изменить по вашей просьбе. Но это редкость. Вы ничего не можете требовать от авторов бесплатных движков.
Конечно, можно начинать разработку своей игры на бесплатной технологии. Но если в планах заработать на игре денег, то нужен сертифицированный со всех сторон инструмент. Потому как западных издателей будет интересовать его происхождение. И узнав, что с генеалогией у движка все в порядке — брендовый, весь в стандартах, — пойдут на контакт значительно охотнее. И это их право, тут дело в соблюдении авторских прав, совместимости с новым железом, современными операционными системами, последними библиотеками DirectX и так далее и тому подобное.
Бесплатному софту такие возможности не по плечу. Движки с открытым кодом зачастую отстают от современных технологий на два, а то и четыре года. С другой стороны, если игра не слишком требовательна по технической части (головоломка, квест, небольшая стратегия), бесплатный движок может оказаться тем, что доктор прописал.
На что сгодится?
[Игромания]: Разработка игрового движка — дело дорогостоящее. Откуда же берутся бесплатные, свободно распространяемые движки? Если никто не просит за них денег, значит ли это, что они негодны для разработки серьезных компьютерных игр?
[rudybear]: Нет, не значит. Они вполне пригодны для определенного круга задач. Достаточно большое число игр выросло именно из бесплатных движков.
[shodan]: Вообще, открытый софт может быть как коллективной разработкой какого-то сообщества, так и бизнес-моделью, преследующей вполне себе коммерческие цели. Ярчайший пример — компания MySQL , которая раздавала СУБД (софт для работы с базами данных), свой основной продукт, бесплатно, причем со всеми исходниками. Но это не мешало ей зарабатывать серьезные деньги на поддержке, а потом продаться компании Sun Microsystems за $1 млрд. Качественный СУБД-движок сделать сложнее, чем большинство движков игровых.
Бесплатные игровые движки, как правило, разрабатываются группами энтузиастов в нерабочее время. О компаниях, которые раздавали бы игровой движок за «здорово живешь», пытаясь заработать на технической поддержке, я не слышал.
[tool]: Деньги на бесплатных движках можно зарабатывать не только за счет платной поддержки. Пользователей freeware часто используют в качестве бета-тестеров уже для коммерческих разработок на той же платформе. Если кто-то думает, что это коммерчески невыгодно, то этот кто-то сильно заблуждается: на всестороннее тестирование могут уйти тысячи долларов.
[zakker]: Разработка операционной системы стоит еще дороже, но они тоже бывают бесплатные. С движками то же самое. Бесплатных и с открытым кодом хватает, игр на них тоже выходит довольно много — вот только ААА-тайтлы среди них редкость, обычно это игры второго эшелона. И, конечно, не забывайте про имидж. « Игра на новейшем Unreal Engine » и « игра на бесплатном Daybreak motor » — чувствуете разницу?
Нас не догонят
[Игромания]: Используются ли в платных движках компоненты, алгоритмы или части кода из бесплатных движков? В каком случае заимствование чужого кода могут посчитать нарушением авторских прав (и можно ли это заметить по самой игре, не имея на руках исходников)?
[rudybear]: Компоненты — вряд ли, а вот алгоритмы — вполне. Но сам по себе алгоритм в большинстве случаев нельзя задействовать напрямую. В смысле, никогда не получается просто взять кусок кода и куда-то его вставить. Все равно приходится вносить серьезные изменения, так что от исходного кода остается только идея да несколько переменных.
[shodan]: Используются, конечно. Например, писать свою собственную плохонькую библиотеку для сжатия ресурсов долго и нудно, особенно если знаешь, что существует доступная и прекрасно работающая zlib. Установить же наличие чужого кода без исходников сложно, но вполне реально.
[tool]: В платных движках могут использоваться библиотеки с открытым программным кодом, если это разрешено лицензией, а вы согласны с ее условиями и соблюдаете их. Если условия не соблюдаются, то это нарушение авторских прав. Когда вас поведут в суд, то вы сами предоставите исходники для анализа, поэтому сложности с обнаружением чужого кода в самой игре не имеют никакого значения. Это уже не поможет.
[ALexusB]: Microsoft до сих пор судится по этому поводу. Очевидно, втихаря все берут «что плохо лежит», и доказать это очень сложно. Можно сказать одно — утащить что-то из закрытого движка значительно труднее, чем из Open Source.
[zakker]: На мой взгляд, без анализа исходного кода выяснить, украдено что-то или нет, невозможно. Отсюда простой вывод — использование в платных движках части кода от бесплатных исключительно на совести разработчиков.
Доказать факт заимствования, не анализируя исходники, можно сравнивая результаты работы алгоритмов. Только это чрезвычайно сложно, а главное — нужно заранее знать, что в движке есть чужой код. Вот если знаешь, то найдешь. А просто так заметить не получится.
[Игромания]: Некоторые команды открыто говорят, что в своих играх брали за основу свободно распространяемые игровые движки. Другие же всячески открещиваются от подобного родства. Почему?
[zakker]: Сообщать об этом или не сообщать — дело руководства. Те, кто не скрывают, возможно, считают, что тем самым рекламируют свои игры. Другие, наверное, не видят в этом какого-либо смысла (а может, и правда, ничего постороннего не использовали).
По опыту могу сказать, что совсем обойтись без чужого кода практически нереально. Слишком уж много требуется от современной игры: передовые алгоритмы, поддержка безумного количества форматов данных и тому подобное. Вопрос только в том, соблюдались ли при этом все необходимые формальности — к примеру, указание авторства.
[ALexusB]: Амбиции и цели у всех разные. Команде, которая круче вареных яиц, не с руки что-то брать с «кодовой помойки». Или признаваться в этом. Оно им надо?
Начинающая команда, заявляя « мы использовали широко известный Irrlicht », наоборот, хочет сказать, что хоть игра от начинающих, но сделана на хорошо проверенном движке, над которым работало 20 человек восемь лет кряду и на котором сделана уже не одна сотня игр.
[Amicus]: Ну, не знаю… Если все правильно объяснять, то становится очевидно — в использовании бесплатных движков нет ничего зазорного. Все равно это не дает больших преимуществ — слишком уж многое придется делать самостоятельно.
Стальные огры
[Игромания]: На какие бесплатные движки вы бы посоветовали обратить внимание начинающим командам?
[shodan]: На те, которые лучше всего знают ваши программисты и которые могут реально сэкономить ваше время.
[ALexusB]: Я бы посоветовал Nebula 2 , OGRE и FMOD для звука. К примеру, в 2007 году на Nebula в России вышла вполне себе коммерческая игра « Легенда о Беовульфе ». Поскольку самой легенде более 1000 лет, ни авторы сказки, ни жадные родственники авторов с патентом на руках помешать затее никак не могли. Да и создатели фильма тоже никаких претензий предъявить бы не смогли. В результате разработчики игры кроме бесплатного движка получили еще и бесплатную кинорекламу. Только не забывайте, что на разработку движка редко уходит больше 20% времени.
[rudybear]: Я в свое время работал с OGRE и вполне могу рекомендовать его для старта и прототипирования проектов.
Что почем
[Игромания]: В чем основные преимущества и недостатки движков Open Source при разработке компьютерных игр?
[shodan]: Чисто игровые (подчеркиваю, именно игровые) Open Source-движки мне неизвестны, и в появление достаточно качественных технологий такого рода не очень верится. Irrlicht , OGRE и им подобные — не игровые, а графические движки. Это даже не половина игрового движка, а лишь некий базис для него. Нам конкретно они неинтересны — графику мы сами умеем делать, плюс имеем собственную проверенную технологию. Тем не менее такие 3D-движки бывают полезны, особенно когда нет времени писать собственный. Но тут надо быть очень осторожными. На доработку чужого кода можно потратить столько времени, что лучше бы сразу писать свое. Но если подойти с умом, то процентов двадцать времени можно выиграть.
Отдельные компоненты (сжатие данных, видео и т.д.) из открытых движков отлично работают. Мы пользуемся zlib и Theora — полет нормальный. А говорить о недостатках Open Source в целом бессмысленно — это всего лишь способ распространения продукта. Недоработки могут быть у конкретных движков.
[rudybear]: Основное преимущество — это наличие уже готовой технологии, что позволяет сразу сосредоточиться на разработке собственно игры. Но, с другой стороны, это же является и недостатком — игра будет технологически ограничена возможностями движка. То есть выбирать надо с умом, учитывая особенности проекта.
[tool]: Коммерческий движок с открытым исходным кодом легче подогнать под свой проект. К тому же будет с кем посоветоваться и обсуждать технические детали. Бесплатные движки чаще всего низкого качества.
[ALexusB]: Разницы нет, все упирается в кадры. Бесплатно — значит нет затрат на разработку собственного движка, но и возможности игры заведомо хуже (не будет поддержки последних версий DirectX и т.д.). Такую экономию издатель может не оценить.
[zakker]: Это вопрос баланса цены, качества и сроков. Все индивидуально. Существуют проекты, для которых бесплатный движок является оптимальным выбором.
[Игромания]: От чего зависит стоимость платных движков? Можете сформулировать основные принципы, которыми следует руководствоваться при выборе платного движка (чтобы не продешевить и не пожалеть о потраченных средствах)?
[shodan]: От массы рыночных факторов. Минимальный порог при наличии готового движка, причем готового к лицензированию — цена поддержки плюс некоторая прибыль. Максимальный — столько, сколько клиенты готовы платить.
Ключевой принцип ровно один — деньги. Прикидываем сумму на разработку своего движка с нужным качеством и набором функционала; прикидываем расходы на доработку лицензированного — к такому же виду; соотносим с ценой лицензии.
Советую консультироваться по поводу выбора с издателем. Стоимость лицензий начинается от $20-30 тыс. и вплоть до миллиона.
[rudybear]: Безусловно, цена зависит от возможностей. А еще от маркетинга, бренда и множества сопутствующих вещей. Прежде всего необходимо осознать технологические требования к проекту. По ним подобрать подходящие движки. И уже потом смотреть на цены. Причем иногда можно поторговаться: мне известно немало случаев, когда движок покупался в два, а то и в три раза дешевле, чем за него просили.
Я не могу вам назвать цену нашего CryENGINE — это не в моей компетенции. Но вообще, любой более-менее известный и мощный движок, как сказал Андрей, действительно начинается в ценнике от нескольких десятков тысяч долларов и зашкаливает за миллион.
[tool]: Вариантов действительно много. Главное — добивайтесь максимальной отсрочки реальных платежей и берите движки на ознакомление до того, как их приобрести! Трезво оценивайте свои силы, старайтесь использовать как можно больше готовых, проверенных решений. Иногда самая дорогая часть движка — его тулсет, то есть набор инструментов.
Из отечественных движков очень неплох TheEngine (« Магия крови », « Кодекс войны », « Санитары подземелий » и « Легенда о рыцаре »), его предлагает SkyFallen из Воронежа. Это платный движок, но можно договориться с разработчиками об индивидуальных условиях, и это будет гораздо быстрее и дешевле, чем написать что-то подобное самостоятельно.
[Игромания]: Что входит в платный движок, помимо исходного кода: сервисы, услуги, техподдержка (в чем она заключается, как организовано взаимодействие, с какими проблемами помогут, а какие придется решать самим)? Стоит ли все это потраченных денег или поддержки придется ждать до второго пришествия?
[shodan]: Будет ровно то, о чем вы договоритесь с производителем. Обычно помогают справиться с ошибками движка и консультируют по вопросам его максимально эффективного использования. В отдельных случаях берутся за доработку под ваш проект, но это уже обычно за отдельные деньги.
Что интересно, высокий ценник не гарантирует идеальную скорость и качество работы техподдержки. Раз на раз не приходится. Иногда отлично и оперативно решают вопросы по движку за $5 тыс., а иногда по два месяца ожидают отклика за $500 тыс.
[tool]: Полностью согласен. Платность движка не означает, что поддержка хорошая. Так что лучше все узнать заранее, а то можно очень крупно пролететь.
[rudybear]: Скажу больше. Коммерческий движок — это в первую очередь готовый производственный процесс и поддержка, а уже потом исходные коды. Приобретая движок, вы, грубо говоря, получаете налаженный конвейер по созданию игрового контента, готовые утилиты, редакторы и экономите тем самым время.
То есть приобретается готовое решение, которое гарантирует стабильность процесса разработки. Это можно сравнить с покупкой авто тюнингового ателье, такого как Brabus или AMG. Да, дорого. Иногда очень дорого. Но это цена за высочайшее качество.
Стальные огры
[Amicus]: Игру « Стальные монстры » мы начинали на бесплатном движке OGRE. Это позволило достаточно быстро запустить проект. Однако очень скоро силенки движка исчерпались. Так что к релизу мы его переписали процентов на 70, наверное. По сути, в исходном виде остался только рендер-блок.
Движок « Агрессии », « 9-й роты » и тех проектов, что находятся в разработке сегодня, — это уже совершенно другая технология ( ADICO Engine ), целиком и полностью наша. Сколько времени и денег мы потратили, пока доводили ее до ума, вспомнить страшно. Вот именно поэтому я и не советую новичкам сразу начинать с разработки своей собственной мегатехнологии.
Альтернативы
[Игромания]: И все-таки, что же лучше для начинающей команды — потратиться на готовый платный движок или для начала стоит попробовать бесплатные?
[shodan]: А что такое «начинающая команда»? Одно дело — только что образовавшееся юридическое лицо с $10 млн на балансе и командой из 20 человек с пятилетним опытом разработки хороших игр у каждого. Такая может позволить себе заветный Unreal Engine 3 и, что важно, успешно его использовать.
А команде студентов, для которых даже $20 тыс. неподъемная сумма, придется искать бесплатные технологии или писать что-то свое. У них просто выхода нет.
[tool]: Начинать надо с модов для игр. Если вы сделаете хороший мод, будет что показать издателю или инвестору. Они даже помогут приобрести коммерческий движок для следующего проекта.
[Amicus]: А еще лучше делать не мод, а total convertion игры, которая имеет полноценную среду разработки. На самом деле даже движок первого « Блицкрига » еще актуален, и сделанный на нем mission pack или total convertion вполне реально довести до релиза.
[rudybear]: Новичкам никто не даст ни копейки, так что, боюсь, альтернативы бесплатному движку нет. Либо действительно серьезно заняться модами для игр — это тоже очень хороший выход из ситуации.