Август 2015

Том 30 выпуск 8

Успешные технологии - Революция в играх

Майкл Томпсон

Я родился в 1983 году, как раз когда с треском рухнул рынок ранних видеоигр и оставил многих в уверенности, что это было преходящее увлечение, которое исчерпало себя. Но спрос на качественные игры оказался устойчивым, и к тому времени, когда меня зачислили в начальную школу, Nintendo Entertainment System была любимой темой разговоров на детских площадках. С тех пор игровая индустрия росла и становилась все более массовой с каждым годом. В 2014 году мировые доходы этого сектора рынка перевалили за 80 миллиардов долларов, в два раза превысив таковые в киноиндустрии.

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

Но восприятие и реалии разработки игр меняются. Когда-то это был эксклюзивный клуб для особой касты программистов, однако новые предложения инструментальных наборов, появившиеся в последние годы, широко распахнули двери для разработки игр, дружественной для любителей. За небольшие деньги или вообще бесплатно эти инструментальные наборы дают возможность извлечь пользу из опыта элитных программистов игровых движков, удобно предоставляемого через редакторы WYSIWYG («что видишь, то и получишь»), исчерпывающие API и дружественные к новичкам языки вроде C#, JavaScript и Lua. Многие из этих инструментальных наборов также интегрируют электронные рыночные площадки, где можно приобрести, продать или поделиться такими игровыми ресурсами, как трехмерные модели, анимации, звуковые эффекты и полезные скрипты. И хотя играм отводится центральное место, эти инструментальные наборы позволяют создавать рекламные и образовательные материалы, а также мультимедийные художественные инсталляции.

Самый популярный из этих инструментальных наборов, Unity, сочетает в себе передовой кросс-платформенный игровой движок (на сегодняшний день поддерживается 21 платформа), интуитивно понятный GUI для изобретения игровых миров, поддержку скриптов на C# и UnityScript (аналогичном JavaScript) и потрясающую рыночную площадку для контента, скриптов и расширений редактора. Использование Unity не стоит ни гроша, если только он не применяется в организации с ежегодным доходом или финансированием, превышающим $100 000. Вдобавок ко всему Unity предлагает исчерпывающую документацию, учебные материалы и примеры проектов, а также богатую поддержку со стороны обширного сообщества пользователей Unity. Ввиду столь низкого технического и финансового барьера и таких широких возможностей нет ничего удивительного в том, что Unity настолько популярен.

Но Unity — не единственный игрок в городе. Популярной альтернативой является Unreal Engine 4 (UE4) от Epic Games, который в предыдущих инкарнациях позиционировался на рынке как предназначенный для крупных игровых студий (и стоил соответственно). UE4 стал первым доступен для малых студий и разработчиков-любителей, получив статус движка с открытым исходным кодом; при этом компания взимает лишь небольшие лицензионные отчисления с доходов от продажи игр на данном движке. Инструментальный набор и рабочий процесс UE4 во многом похож на таковые в Unity, но, как говорят, в некоторых отношениях он дает более широкие возможности, хотя менее дружествен к разработчикам-любителям из-за своей ориентации на профессионалов.

Другая популярная альтернатива — совершенно бесплатная и с открытым исходным кодом инфраструктура Cocos2D, в которой традиционно фокусируются на двухмерных играх и отдают предпочтение коду в сравнении с GUI-редакторами. Еще одно отличие в том, что она предлагает семейство схожих API для разных языков (C++, JavaScript, Swift и др.), а не какую-то монолитную платформу. Хотя Cocos2D не обладает столь богатой функциональностью, как Unity или UE4, она недавно была дополнена поддержкой трехмерной графики, а Cocos Studio предоставляет некоторую часть функциональности конкурирующих редакторов.

Поскольку эти инструментальные наборы берут на себя все, что связано с технологиями (рендеринг, звук, анимацию, ввод и др.), вы можете спокойно сосредоточиться на творческой работе в создании своей игры. Вам не нужно знать, как писать оптимизированный C++-код, — инструментальный набор предоставляет оптимизированный движок. Вам не требуется познаний в Direct3D или OpenGL — инструментальный набор обеспечивает рендеринг, который можно расширять собственными шейдерами. Вы не обязаны понимать, как импортировать модели персонажей из 3DStudioMax — инструментальный набор умеет импортировать любые виды игровых ресурсов почти во всех популярных форматах.

Изучение возможностей одного из этих инструментальных наборов в творчестве не требует каких-то экзотических навыков. По сути, достаточно лишь желания освоить то, как взаимодействуют компоненты, знания математики на уровне средней школы и скромного умения программировать. Даже если вы никогда раньше не писали игры, вы все равно обнаружите массу привычных вещей. По большей части при создании игры вы будете использовать эти инструменты для настройки свойств или написания кода в нужных местах. Добавление скверного парня в игру мало чем отличается от добавления кнопки в приложение Windows Forms и написания кода для обработки его события OnClick.

В первой рубрике «Первое слово» в майском номере «MSDN Magazine» (msdn.microsoft.com/magazine/dn973009) Райдер Донахью (Ryder Donahue) заметил: «Инструменты, предлагаемые разработчикам, и доступные ресурсы дают возможность любому воплотить в жизнь приложение его мечты». Такие инструментальные наборы, как Unity, UE4, Cocos2D и прочие, доказывают, что это наблюдение было верным. Спустя более трех десятилетий после краха 1983 года очевидно, что разработка игр стала более динамичной и более доступной, как никогда раньше.


Майкл Томпсон (Michael Thompson) — разработчик контента в Microsoft, пишет о C++, графике и создании игр в Visual Studio. Бывший сотрудник DigiPen и один из главных участников gamedev.net.