Современный рынок мобильных развлечений развивается на сегодняшний день с невероятной скоростью. Если в ушедшем 2004 году он был оценён в 561 миллион долл., то к 2009 году этот показатель подскочит до 53 миллиардов $. Количество пользователей мобильных игр, в 2002 году составившее 196 млн. человек, уже в этом году, по прогнозам аналитиков, достигнет 667 млн.
Многие компании, среди которых такие "гиганты" игростроения как: Atari, Electronic Arts, THQ Wireless, Sega, Infogrames и другие, начали свою экспансию на превратившийся из "крошки" в "большой кусок" мобильный рынок.
Здесь действует тот же принцип, что и на "стационарном" рынке: для уменьшения затрат, а также времени на разработку игры используются готовые движки, создаваемые сторонними компаниями. Пионером в этой области является компания Fathammer, о продукте которой, мобильном 3D-движке X-Forge, мы сегодня и поговорим.
Увлечение Самули Сивахуоко (Samuli Syvahuoko) компьютерными играми, а также процессом их создания, началось ещё десять лет назад. Сразу после своего ухода летом 2000 года из компании Remedy Entertainment (создавшей игру Max Payne), сооснователем и управляющим которой он был ранее, Самули в октябре 2000 года захотел создать новую компанию, которая бы занялась производством инструментов для разработки игр. Но, так как для игровых консолей и персональных компьютеров уже существовало множество программ такого рода, взор предприимчивого фина упал на мобильный рынок. В 2000 году насыщенные графикой и звуком игры для мобильных телефонов, смартфонов и КПК можно было пересчитать на пальцах, поэтому простор для действий Сивахуоко видел огромный.
Двумя другими сооснователями компании стали Фредерик Кекалайнен (Fredrik Kekalainen), старый друг Сувахуоко по демосцене, и Арто Астала (Arto Astala), ранее работавший в Nokia. Со временем к ним присоединился Брайан Бренинг (Brian Bruning), ставший главным управляющим Fathammer. На пост технического эксперта был приглашён ЭрДжи Майкл (RJ Mical), принимавший, в своё время, участие в создании компьютера Amiga, домашней консоли 3DO и портативной Atari Lynx.
Пару слов о причинах выбора названия "Fathammer". Рассказывает Самули Сивахуоко: "Новорожденной компании необходимо было шокирующее, и, вместе с тем, лёгкое в запоминании название. Слово "Fat" ("жирный") полностью отвечало критериям отбора, особенно при использовании совместно со словом "Hammer" ("молот"). Молот представляет собой инструмент, также как и инструменты (программные), создаваемые нами для разработки игр. Целиком же слово "Жирный молот" ("Fathammer") представляет собой очень широкое средство, которое может выполнять очень сложные задачи". Во время создания первой игры на базе X-Forge, футуристической гонки Geopod, безымянному подразделению Fathammer, отвечающему за публикацию игр, также потребовалось собственное название. В переводе на финский язык английское слово "Hammer" переводится как "Vasara". В результате фины назвали своё подразделение Vasara Games.
Работы над созданием игрового движка, названного X-Forge, начались сразу же после основания компании. Параллельно с этим, в недрах Fathammer создавались технологические "демки", предназначенные для публичных демонстраций нового продукта. Создавались они изначально в расчёте на КПК Compaq iPAQ, работающие на основе самого быстрого, на тот момент, процессора Intel StrongARM SA1110 с частотой 206 МГц.
Кроме КПК под управлением Windows Mobile (тогда ещё PocketPC), компания решила выйти и на игровой рынок для смартфонов, объявив о поддержке Х-Forge операционными системами SymbianOS (Series 60 и UIQ), а также Windows for Smartphone. Во время официального анонса смартфона Nokia 7650 в конце 2001 года на нём, среди прочего, демонстрировалась демка автосимулятора X-Driver, вызвавшая восторженные возгласы среди присутствовавших.
Параллельно с разработкой движка велись работы по созданию первой игры, использующей его. Среди множества жанров было решено выбрать гоночный симулятор, правда, не простой, а футуристический. Причиной такого выбора стали ограниченные средства управления на КПК того времени. В подавляющем большинстве случаев это был четырёхпозиционный джойстик. Кроме того, одновременное нажатие нескольких кнопок не обрабатывалось.
В результате на свет появилась концепция игры Geopod, ставшей идеальным "полигоном" для испытаний Х-Forge на практике.
Выход X-Forge состоялся 31 декабря 2002 года. К тому времени Geopod была готова на 80%, и ожидала свой релиз в декабре.
Ближе к завершению разработки X-Forge начались работы по созданию ещё одной игры - симулятора внедорожников Stuntcar Extreme (для портативной консоли Zodiac компании Tapwave), дальней наследницы игры Stunt Car Racer, созданной Джофом Греммондом (Geoff Grammond) и выпущенной для компьютеров Commodore Amiga более десяти лет назад.
Первоначально, ещё в декабре 2001 - январе 2002 года, игру планировалось адаптировать под консоль Nintendo GameBoy Advance (первую портативную игровую систему, для которой, в своё время, и предназначался Х-Forge).
К сожалению, трудности с выпуском самой игры не позволили Fathammer осуществить задуманное, и Stuntcar Extreme так и не увидела свет.
В феврале 2002 года компания предложила тандему Sony Ericsson адаптировать Stuntcar Extreme под готовящийся к выпуску смартфон Р800. Договор был заключен, благодаря чему в сентябре, с началом продаж смартфона, насладиться игрой (получившей название Stunt Run) смог каждый его владелец.
Сразу после выхода Р800 Fathammer решила, что настало время публичной демонстрации возможностей X-Forge. Для этого компания начала разработку третьего поколения Stuntcar Extreme, предназначавшейся уже для платформы PocketPC. К сожалению, игра не была выпущена. По словам менеджера Fathammer Вилле Ватена (Ville Vaten): "О ней отзывались очень хорошо на различных мероприятиях, но Stuntcar Extreme был для нас не продаваемой игрой - в ней отсутствовала "изюминка".
Звёздный час настал для Fathammer после заключения договора с компанией Tapwave, готовившей к выпуску свою портативную консоль Zodiac. Новый партнёр не только согласился добавить Stuntcar Extreme в стандартный комплект поставки Zodiac, но и предложил финской компании сделать облегчённую версию Х-Forge составляющим компонентом средств разработки ПО для консоли (SDK).
Взаимное соглашение было достигнуто, и работа закипела. Во время разработки Stuntcar Extreme для Zodiac была немного переработана концепция геймплея, улучшена графика и физика. Кроме того, для консоли была анонсирована ещё одна игра - Spyhunter.
В то же время, при непосредственной поддержке со стороны компании Nokia, движок X-Forge приняли на "вооружение" разработчики игр для мобильного телефона-консоли N-Gage. Сюда стоит отнести Sega с играми Virtua Tennis и Super Monkey Ball, THQ Wireless/Monkeystone с Red Faction и др.
Итогом кропотливого труда стал выпуск осенью 2003 года финальной версии X-Forge 1.0, всех вышеназванных игр и консоли Zodiac (с облегчённой версией движка в составе SDK).
В июне 2004 года свет увидела новая версия X-Forge 2.0, главной особенностью которой стала поддержка аппаратного ускорения через API OpenGL ES. Кроме того, практически с "нуля" были переписаны все основные компоненты самого движка, о которых мы сейчас и поговорим.
Движок X-Forge, являющийся главным компонентом SDK, состоит из двух больших модулей: "низкоуровневого" ядра (X-Forge Core) и "высокоуровнёвого" движка (X-Forge Engine).
Ядро X-Forge содержит все компоненты, необходимые для работы X-Forge GL, а также обеспечивает платформенную независимость для игровых приложений. Его функциональность распространяется на двух- и трёхмерные графические библиотеки, микширование аудио, сетевое взаимодействие, органы управления, компрессию и шифрование данных, а также обеспечение интерфейса с "железом" и операционной системой.
Программисту, разрабатывающему игровое приложение при помощи X-Forge, нет нужды изучать внутреннюю архитектуру платформы, для которой создаётся игра, или её ОС - ядро самостоятельно "общается" с устройством, предоставляя человеку стандартные способы получения и отображения событий (будь-то управление, рендеринг изображения или передача данных).
Графическая библиотека X-Forge GL отвечает за рендеринг 2D- и 3D-изображения. Возможности обработки 2D-графики включают в себя: растровые и векторные операции, трансформацию (вращение, растяжение и т.д.), смешивание, конвертацию изображения из одного формата в другой, и т.д. 3D API (по принципу работы напоминает API OpenGL и Direct3D) работает с нетекстурируемыми и текстурируемыми треугольниками и группами треугольников (т.н. "полосами треугольников" - "triangle strips"). Графическая библиотека поддерживает статическое и динамическое освещение (правда, производительности современных КПК недостаточно для быстрой работы последнего), текстурирование с коррекцией перспективы, прозрачность, различные алгоритмы создания теней, все основные виды смешивания (слагающий, умножающий, инверсный умножающий, усреднённый) и множество других функций.
В X-Forge GL встроена возможность аппаратного ускорения графики через API OpenGL ES, но, если устройство не имеет отдельного графического акселератора, графическая библиотека использует собственный программный алгоритм, переносящий все задачи по обработке графики на центральный процессор. Аудиобиблиотека X-Forge поддерживает 32-канальный стереозвук с очень низкой латентностью и малой загрузкой центрального процессора. Изменение громкости и скорости звука, приоритетов, смещение лупов (ударов) - всё это может быть проделано в режиме реального времени во время игры.
Сетевые возможности ядра включают в себя поддержку IrDa-, Bluetooth- и WiFi-соединений. Формат и алгоритмы приёма/передачи информации для каждого из поддерживаемых устройств одинаковы, что позволяет организовывать мультиплеерные баталии между различными платформами.
Другими сервисами, обеспечиваемыми X-Forge Core, являются: математическая библиотека для чисел с фиксированной запятой, структуры абстрактных данных, менеджер памяти, "прозрачная" поддержка кодируемой и сжимаемой файловой системы X-Forge, поддержка графических форматов PNG, JPEG, PCX и TGA, аудиоформатов WAV и XM, эффекты "обратной отдачи" (Force Feedback) и т.д.
Теперь поговорим об X-Forge Engine. Движок X-Forge расположен поверх ядра и обеспечивает разработчиков эффективными средствами для создания внутриигрового контента. Он использует низкоуровневые функции X-Forge Core для создания объектов, иерархий объектов, камер, источников освещения и т.д. Интеграция движка с ПО 3ds-max 5.0/6.0 (X-Forge 2.0) позволяет легко переносить для использования в X-Forge Engine объекты, созданные в этом пакете моделирования.
Кроме поддержки функций для рендеринга изображения, движок X-Forge предназначен для обработки эффектов столкновения в игре, звука, физики, управления персонажами, а также их анимации.
В состав движка X-Forge также входит инструментарий для работы с системами частиц, предназначенный для создания практически любых видов эффектов: взрывов, световых вспышек, воды, дыма, снега и т.д. Качество, количество и разнообразие эффектов ограничивается лишь вычислительными возможностями устройства. Несмотря на широкие возможности X-Forge, его изучение не занимает много времени, а подробная документация и игры-примеры, идущие в комплекте с SDK, помогут программистам в нахождении "общего языка" с движком.
Кайл Пул (Kyle Poole), глава компании Crimson Fire Entertainment, разрабатывающей игры для PalmOS и Zodiac, отметил в одном из интервью: "На изучение X-Forge API у меня ушло всего две недели, после чего я изменил исходные коды поставляемой вместе с движком игры-примера и получил играбельную демку Galactic Realms (тайтл для Zodiac)"
На данный момент X-Forge поддерживает следующие операционные системы:
Кроме того, Fathammer объявила о поддержке в будущем новых портативных игровых консолей GameBoy DS (Nintendo) и PlayStation Partable (Sony). Разработка игр для нескольких платформ с помощью X-Forge - занятие практичное и экономически выгодное. Код всех версий игры будет одинаков на 80-85%, благодаря чему время, потраченное на их создание, сокращается в разы.
Отличия между ними заключаются, в основном, в оптимизации под конкретный дисплей (физический размер и разрешение) и органы управления. Комментирует Арто Астала, вице-президент Отдела разработок Fathammer: "Если с первым пунктом проблем, в большинстве случаев, не возникает, так как трёхмерный контент, по существу, не зависит от разрешающей способности, то управление игровым процессом - задача не из простых. Обычно КПК и смартфоны оснащены лишь 4- или 5-позиционным джойстиком и четырьмя кнопками, расположенными возле него (изначально ориентированные на игры Zodiac и N-Gage во внимание не берём). Концентрация такого количества органов управления на малой площади устройства не позволяет комфортно разместить пальцы обеих рук пользователя, поэтому разработчикам приходится изловчаться в поиске оптимального решения. Выход, в основном, состоит в применении нескольких стандартных раскладок. Кроме того, нами созданы специальные "локализации" для каждого из устройств (будь-то Zodiac, смартфон под управлением PalmOS или стандартный PocketPC), позволяющие решить и эти проблемы". Последний нюанс касается памяти, необходимой для хранения и работы игрового приложения. Мобильные устройства имеют различные объёмы внутренней памяти, а также возможности её расширения с помощью флэш-карт, и всё это необходимо учитывать при разработке игр. На сегодняшний день с помощью X-Forge было создано 22 игры.
В стадии разработки находится ещё десяток. Среди лицензировавших движок есть как крупные компании (Sega, Nokia, THQ Wireless), так и "рыбки" поменьше (Crimson Fire, Extreme AI, Ninai Games). Количество новых лицензиатов постоянно увеличивается.
Fathammer - не единственная компания-создательница мобильных игровых движков. Учуяв "запах" денег, другие захотели получить свой "кусок пирога". Правда, на рынке они присутствуют не очень давно, поэтому их разработки относительно новы или малоизвестны.
Компания Extreme AI, создавшая несколько игр на базе X-Forge (Firefly, Orbz и Thinktanks), решила проверить силы и принялась за разработку собственного движка, а также пакета разработки для него. Новинка под названием Punk базируется на основе движка Torque Game Engine, изначально применявшегося в игре Tribes 2.
Новый движок ориентирован исключительно на устройства с аппаратным ускорением 3D-графики, такие как: Nintendo DS, Sony PSP, Tiger Telematics Gizmondo, Tapwave Zodiac следующего поколения и др. Особенностью Torque GE является переносимость на другие платформы (движок доступен в версиях для Windows, Linux и MacOS). Приемник также может похвастаться подобной возможностью: стоит лишь создать игру для РС, как она с лёгкостью может быть портирована на любую выбранную платформу, будь-то X-Box или Sony PSP.
На данный момент о деталях Punk практически ничего не известно за исключением того, что новый движок, как и его старший собрат, будет заточен под игры с продвинутым мультиплеером (платформеннонезависимым).
Но если Extreme AI решила создать собственный движок своими силами, то компания Crimson Fire сделала своеобразную "надстройку", названную Magma Engine.
Как уже говорилось ранее, ориентация X-Forge на автосимуляторы и авиасимуляторы стала камнем преткновения для многих разработчиков. Magma Engine позволяет создавать мобильные игры других жанров, таких как шутеры от первого лица, RPG и др., для которых необходима более детализированная графика, а также движущиеся полигональные персонажи. Движок предназначен, в первую очередь, для создания игр на базе Zodiac и N-Gage. Просчёт 3D-сцен может осуществляться как аппаратно (за счёт OpenGL ES), так и программно (используя X-Forge GL).
Главной особенностью Magma Engine является оптимизированный движок по генерации ландшафтов, динамически изменяющий количество полигонов (а также качество их текстур) в сцене, в зависимости от загрузки процессора (X-Forge) или видеоускорителя (OpenGL ES). Кроме того, наличествуют продвинутые средства для создания различных эффектов в виде динамического освещения, полупрозрачного тумана и т.д.
Crimson Fire заявила, что теперь все продукты компании будут выпускаться на базе их собственного движка. Кроме того, на Magma Engine будут предоставляться лицензии другим компаниям.
Несмотря на то, что рынок мобильных развлечений относительно молод, на нём уже начали появляться продукты, создаваемые программистами-одиночками.
Именно одним из них, Дереком Ивенсом (Derek Evans), был создан движок Yeti3D, предназначенный для создания игр на GameBoy Advance, Gamepark GP32, Tapwave Zodiac, а также PocketPC и смартфонов на базе Nokia Series 60.
Yeti3D является наследником необычного движка CUBE Engine, главной особенностью которого является построение всех объектов в сцене с помощью кубов. Но, в отличие от своего старшего собрата, Yeti3D обладает некоторыми важными нововведениями: "отсеканием" невидимых в сцене полигонов, поддержкой динамического освещения и теней, а также - "кривых" поверхностей! (через аппаратное ускорение посредством OpenGL ES)
Движок распространяется бесплатно, но, чтобы сделать на его базе коммерческую игру, необходимо раскошелиться на лицензию, стоящую 6000 долл. США (бесплатные игры её не требуют).
Компания Fathammer смогла таки доказать миру, что КПК и смартфоны, ранее предназначенные для ведения простого еженедельника, доросли до уровня продвинутых мультимедийных устройств, способных не только помогать своему владельцу в работе, но и развлекать его. А ведь, как известно, именно игры являются для многих средством отдыха. Если же существует возможность поиграть вне помещения, большинство пользователей непременно ею воспользуется. Самули Сивахуоко не прогадал.