ДонНТУ > Портал магистров ДонНТУ| На главную (Биография)

Материалы по теме выпускной работы: Реферат | Библиотека | Ссылки | Отчет о поиске | Индивидуальное задание

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

 Савков К.

Сколько стоит разработать игру

Компьютерные игры. Массу информации о них можно найти в специфической прессе. Возьмем, например, «Игромания» 116  за май 2007. В журнале опубликовали очень интересную информацию об игровой индустрии:

Средние зарплаты разработчиков игр в Японии за год в тысячах долларов:

Программист – 26

Ведущий программист – 43

Художник – 24

Ведущий художник – 41

Дизайнер – 28

Ведущий дизайнер – 39

Звуковой дизайнер – 35

Ассистент продюсера – 39

Продюсер – 52

При этом также приводились данные по Британии и США, там зарплаты в 1,5 и 2 раза больше. Отмечалось, что зарплаты в других отраслях для специалистов того же профиля, как правило, выше.

В другой интересной статье из того же номера отмечалось, что бюджет среднего «Русского квеста» где-то 100 тысяч долларов, среднего шутера – 400, хорошей стратегии – 800. Тем не менее максимально прибыльным проектом от продаж в России оказался самый дешевый русский квест, так как в других случаях разработчик остался должен издателю. При продаже игр на Запад, шутер и стратегия смогли себя окупить.

Этапы разработки

            Для подавляющего большинства игр для РС объем продаж не превышает 100000 копий до момента прекращения их производства; для большинства профессионально разработанных игр продажи начинают падать в диапазоне от 15000 до 40000 копий, остаток ликвидируется издателем по цене чуть большей себестоимости носителя. Индустрия может полагаться на небольшое число игр-бестселлеров, способных принести достаточно денег для покрытия расходов по неудачным проектам.

            Индустрия игр – это прежде всего бизнес.

            Стадии процесса разработки игры:

            1 Концепция (1-3 месяца – основные идеи)

            2 Предпроизводство (25% времени разработки – создать небольшую работающую версию игры, уладить вопросы по дизайну)

            3 Производство (50% - собственно само создание игры)

            4 Постпроизводство (25%)

            4.1 Устранение ошибок

            4.2 Полировка игры

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

Сделка «стоимость + прибыль» :

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

2 Оценка. Разработчик оценивает стоимость создания игры.

3 Переговоры. Стороны договариваются о приемлемой цифре прибыли для разработчика. Обычно разработчик сообщает сумму своих затрат, после чего добавляется 20%.

4 Разработка. Разработчик выполняет работу, если он делает ее с меньшим объемом затрат – излишки остаются ему. Если не укладывается в эту сумму – терпит убытки.

Данный тип сделки самый простой и экономически безопасный. Он довольно распространен не только в игровой индустрии, но разработчик не имеет прибыли от продаж.

            Сделка «аванс + гонорар» :

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

            2 Отработка аванса (или возмещение). Аванс увязан с продажами игры, если аванс 500000 при товарной стоимости 10 за копию, разработчик не получит ничего сверху, пока не продадутся 50000 копий. (Если объем продаж не достигнет этого объема, то разработчик вообще больше ничего не получит, но аванс останется у него. Сделок с условиями, когда требуется возвратить не возмещенный аванс, не бывает, от подобных предложений следует решительно отказываться).

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

Используемые технологии

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

Серьезные фирмы создают так называемый «движок» игры. Многие люди неправильно понимают, что такое движок. Дело в том, что движок есть набор средств разработки игры, т.е. всяческие редакторы скриптов, уровней, куски исполняемого кода и.т.д. Каждый «движок» предоставляет солидную среду разработки, причем фактически это и есть коммерческие продукты для разработки игр. Серьезным фирмам проще приобрести готовый современный и проверенный «движок» и создать в нем новую игру. Например, Unreal Engine 3 стоит около миллиона долларов. Кроме этого, всевозможные редакторы, в том числе такие монстры как 3D Studio Max, Photoshop, Premiere также можно отнести к средствам разработки игр.

