![](https://habrastorage.org/getpro/habr/post_images/533/8d5/af2/5338d5af23c60c8e0787fc60b2d44c4f.png)
  Данный пост будет полезен разработчикам, которые только встали на радужный путь геймдева. В нашем недавнем посте уже было рассказано о первоначальных шагах нашей dream team в сфере игройстроя. Как и обещали, работаем в этом направлении дальше и решили попробовать себя в другом жанре игр. Далее будут кратко освещены некоторые моменты создания и публикации игры на двух платформах iOS и android.
Инструменты разработки
Cocos2d-x
![](https://habrastorage.org/getpro/habr/post_images/a26/962/632/a2696263264e30d568bfdca8a5ff5178.png)
  Предыдущий опыт показал, что распыляться на две платформы (ios\android) довольно расточительно, тем более с игровым проектом. В связи с этим, выбор пал на кроссплатформенность. На тот момент имелся опыт работы с Unity3D и Cocos2d. А так как предполагаемый проект был 2D-игрой, то выбор пал на кроссплатформенную реализацию Cocos2D-x. Не последнюю роль при выборе сыграла
Cocos2d-x является открытым игровым движком, исходный код которого распространяется под лицензией MIT. Для кроссплатформенной разработки под платформы iOS, Android, Windows Phone, BlackBerry, Tizen могут использоваться такие языки как C++, Javascript, Lua. Ниже представлена таблица с платформами, где «o» означает, что все работает круто, а «i» – что разработка поддерживается, но не рекомендуется.
![](https://habrastorage.org/getpro/habr/post_images/b8e/c90/b9e/b8ec90b9ed99a20a94962ca79b51bef0.png)
Платформа имеет большое комьюнити, которое не оставит вас в беде. Из именитых компаний, использующих данный движок, можно отметить Zynga, Konami, Glu, Gamevil и KingSoft. Также недавно Microsoft Open Technologies поспособствовала легкому портированию игр на Windows 8 и Windows Phone 8.
Разработка на JS
  Наш проект разрабатывали с помощью javascript. Использование Javascript Binding-a аргументируют более быстрой разработкой по сравнению с С++, а также возможностью запускать проект в браузерах (удобная отладка проекта в консоли браузера).
![](https://habrastorage.org/getpro/habr/post_images/5fb/bde/af4/5fbbdeaf496470e6d3f8538244aa25ec.png)
Написание игры с помощью javascript доступно во всех реализациях cocos'a — cocos2d-x, cocos2d-ios и cocos2d-html5. Но в то время как cocos2d-html5 запускается в браузере, cocos2d-x/ios предоставляют js-binding, позволяющий значительно увеличить производительность. Фактически, весь код движка — графика, рендеринг, физика и др — будет исполняться нативно, а непосредственно игровая логика — на javascript. Также посредством нехитрых манипуляций есть возможность реализовать наиболее ресурсоемкие операции нативно. В качестве джаваскрипт-движка используется SpiderMonkey.
Единственный браузер, где не наблюдались тормоза игры это Safari (хотя в рекомендациях советуют использовать Chrome). Путем нехитрых манипуляций мы запускали проект на ZTE Open с Firefox OS на борту.
При использовании js для модифицирования базового кода необходимо также модифицировать и биндинг новых методов, хотя это можно делать и автоматически с помощью bindings-generator.
CocosBuilder
![](https://habrastorage.org/getpro/habr/post_images/c81/b75/fc5/c81b75fc5fcdd7b0d91523a0e85782a6.png)
  Незаменимым помощником для нас является CocosBuilder — это бесплатный инструмент (выпущен под MIT-лицензией) для быстрой разработки игр и приложений. С его помощью можно управлять сценами, спрайтами, элементами интерфейса, анимацией объектов и др. Присутствует система частиц, которую можно подготовить с помощью встроенных средств или специальной тулзы Particle Designer. Также можно настраивать покадровую анимацию, задавать последовательность анимаций и многое другое.
На данный момент javascript поддерживается только в альфа версии 3. Доступен только для Mac OS. Ознакомиться с возможностями можно здесь и здесь.
CocoStudio
![](https://habrastorage.org/getpro/habr/post_images/6df/0a7/d22/6df0a7d220de89afa3ecc5ec721bb4fb.png)
  CocoStudio — появилась не так давно и создавалась как альтернатива CocosBuilder. Раньше интерфейс был только на китайском языке и совсем недавно его перевели на
При запуске программа представляет на выбор 4 редактора:
- UI editor– кнопочки, списки и тому подобное. Пока что доступно 12 элементов интерфейса, но обещают добавить еще.
- Animation editor – по словам разрабов, данный редактор сходен с Adobe Flash анимацией. Основной упор делается на скелетную анимацию, также присутствует и обычная покадровая анимация. Имеется texture packer.
- Data editor – позволяет преобразовывать данные из excel таблиц в данные, пригодные для обработки в cocos2d-x.
- Scene editor – позволяет манипулировать всеми частями проекта, полученными из первых трех редакторов. То есть можно эмулировать игровой уровень. Также есть возможность использовать сторонние вспомогательные тулзы, такие как particle designer.
В общем, беглый осмотр возможностей дает понять, что продукт ждет радужное будущее. К сожалению, доступна только windows-версия, поэтому в своих разработках мы еще не использовали данный редактор.
Tile Map Editor
  Tile – open source проект, который мы использовали для создания уровней.
![](https://habrastorage.org/getpro/habr/post_images/db7/630/e61/db7630e61d32d4e34490aca6a1918b73.png)
Работу с тайлами можно описать следующими этапами:
- Сначала выбираем базовый размер карты, а также размер тайла.
- Добавляем в TileSets наш атлас с картинками.
- Размещаем тайлы на карте.
- Сохраняем карту в стандартизированный формат tmx.
Созданные карты сохраняются в формате TMX (Tile Map XML) – позволят гибко описать карту с тайлами различного размера, различным количеством слоев, объектов и их свойств. К примеру, можно задать различные слои для тайлов поверхности, для декораций. Также удобно задавать траектории движения объектов. Через задания свойств тайлам можно программно подменять их, допустим, на какие либо динамические объекты.
Отличные посты для знакомства с level-редактором: раз, два.
Texture Packer
  Texture Packer – используем для создания атласов с текстурами. Паблишить можно под различные платформы, такие как Cocos2d, Corona, Sparrow, LibGDX, LimeJS, Ogre и др. Доступно для Mac, Win и Linux. Также эта компания предоставляет еще один отличный продукт Physic Editor, который мы используем в текущем проекте.
![](https://habrastorage.org/getpro/habr/post_images/a55/e84/fcb/a55e84fcb376cefe4151420bb56d812b.png)
Сборка проекта
  Сборка проекта начинается с паблишинга в CocosBuilder, где отдельно учитываются настройки iOS, android и html5.
![](https://habrastorage.org/getpro/habr/post_images/b85/0b3/01a/b850b301a956fc7e1d6662f1a4f31350.png)
  Далее, в случаее iOS мы открываем проект в Xсode и наслаждаемся запуском игры на симуляторе или устройстве.
А вот в случае android нужно немного повозиться. Необходимо настроить пути к android NDK, SDK и cocos2d-x, и потом с помощью скрипта build_native.sh проапгрейдить проект. Потом полученный проект можно открыть уже в Eclipse (или Idea) и работать уже с манифестом и java кодом. Кстати, для платежей и некоторых рекламных сетях уже существуют готовые фреймворки, но для нас не составило труда использовать нативный код для обеих платформ.
Подробнее о настройках паблишинга можно почитать тут или тут.
Для нашей игры выставили минимальную версию ios 5.0. Для android минимальная версия 4.0, хотя есть возможность сделать 2.3, но наша игра рассчитана на девайсы с большим экраном, да и на поздних версиях вероятность крэшей существенно снижается, поэтому пока что решили проверить работоспособность на более новых аппаратах.
Запуск и продвижение
  В общей сложности игра заняла у нас где-то 1,5 месяца разработки. Значительная часть времени ушла на знакомство с движками и утилитами. Проект оказался на Apple Store пятого ноября ночью и на следующее утро мы приступили к промоушену. Большую часть заложенных на промоушен средств мы сосредоточили на рекламе в мобильном приложении Facebook, заложив таргетинг только по USA и по интересам, релевантным нашей игре. Также мы закупили немного шэров и лайков и ретвитов, в надежде на эффект сарафанного радио в социальных сетях Google+/Vk/Facebook.
Остальная часть рекламной компании прошла без затрат денежных средств и заключалась в рассылке пресс-релизов к редакторам интернет-изданий про iOS/Android с целью заинтересовать их нашей игрой и возможностью попасть в какой-нибудь еженедельный дайджест или даже с возможностью обзора самой игры.
Но, к сожалению, реклама на Facebook не дала тех положительных результатов, которых нам удалось достичь с другой нашей игрой и практически прошла бесследно. Рекламный бюджет на USA наверно можно смело умножать на 10, по сравнению с Россией (ios).
Самые высокие позиции, которых удалось достичь на данный момент — это всего шесть стран, куда игра вошла в топ 50 по категории “Стратегия” и около 30 стран где она колеблется между 200 — 300 местом по этой же категории.
![](https://habrastorage.org/getpro/habr/post_images/10b/dd1/dab/10bdd1dab30e49e03076079a7f7b74f7.png)
Каких-то более-менее заметных результатов в общем топе игр или общем топе всех приложений достигнуто не было. В предстоящем времени мы приложим усилия к кросспромоушену с помощью наших существующих приложений, а также закупим пару обзоров, на 4pda, например (там, кстати, изменилась политика поддержки разработчиков). Попробуем таргетированную Facebook Ads на страны Европы (скорее всего Испания, Германия, Италия, пока еще не решили). Большую часть сил и средств бросаем на iOS платформу, так как выхлоп будет значительно больше. В общем, это был наш первый проект касательно кросс-платформенной разработки со всеми ее плюсами и минусами, так сказать проба пера и нам нравится то, что из этого получилось, будем надеяться, что предстоящая раскрутка поможет слегка поднять и удержать игру в топе.
Подводя итог, хочу заметить, что нынешние инструменты позволяют с легкостью создавать игры, были бы идеи. Ждем ваших вопросов по процессу работы.