Войти

Или войди с помощью

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

Dev Story
Информатор avatar |
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, где разработчики делятся секретами своей внутренней кухни.
10
undefined
iPhones.ru
ТЕКСТ: АНДРЕЙ ГРУДКИН (FLYGAMES). Все началось одним воскресным утром при просмотре очередной подборки свежих flash-игр. Анализ чужого творчества всегда полезен, как и поиск новых идей, оригинальных решений, свежих механик или интересного уникального сеттинга. Все это откладывается в памяти и в нужный момент может стать хорошим подспорьем при реализации нового проекта. Ну и конечно, красивые, интересные...

10 комментариев

Котик
Котик
Котик
Котик
Котик
Котик
Котик
Котик
Котик
Котик
Котик
Котик
Котик из TikTok
Котик из TikTok
Котик из TikTok
Котик из TikTok
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Видео мем
Видео мем
Видео мем
Видео мем
Видео мем
Видео мем

Какие правила в комментариях
  1. La_Negro avatar
    La_Negro 26 августа 2011
    0

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

    Войди на сайт, чтобы ответить
    Ответить
  2. rom0307 avatar
    rom0307 26 августа 2011
    0

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

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

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

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

    Войди на сайт, чтобы ответить
    Ответить
  3. iLyxa avatar
    iLyxa 26 августа 2011
    0

    Developer: Okrujnost’
    © Flygames

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

    Войди на сайт, чтобы ответить
    Ответить
  4. FiLunder_7 avatar
    FiLunder_7 26 августа 2011
    0

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

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

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

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

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

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

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

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

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

    Войди на сайт, чтобы ответить
    Ответить
  5. mikla avatar
    mikla 26 августа 2011
    0

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

    Войди на сайт, чтобы ответить
    Ответить
  6. Andril avatar
    Andril 26 августа 2011
    0

    Прикольна

    Войди на сайт, чтобы ответить
    Ответить

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

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