Dev Story Hidden Wars. История о космических боях

|
FavoriteLoading В закладки
Hidden Wars. История о космических боях

ТЕКСТ: АНДРЕЙ ГРУДКИН (FLYGAMES). Все началось одним воскресным утром при просмотре очередной подборки свежих flash-игр. Анализ чужого творчества всегда полезен, как и поиск новых идей, оригинальных решений, свежих механик или интересного уникального сеттинга. Все это откладывается в памяти и в нужный момент может стать хорошим подспорьем при реализации нового проекта. Ну и конечно, красивые, интересные работы всегда подталкивают к тому, чтобы не просиживать штаны и создать что-то свое.

I. Идея проекта

Если хотите придумать отличные идеи,
знайте: лучшие из них вы можете позаимствовать
– Томас Едисон

В этот раз среди различных игровых flash-проектов на глаза попалась SteamBirds, новая разработка от небезызвестной Armor Games. Конечно, нас как разработчиков и игроков зацепила ее простая, но эффективная концепция. Особенно обратило на себя внимание управление: оно идеально подходило для touch-интерфейсов. Анализ App Store не выявил ни одного проекта, использующего подобную игровую механику (на момент создания игры еще не было iPhone-версии SteamBirds).


Оригинальная Steam Birds

Следующий день прошел в обсуждениях, тестировании игры на «подопытных кроликах» и сборе мнений. Всё сводились к одному – нужно делать. Интересная и новаторская игровая механика, идеальное для touch-интерфейсов управление, хорошие возможности для масштабирования и ввода новых фич.

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

Мы видели простую, но увлекательную игру, в которой пользователь сталкивается с различными тактическими ситуациями. Сюжет как таковой отбрасывался сразу же – мы не хотели добавлять в игру излишнюю глубину, желая оставить самый «сок» – сражения, особые возможности юнитов, грамотное использование которых, позволило бы выйти победителем.

II. Выбор сеттинга и первые эскизы

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

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


Все начиналось с таких примитивных скетчей

Увы, но с космосом не сложилось. Визуальный ряд получался ужасным – юниты выглядели мерзко, туманности и планеты – еще хуже.

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


Наброски будущей игры

III. GDD и первые результаты

Получив первые эскизы от художников и определившись с сеттингом, можно было приступать к детальной проработке GDD (Game Design Document). Конечно, может возникнуть сомнение, правильным ли был выбор именно такой последовательности действий: первые эскизы – а только потом детализация GDD. В нашем случае мы хотели придерживаться именно такой очередности, так как первые скетчи наглядно показывали потенциал выбранного сеттинга в визуальном плане.

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

  • Детальное описание игровой механики
  • Описание юнитов с характеристиками и особыми возможностями
  • Описание механизма набора очков и премирования игроков
  • Описание GUI как игрового поля, так и различных неигровых экранов

Постепенно, по мере разработки, в GDD добавлялись описания нововведений, уточнения, детализация некоторых аспектов игрового процесса и прочая информация, необходимая для разработки.

Первую рабочую демку удалось получить уже через две недели. Она, конечно, была без графики и AI, но уже можно было управлять ярко-желтыми квадратами, которые весело расстреливали красные :)

IV. Редизайн – это не страшно

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


Первый вариант оформления юнитов

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

Результаты тестирования оказались положительными, за исключением оценки визуального оформления. Из-за ярких тонов и нарочито простой стилистики юнитов, игра показалась «фокус-группе» слишком мультипликационной, несерьезной.

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


Финальный вариант оформления юнитов

Были переработаны и многие анимации: взрывы, выстрелы, особые способности юнитов. Картинка ожила и стала выглядеть более эффектно.

IV. Несколько слов о программировании

С точки зрения программирования – это был первый серьёзный игровой проект для iOS в нашей компании. В нем мы активно использовали графический движок Cocos2D и физический движок Chipmunk. С Cocos2D мы были уже знакомы, и поэтому для этого движка у нас есть свой наработанный инструментарий – надстройки, утилиты и опыт.

Первые проблемы начались, когда художники нарисовали фоны. Пожелание было простое – полноформатные и полноцветные (1024х1024 png 24) иллюстрации. Реалии показали, что производительность iPhone все же не безгранична (fps упал до неиграбельного), и началась серьёзная работа по оптимизации. В итоге было найдено решение, а именно – использование сжатого формата изображения PVR TC, который поддерживается OpenGL.

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