Часто на игры выходит бесплатный SDK для разработки модификаций к игре. Это не полный комплект программ разработки, тем не менее, достаточный чтобы сделать новую игру. Условия использования таких SDK дают права разработчику игры, а не модификации, распоряжаться полученной модификацией. Т.е. «мод» нельзя продать, нельзя распространять без игры, в общем, автор «мода» никаких прав на него не имеет.

Личный опыт

Как ни странно, ни одной серьезной игры я не сделал. Все обычно заканчивалось вместе с энтузиазмом. Это является характерной чертой бесплатных проектов. Однако некоторый опыт я получил. На сегодняшний день ситуация такова, что ошибок не прощают. К ошибкам можно отнести все, что угодно – неправильный баланс, долгие загрузки уровней, тупой искусственный интеллект. Однако данные ошибки проявляются лишь в ходе самой игры, их можно спрятать в демонстрационной версии. Если демонстрационная версия человеку не понравится, то и саму игру он не возьмет. А если он купил игру, это уже что-то. Пусть он ее выбросит через 3 часа игры, но деньги он уже заплатил. Этот подход очень популярен сегодня и вполне себя оправдывает.
 

И так, для игры необходимо выполнение следующих условий:

a) Графика в игре должна быть терпимой
 

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

Современная графика в играх реализуется при помощи таких монстров как OpenGL и Direct3D.

При этом Direct3D – входя в комплект DirectX, обладает большими возможностями и удобствами, так как для разработки игр в нем есть практически все уже готовое. Это относится к загрузке изображений из файлов, геометрии объектов, анимации. Для всего этого уже есть готовый формат и набор утилит. В общем практически для всего в DirectX есть набор готовых форматов и утилит на любой вкус. Из минусов можно выделить лишь то, что из-за большого объема разбираться во всем этом сложно, да и работает только под платформы Microsoft.

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

Хотя загрузить изображения из файла bmp не особо сложная задача, но на сегодняшний день есть jpeg. Для загрузки изображений в OpenGL можно использовать FreeImage библиотеку, для печати текста можно использовать FreeType библиотеку, но обычно обходятся только первой.


б) Звук в игре  должен быть терпимым

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

Воспроизведение звука можно организовать стандартными средствами ОС. Для платформ Microsoft можно использовать Windows Multimedia или DirectSound. Использование данных средств значительно упрощает жизнь, так как в DirectX SDK существует масса примеров, форматов и утилит.

Бесплатным аналогом DirectSound можно назвать OpenAL от Creative. Данная библиотека есть на всех серьезных платформах, однако ее использование, как и OpenGL, связано с некоторыми проблемами. Например, нет функций для загрузки звуковых файлов. Хотя загрузка файлов формата wav не является большой проблемой, но на сегодняшний день уже существует mp3. Увы, использование mp3 требует лицензии. Бесплатным аналогом mp3 можно назвать Vorbis Ogg формат файлов ogg. Данный формат бесплатный, можно скачать библиотеку с кодером/декодером, таким образом решить проблему загрузки файла.
 

в) Игра должна работать стабильно

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

- удобная среда разработки (например, Microsoft Visual Studio);

- STL;

- там, где STL мало, можно использовать библиотеку BOOST.

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

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

Возможно, что это течение моды, но основной код игровой программы обычно пишется и отлаживается в Microsoft Visual C++, как наиболее удобной. При этом не обязательно платить за эту среду разработки!
 

Как сделать игру  студенту, у которого нет денег


1 Установим среду разработки и компилятор

Специально для бедных Microsoft выпустила специальную бесплатную версию Visual Studio – Visual Studio Express 2005. Ее можно скачать официально с сайта:

http://msdn.microsoft.com/vstudio/express/

После установки Visual С++ 2005 Express вас огорчит то, что приложения под WinAPI писать нельзя. Это не проблема, так как Microsoft дает SDK под свои платформы бесплатно, даже с инструкцией:

http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/

Однако тут обычно у студентов может возникнуть некоторый дискомфорт, дело в том, что сам SDK можно скачать только если у Вас лицензионная версия Windows. Если Вас это смущает, то не обязательно качать самую последнюю версию SDK. Дело с том, что старые версии SDK не требуют проверки на подлинность Windows. Т.е. можно легко скачать Platform SDK на Windows Server 2003 SP1, а  не на Windows Vista:

