среда, 15 апреля 2009 г.

Yo Frankie!

Статья была опубликована в 41 номере журнала Open Source.

Обзор Open Source-игры Yo Frankie!

Начало

Так сложилось, что современная игровая индустрия далека от GNU/Linux, а может, и вовсе не знает о его существовании. Но как же быть обычному пользователю, который время от времени хочет поиграть в своем любимом дистрибутиве? Поиграть можно — хотя на современные игры и первоклассную графику рассчитывать не приходится. Конечно, не стоит сбрасывать со счетов Wine, но в статье речь пойдет о «родной» игре. Поскольку порой бывает сложно найти информацию об интересующем игровом проекте и не каждая игра находит своего игрока, этой статьей я хочу сократить расстояние между игрой и потенциальным игроком, рассказав об одном свободном игровом проекте.

Big Buck Bunny

Релиз игры «Yo Frankie!» (http://www.yofrankie.org/), ранее известной как «Project Apricot», состоялся в ноября 2008 года. При этом она основывается на персонажах и сюжете из короткометражного мультфильма «Big Buck Bunny» (http://www.bigbuckbunny.org/), который появился еще раньше. С него и начнем.

Организация Blender Institute, входящая в состав Blender Foundation, занимается популяризацией и распространением Open Source-инструмента для работы с 3D — Blender. На ее счету — первый «открытый видеоролик», получивший название «Elephants Dream» (http://www.elephantsdream.org/) и проект «Big Buck Bunny». Сюжет последнего сосредоточен вокруг большого кролика по имени Buck, который проснулся однажды утром, вылез из своей норы и встретился с тремя злодеями: Frank, Rinky и Gomera. Они охотились за бабочками и кидались в героя орехами и фруктами. Большой добродушный кролик терпел недолго, придумал план возмездия и реализовал его, после чего все злодеи были наказаны. Видео можно посмотреть на YouTube (http://www.youtube.com/watch?v=YE7VzlLtp-4).

Yo Frankie!

Мультфильм вышел весной 2008 года, после чего продолжилась работа над свободной игрой по его мотивам. Изначально планировалось использовать движок собственной разработки — «Blender Game Engine», однако позже было принято решение перейти на уже существующий — «Crystal Space» (подробнее об этом — см. ниже). В любом варианте — движок кроссплатформенный, поэтому игра доступна для таких платформ, как Windows, Mac OS X, GNU/Linux. В итоге, игра вышла в двух версиях — с каждым из движков.

Разработчики позаботились об открытости игры:

  • при ее создании использовались уже существующие Open Source-проекты вроде Blender и Crystal Space;

  • исходный код доступен под лицензиями GNU GPL и LGPL;

  • содержимое (включая модели, графику и звуки) доступно под одной из лицензий Creative Commons.

При разработке игры создатели поставили для себя несколько целей:

  • создать прототип полноценной игры с качеством не хуже, чем у коммерческих игр;

  • разработки для Crystal Space: HDR-освещение, игровая логика, анимация персонажей;

  • разработки для Blender: создание прототипа анимации, улучшения процесса разработки;

  • открытая разработка;

  • накопление опыта: практика, документация, DVD.

Немного о движках

Внесу некоторую ясность насчет используемых движков. Итак, изначально игра создавалась на базе Blender Game Engine (BGE), после чего разработчики сфокусировались на Crystal Space (http://en.wikipedia.org/wiki/Crystal_Space). Переход был объяснен желанием создать более зрелый проект, так как Crystal Space — более технологичный движок и обладает большими возможностями.

Но позже главным движком снова стал BGE — с целью упрощения и ускорения разработки. Дело в том, что время экспорта моделей в Blender Game Engine гораздо меньше: если для BGE — около 5 секунд, то для CS — почти минута. Соответственно, ради экономии времени (чтобы разработчики занимались разработкой, а не ожиданием завершения экспорта) было принято решение сделать Blender Game Engine основным.

На данный момент игра выпущена в двух вариантах: на базе игрового движка Blender Game Engine и Crystal Space. Для обоих движков есть версии, доступные для трех платформ.

Что касается системных требований, то нигде нет точных сведений. Лично я запускаю игру на Athlon X2 3600+ 2 МГц, 1 Гб DDR2, GeForce 7600GS. Игра идет на средних настройках с включенными shaders. На высоких начинаются отставания картинки.

Доступность

Скачать и запустить версию Yo Frankie!, основанную на движке Blender Game Engine, можно по руководству, представленному на странице http://www.yofrankie.org/download/. В архиве, на который ведет ссылка с этой страницы, располагаются бинарные файлы для запуска под любой платформой. Доступны и 64-битные сборки. На той же странице можно получить информацию о версии на движке Crystal Space: как скачать и установить эту игру.

Помимо прочего, все материалы можно приобрести на DVD в магазине Blender (http://www.blender3d.org/e-shop/product_info.php?products_id=102). Кроме всех версий игры на диске можно найти документацию и видеоуроки.

Геймплей

Как уже сообщалось, игра использует персонажей из мультфильма «Big Buck Bunny», а именно — злую белку по имени Frank. От уровня к уровню ее ожидают различные препятствия и совершенно линейный сюжет. Локации достаточно красочные. Попав в воду или лаву (картина смерти в лаве достойна «Оскара»), Фрэнк возвращается на то место, с которого он спрыгнул. Чтобы этого избежать, он умеет совершать двойной прыжок, планировать в воздухе, а также умеет ударять и быстро бегать. В число способностей нашего персонажа входит возможность бросаться подобранными желудями и костями, перетаскивать предметы и овец (их тоже можно бросать). Поверженные враги в буквальном смысле распадаются на кости и в них бьет молния, взрывная волна калечит нашего персонажа — эту возможность стоит использовать для нанесения урона и вашим врагам.

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

Помимо обычного режима камеры есть еще два, что позволяет наблюдать за героем со всех сторон. Видимо, для демонстрации анимации и возможностей движка, белка во время простоя повторяет несколько «заученных» движений — выглядит забавно. Пройдя короткий первый уровень, можно скачать дополнительные на сайте проекта: http://www.yofrankie.org/competition-winners-announced/

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

Все эти слова справедливы для версии игры на Blender Game Engine, потому что пользоваться версией Crystal Space я не смог. Этому способствовал ряд факторов: удручающая скорость работы (даже по сравнению с Blender Game Engine), низкое разрешение, отсутствие справочной системы, настроек. Что же касается различий между версиями — они есть. Так например, в версии с Crystal Space Фрэнк не умеет прыгать два раза, он прыгает всегда высоко, не тонет в воде и всегда быстро бегает.

Заключение

Несмотря на множество недоработок: плохое управление, угловатые модели, подтормаживания — игра оказалась достаточно интересной и увлекательной, а местами — сложной. Самая сильная сторона игры — в её открытости. Это способствовало и появлению архива с дополнительными картами: любой может создать свой уровень, а мы с удовольствием поиграть в уже созданные кем-то.

В следующем выпуске «Open Source» я затрону уже коммерческие и закрытые игры под GNU/Linux. По всем дополнениям, предложениям и поправкам обращайтесь на мой почтовый ящик: tinman321 (at) gmail (dot) com

8 комментариев:

stanislav комментирует...

Хороший обзор, ждём-с следующего выпуска.

tinman321 комментирует...

так это, есть уже и новый выпуск (:
через две недели будет в блоге, а пока можно почитать в Open Source #42 -- http://osa.samag.ru

Анонимный комментирует...

Очень интересно. Посмотрел оба мультика и ролик из игры — впечатляет. Молодцы разработчики. Спасибо за интересный рассказ и ссылки!

Анонимный комментирует...

Вопрос:

Почему-то не запускается... нужно ставить blender? или это в 9.04 не хочет.

Пишет - ошибка сегментации...

Анонимный комментирует...

В вообще - обзор шикарный

tinman321 комментирует...

> Спасибо за интересный рассказ и ссылки!пожалуйста (:

> Пишет - ошибка сегментации...откуда и что скачано, стоят ли дрова?

Анонимный комментирует...

Жалко только, что мультик про Банни хоть и красивый, но тупой и несмешной. Могли бы что-нибудь порадостнее придумать.

tinman321 комментирует...

а что такого "тупого" есть в мультике?