Едва мы успели разобраться с одной проблемой, возникла новая: большое количество эффектов и мелких объектов привело к тому, что в процессе игры стала проявляться фрагментация памяти и производительность снова резко снизилась.

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

Не все оказалось безоблачным и с физическим движком Chipmunk. Во-первых, выбирали между Box2D и Chipmunk. Провели множество тестов производительности, по итогам которых были получены интересные результаты: оказалось, что Chipmunk эффективнее Box2D при малом количестве физических объектов, а это как раз подходило под наши задачи. Несколько проблем проявили себя при выгрузке объектов – один и тот же объект одновременно используется в 2-х движках, соответственно, выгружать надо одновременно отовсюду, а т.к. физические объекты удаляются на «специальном тике» (в определенный момент времени), а графический объект удаляется в любой момент времени – возникала проблема ресинхронизации. Решили проблему своим гауч-коллектором, который упоминался выше.

VI. Финишная прямая

Поддержка Game Center не вызвала особых проблем, были только изрядно удивлены, что стандартная нотификация (например на получение достижения) не предусмотрена в API и пришлось её реализовывать самостоятельно.

А вот IAP изрядно потрепал нервы разработчикам. Много известных багов – их не трудно найти в интернете, главное, помнить про них и учитывать при реализации.

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

Конечно, удалось реализовать далеко не всё – были идеи и об уникальном юните-герое (с элементами прокачки и апгрейда), и о древе технологий (позволяющее открывать новые юниты) и о многом другом. Возможно, все эти мысли найдут свое воплощение во второй части Hidden Wars, а может и в других, совершенно новых проектах.


Hidden Wars

Вчера игра появилась в App Store. Очень надеемся, что она вам понравится.
Цена: Free [iTunes link]

Данная история опубликована в рамках нашей рубрики Developer Story, где разработчики делятся секретами своей внутренней кухни.
Оставайся в теме. Подпишись на наш Telegram 👏
FavoriteLoading В закладки
undefined
iPhones.ru
ТЕКСТ: АНДРЕЙ ГРУДКИН (FLYGAMES). Все началось одним воскресным утром при просмотре очередной подборки свежих flash-игр. Анализ чужого творчества всегда полезен, как и поиск новых идей, оригинальных решений, свежих механик или интересного уникального сеттинга. Все это откладывается в памяти и в нужный момент может стать хорошим подспорьем при реализации нового проекта. Ну и конечно, красивые, интересные...
Прокомментировать

🙈 Комментарии 10

  1. La_Negro avatar
    La_Negro26 августа 2011
    0

    очень красивая )

  2. rom0307 avatar
    rom030726 августа 2011
    0

    идея очень интересная-затягивает.скачал с айтюнса только что.начиная с четвертого уровня приходится пораскинуть мозгами чтобы пройти

    очень хотелось бы увидеть версию для ipad
    спасибо разработчикам

    alefut avatar
    alefut27 августа 2011
    0

    @rom0307, Игра прекрасно смотрится и на iPad.

  3. iLyxa avatar
    iLyxa26 августа 2011
    0

    Developer: Okrujnost’
    © Flygames

    Вы как компания или как самостоятельный девелопер зарегины в эппл?
    Флайгеймс – ваш паблишер?

  4. FiLunder_7 avatar
    FiLunder_726 августа 2011
    0

    Всё отлично, но никогда не догадался бы, что это океанские глубины, если бы вы не написали об этом. ;)

    alefut avatar
    alefut27 августа 2011
    0

    @FiLunder_7, а рыбки по небу летают?

    Und avatar
    Und27 августа 2011
    0

    @alefut, ТБС для айфона? НАКОНЕЦ-ТО!

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

    ни в коем случае не придираюсь. просто наблюдения. спасибо разрабам за красивую БЕСПЛАТНУЮ игру. скоро либо поставят ценник, либо будет ин-апп.

    Und avatar
    Und27 августа 2011
    0

    забыл важный пункт: спасибо разрабам за красивую БЕСПЛАТНУЮ игру на РУССКОМ языке.

  5. mikla avatar
    mikla26 августа 2011
    0

    Ретину держит?

  6. Andril avatar
    Andril26 августа 2011
    0

    Прикольна

Вы должны авторизоваться или зарегистрироваться для комментирования.

Нашли орфографическую ошибку в новости?

Выделите ее мышью и нажмите Ctrl+Enter.

Как установить аватар в комментариях?

Ответ вот здесь