http://www.microsoft.com/downloads/details.aspx?FamilyID=a55b6b43-e24f-4ea3-a93e-40c0ec4f68e5&DisplayLang=en

После подключения SDK согласно инструкции можно писать программы под WinAPI. Тут у Вас есть 2 варианта – скачать DirectX SDK (последняя версия требует проверки на подлинность Windows, а старые нет) и заняться разработкой игры или же не использовать DirectX.
 

2 Установим OpenGL

DirectX привяжет ваш продукт к ОС семейства Microsoft, но ведь есть и другие операционные системы, там тоже есть люди, которые могут играть в Ваши игры! Чтобы люди с Linux  могли играться в вашу игру, надо использовать стандарт OpenGL. Microsoft поддерживает OpenGL и даже устанавливает совместимые драйвера и библиотеку, но увы они не особенно полезны(кто будет использовать в 2007 году OpenGL 1.0 версии, придуманный в 1994 ?). Для полного использования возможностей OpenGL нужно:

А) Свежий драйвер на видеокарту

Б) Свежие заголовочные файлы OpenGL

Обе вещи + масса дополнительной информации берутся на сайте производителя видеокарты.  При этом файлы gl.h и glext.h можно брать у любого производителя:

http://www.nvidia.com

http://www.ati.com

Каждый производитель хвалит свой продукт и включает в него массу специфических расширений. Их использование ограничивает вашу игру видеокартами этого производителя, следовательно лучше использовать общепринятые расширения – ARB, т.е. одобренные OpenGL Architecture Review Board. Как это ни грустно, но адреса всех функций OpenGL выше версии 1.0 нужно будет получать из библиотеки вызовами glGetProcAddress.

            3 Установим OpenAL
 

            Если вы решили не использовать DirectX, то вас ожидает масса проблем. Воспроизводить звук, да еще и с хорошими современными эффектами кроме DirectSound умеет OpenAL. Его можно скачать вместе с документацией:

            http://www.openal.org/

            По «удобству» использования OpenAL в принципе такой же как и OpenGL, даже команды те же, только префикс не gl а al.

            4 Установим OGG Vorbis
 

            Хотя в примерах OpenAL и есть воспроизведение звука в формате OGG, но лучше использовать библиотеку отдельно. Отказавшись от DirectX, вам придется пальцами писать загрузку файлов с аудиоданными. От mp3 придется отказаться, так как он платный, остается ogg. Скачать его можно тут:

            http://www.vorbis.com/

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

            5 Установим FreeImage
 

            Да, без DirectX действительно масса неудобств. OpenGL не дает функций для загрузки изображений из файлов, следовательно для загрузки файлов надо использовать стороннюю библиотеку. Одной из таких, а может даже самой лучшей есть FreeImage:

            http://freeimage.sourceforge.net/

            Тут цивилизованно можно скачать библиотеку и инструкцию, не нужно все это компилировать.

            6 Установим BOOST
 

            Для решения некоторых простых проблем, таких как обработка регулярных выражений, алгоритмы на графах и.т.п. стандартной библиотеки С++ маловато будет.  Установить это чудо техники не сложно, но требует некоторой подготовки. Взять исходные коды (да, нужно компилировать) и много полезного можно тут:

            http://www.boost.org/

            Примечание, для компиляции нужна утилита bjam, которую нужно скачать отдельно.

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

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

            P.S. Есть неплохой бесплатный графический редактор – gimp.

            http://www.gimp.org/

            Хорошую игровую физику можно написать, используя библиотеку Ageia PhysX

            http://www.ageia.com/

            Для PC разработчиков SDK бесплатное
 

Заключение

Не стоит придумывать велосипед, так как его уже придумали.


Использованная литература

Ларами Ф.Д. «Компьютерные игры: секреты бизнеса»/ пер. с англ. –М.: КУДИЦ-ОБРАЗ, 2004 – 416 с ISBN 1-58450-282-7, 5-9579-0011-7