Airplay SDK и Cocos2D-x

Так оказалась, что всеми любимый cocos2d
Имеет хороший порт на C++, так еще и на AirplaySDK работает.

Не так давно создали раздел на форуме Мобильная разработка
Делать особо нечего) решил попробовать!
Благодаря посту от lumarama
Узнал про AirplaySDK
(Вернее знал и раньше, но не решался...)
Скачал, все работает — счастлив.
Но ихнее АПИ, мне не понравилось, слишком грубое оно, имхо.
Думал сделать свое, но жалко времени… гуглил… гуглил и нашел
cocos2d
. Да, да тот который все хвалят)
Только этот порт на C++, да еще и к AirplySDK подходит.
(Какие сразу мысли в голове, йОС, Андройд, Симбион… что там еще...)
Скачал — работает, есть баги, но все нормально — буду делать)
Больше всего нравиться, что АйрПлей дружит с Visual Studio.
Кто со мной?

Ссылки:
Airplay SDK: airplaysdk.
Cocos2d-x: cocos2d-x.org

ПС
Кому-нибудь будет интересно про это читать?
Время от времени, могу делать заметки в своем блоге

Комментарии (68)

+1
Пиши, кто мешает:)
0
Этот пост вообще не о чем, а так было бы очень интересно почитать об опыте разработки на Cocos2D-x.
+1
опыта нету) только второй день, как будет напишу…
мне структура понравилось, разобрался быстро
0
Давай, будет круто.
+4
Пиши конечно, интересно. Только большая просьба — постарайся посты оформлять более традиционно (в конце предложений ставить точки; не начинать каждое новое предложение с новой строки). А то очень уж тяжело воспринимать информацию. :)
0
ок, постараюсь) трудно мне это — пишу так все время…
0
:) понимаю. могу помочь с форматированием, если что. обращайся.
0
буду иметь ввиду)
но и стараться тоже ^_^ буду
а ты видишь записи из черновиков?
0
а ты видишь записи из черновиков?
нет, записи из черновиков видят только их авторы. ни пользователи, ни админ не могут их увидеть.
+3
Человек, чей мозг съеден аськой. ^__^
0
Как этому можно вообще научиться? оО
0
еще добавлю что есть 2 ява порта под андроид ,)
+1
Пока так же на cocos2d-x остановились, не хочется ObjectiveC использовать, да и мультиплатформеность радует. В начальном процессе изучения. Еще заинтересовал Unity 3D, хоть и платный для iOS/Android но более перспективный как мне кажется, для 2D вон Sprite Manager 2 достаточно интересное дополнение.
+1
возможно, нужно попробовать, мне вот оно не понравилось.
Мне нравиться, когда просто блокнот для кода, а не куча не понятных окошек…
0
Я вот тоже недавно купил ipad, а чуть менее недавно скачал и поставил airplaysdk. Вот пытаюсь что-то действующее собрать, на api airplaysdk, правда, без движков.
0
тоже так хотел, но потом решил, а вдруг, мне в голову взбредет или по какой-нибудь причине, типа спонсор попросит что-нибудь вставить, тогда я безболезненно
скомпилирую то же приложения в сишном порте кокоса на маке.
0
так что этот Сocos2d-x и правда через Airplay SDK API написан? я думал что это просто С++ версия известного движка — то есть не под Airplay
0
Есть порты под разные платформы.
Хотя я могу ошибаться, не пытался в этом разобраться)
Но сразу при скачивания архива cocos2D-x
есть и папки с примерами для AirplaySDK и Шаблоны проектов,
так, что там просто)
На сколько я понимаю в AirplaySDK есть поддержка GL (вроде 1 и 2)
(т.е. непосредственно команд GL)
И этот какос использует эти методы ОпенгГЛ.
(собственно как наверно и просто сишный порт)
Так, что если ты имеешь ввиду, использует ли он
Аировские iwImage и подобные, то я думаю нет.
0
Надо обязательно! Такие темы надо в коллективных писать, лучше всего начать делать туториал, быстрее всего можно освоить и людям рассказать. Вот у lumarama отличный вопрос для начала, как это вообще установить и связать?
+2
Ну в коллективный — нет)
Как тут сказали это пост «не о чем».
Хотел просто поделиться с обществом, что нашел такую интересную вещь)
Установка простая, вот тутр на хабре habrahabr.ru/blogs/development/120684/
А про какос — то просто скачиваешь и там есть архив Тест, в нем много примеров (правда в одном проекте, что не удобно читать)
Также есть папка template, в нем создан проект, просто имя поменять)
и все можно разбираться в какосе)
0
Вот уже и стал пост очень о чём. Спасибо!
0
Хочу всех расстроить AirPlay sdk сегодня переименовать в marmalade и что самое печальное он больше не бесплатный для айфона — $149 самая дешевая лицензия которая покрывает iOS и android
0
как раз хотел пост написать (
ну 150 это не много) имхо
А ты успел купить инди айра до мармеладки?
0
Неа я как раз дупал сделать это когда игра будет готова чтобы убрать сплешскриин с лого ихним — хотя он меня особо не напрягает но если бы издателю не понравилось я бы купил инди лицензию за 99 а теперь даже 150 долларов не убирает их сплеш скрин — нужно покупать лицензию за 500 — у них кстати не написано что это 500 за год или разовая плата
0
Вот облом! Только что-то такое сделал…

Я бы и купил за 150, все равно еще 100 эпплу отдай, так что бесплатно не выйдет, но это ж не годится с их сплешскрином. А 500 — уже что-то дороговато для экспериментов.

Но по идее уже полученная бесплатная лицензия действует.

А вообще, при такой цене уже можно покупать мак мини и кодить в XCode. Для меня лично основным преимуществом была и осталась возможность все делать на PC.
0
Ну для успокоения души могу сказать что юнити 3д и за 400 долларов свой сплеш скрин не убирает и только под айфон позволяет — андроид еще 400 долларов плати — а тут как бы 150 за айфон и андроид — для экспериментов ты можешь и евалуэйшн лицензию на 45 дней взять — ну а вообще что в принципе сильно плохого в сплеш скрине? Неужели мы такие гордые ихотим наш логотип в начале?) в принципе потом то в игре уже ничего не будет — только твои логотипы
0
По идее у меня есть действующая iphone лицензия на airplay sdk, никто ее не отнимает…

Про юнити уже писал — не вариант.

Если реально что-то сделается продаваемое, то можно и 500 баксов потратить. Только сделается оно или нет — кто ж знает…
0
Бесплатная айфон лицензия истекает через 30 дней
0
Да уж, это обидно.
Кстати не заметил этого нигде на сайте, только если зайти в свой аккаунт то видно, что есть срок годности у лицензии.
0
А сплеш-скрин в коммерческом проекте оставлять очевидно нельзя, просто издатель не возьмёт скорее всего.
0
Это почему если девелопер может вставить свое никому неизвестное лого — то какая проблемма если там будет лого чье-то еще — правда может быть проблемма в том что издатеть захочет свое лого в самом начале
0
Там насколько мне известно двухступенчатый сплеш скрин — первый выскакивает кого игра грузится а птом выскакивает второй пока игра инициализируется — это могут быть две разные картинки — надеюсь они только первую картинку будут занимать а на второй мочно уже будет свое вставит
0
ох я думал если купить лицензию за 150, то сплеш пропадет…
с ним мне кажется фигово… благо я пишу на какосе и перейти на простой порт какоса под сипп
очень просто) буду рассматривать такой путь к концу разработки…
0
Кстати, полез смотреть Unity — для iOS нужно иметь Maс, так что не вариант. Имея Mac ИМХО фреймворк не нужен особо.
0
Есть еще однa штука — MoSync — тоже c++ — для инди бесплатная — пока...)
0
Не — там нужно мак иметь — не то немного
0
А ты Щупальца свои ведь на airplay делаешь? (или сделал?) Т.е. фактически попал на то, что надо платить?
0
Ага — фактически попал — нужно было 99 долларовую брать на год — они всех конечно подвели что не предупредили — а еще вот эта 150 долларовая лицензия ж имеет пометку — limited time offer — то есть скоро и такой цены не будет — что-то они как то уж очень резко
0
Из того что я заметил по описанию: нет поддержки акселерометра (для меня критично), нет поддержки game center…

И главное: для компиляции под iOS нужен мак и iOS SDK, т.к. на выходе оно дает проект для XCode.
0
Фреймворки на C++ для инди-разработки? Ок, ок.
  • tdz
  • tdz
0
не понял — а в чем проблема?
0
В плюсах и объёмах кода на них, чтобы писать в жало. :]
+1
я вообще не понял)
кода на сипп будет не намного больше чем на ас3 имхо
мы же не Крайзис пишем…
0
я тоже как то не понял — по моему на плюсы AS3 код почти один в один переводится — исключение заголовочные файлы (которых нет на AS3) — но заголовочные файлы — это где-то 5-7% от всего кода
0
имхо, кода бывает много, когда API неудобное — а если API одинаковое — то код будет приблизительно одинаковый — на C++ получается даже более компактный код (потому что не нужно писать function в начале каждой функции и var перед объявлением переменной :)))
0
> на плюсы AS3 код почти один в один переводится
Хм, ты пробовал писать на C++ всерьёз? )

Ну поглядите, мы зимой Airplay SDK щупали и не в восторге от скорости разработки.

0
ну вообще я переписал свою Tentacle Wars с AS3 на С++ и это была почти механическая работа — конечно нужно сказать что я подготовил специальный класс заранее — некий простой аналог Sprite — в него я спрятал все особенности Airplay API — и таким образом мой код игры потерпел минимальные изменения так как основное API что использовалось в игре — это методы класса Sprite. А вообще я уже 10 лет пишу на основном месте работы на С/C++ и для меня как раз все наоборот — как бы на AS3 сделать то что я знаю как делается на C++ :)
0
> А вообще я уже 10 лет пишу на основном месте работы на С/C++

Ок, это меняет дело. :] Сколько не совался в плюсы, писать на них без постоянной практики дискомфортно. Что не могу сказать про Java/C#/Python/AS3.
0
«нет автоматического выделения памяти» — это все что отличает С++ от перечисленных тобой языков (Phyton не знаю — но подозреваю, что тоже) — все остальное это незначительные отличия в синтаксисе правильно?
0
автоматического управления памятью — то есть ты не следишь за удалением неиспользуемых объектов — это я имел ввиду — в С++ ты должен четко за этим следить — то есть он требует большей «аккуратности» — создал объект — подумай сразу где и когда ты будешь его удалять
0
И это тоже. Я уже как-то пробовал объяснить про-кодеру на плюсах, что они конфузят очень сильно неопытных в языке программистов. Вообще всем. Одни только рефы-поинтеры чего стоят. )
+2
но… как я выяснил ты должен следить почти за тем же самым и на AS3 — удалять лисенеры событий перед тем как ты обнуляешь последнюю ссылку на объект — иначе этот объект висит в памяти и гарбаж коллектор его не удаляет — более того — если это лисенер onEnterFrame — он к тому же еще постоянно вызывается и забирает CPU — у меня былп проблема с утечкой СPU в игре один раз — потратил некоторе время чтобы все правильно подчищать — после чего понял — что гарбаж коллектор это все равно в некоторой спепени миф — ты ложно думаешь что он удалит и подчистит за тебя ресурсы которые тебе не нужны — но на самом деле ты должен сам делать кое что — чем это сильно отличается от С++ — в С++ по крайней мере у тебя нет иллюзии — язык говорил тебе прямо — следи за порядком с самого начала
0
вот, вот, это имо главный фейл для АС3 (идеологически, для быстрого написания кода не заморачиваясь с менеджментом ресурсов). И это помимо глюков самого плейера по освобождению памяти после всяких там битмапов.
+1
чтобы не быть голословным вот пример функции на AS3 и на С++
имхо — отличий не много

*********************************** AS3 *****************************************

private function sendAttack():void
{
var isUpdateView:Boolean = false;
var attacksNum:int = 0;
for (var i:int = 0; i < m_origLinks.length; i++) {
var link:Link = m_origLinks[i];
// don't attack if cell is too small
if (m_power < MIN_ATTACK_POWER) {
break;
}
if (link.isAttached()) {
if (link.sendAttack(1)) {
attacksNum++;
}
}
}
if (m_power < 0) {
m_power = 0;
}
if (isUpdateView) {
updateView();
}
m_cellGrowSlower = attacksNum * 2;
}

*********************************** C++ *****************************************

void Cell::sendAttack()
{
bool isUpdateView = false;
int attacksNum = 0;
for (LinkList::iterator it = _origLinks.begin(); it != _origLinks.end(); it++) {
Link* link = *it;
// don't attack if cell is too small
if (_power < MIN_ATTACK_POWER) {
break;
}
if (link->isAttached()) {
if (link->sendAttack(1)) {
attacksNum++;
}
}
}
if (_power < 0) {
_power = 0;
}
if (isUpdateView) {
updateView();
}
_cellGrowSlower = attacksNum * 2;
}
+2
но касательно комикса вверху — нужно сказать следующее — C++ менее терпим к ошибкам — чем AS3 скажем — это главным образом из-за того что в С++ ты сам следишь на удалением объектов — и если ты вдруг случайно удалишь объект раньше чем нужно — то ты получишь креш — если забудишь освободить — получишь утечку памяти — нужно писать код «аккуратнее», чем на AS3 — но это опять же имхо — не характеристика инди — инди — не значит «неопытный», верно? :) значит я бы сделать такой вывод на С++ лучше писать более опытным разработчикам, но это не значит что он требует в несколько раз больше времени на написание того же функционала — все зависит от АПИ которое тебе предоставляет SDK — и если даже это АПИ более низкоуровневое (как в Airplay SDK) — то тебе всего-навсего нужно написать надстройку которая ускорит разработку будущих игр — Cocos2d-x например одна из таких надстроек
0
кстати интересно, ты говоришь что вы щупали Airplay и не в восторге от скорости разработки — а на чем остановили свой выбор?
+1
Т.к. команда маленькая и у нас нет мощностей на тестирование зоопарка девайсов, решили, что проще и быстрее писать на ObjC и при окупаемости заказывать порт на Андроид с тестированием. Что и порекомендую рвущимся на все платформы разом. Не выйдет усидеть на стольких стульях, если вас 1-3 человека.

Кстати, вот ещё забавная штука, но пока молодая слишком:
www.monkeycoder.co.nz/
0
хм, интересно — нет официальное Apple SDK — это конечно гуд — но если у вас команда — то вам даже не один а несколько маков нужно было купить значит? но впрочем учитывая текущую политику ценовую Airplay SDK — это уже не бесплатная среда — так что все равно нужно за каждого девелопера платить от $150 до $500
0
Для кода хватает и Mac Mini, который не дороже хорошего ПК.
+2
Язык Манки — фигня расчитанная на впечатлительных нубов! Всем своим опытом негодую против.
Разработчики вместо того чтобы делать нормальные современные языковые фичи, тупо умничают. Уровень языка — прошлый век. А у них ведь МЯП (мета язык), который может транслироваться как угодно в конечный язык. Но в этом и главный косяк, кстати. Это просто транслятор с базового языка на язык целевой платформы. Т.е. тужно средство разработки под эту платформу все равно. И наверняка придется допиливать напильником код. А чем разбираться в чужих косяках — лучше сразу портиривать свой отлаженый код (если он есть конечно).
АПИ убогое. Движка и фреймвока нет (хотя уже из комьюнити что-то сварганили бесплатное), библиотек тоже. Есть только обертка, которая на разные ЯП переводится. Это еще и глючит. Как tdz, заметил — «пока молодая слишком». Хочу только выделить слово слишком.
Мое мнение — тут люди ни за что, по сути, просто рубят бабло на комьюнити от прежних проектов. Удачный проект БРЛ (разработчик) был Блиц3Д, все после него пошло по наклонной, и Манки только подтверждение. Разраб заболел маркетингом и болезнь прогрессирует.
Но, конечно, они могут исправится еще, но мой опыт говорит, что вряд — ли. Подход к кодированию попустительский (элементарные ашипки в либах, просто прочти доки, как говорится, но разраб занят маркетингом больше чем фиксами) к исправлению багов — тоже (годами не фиксятся даже на флагманских продуктах). К добавлению фич, которые просят — делайте выводы сами по первым двум пунктам. Правильный — как повезет и годами просить/ждать.
Аналогично Манки можно использовать Хэкс, который бесплатен. Но не под все платформы только. Но мы же про иОС?
А если говорить о портах с АС3 на иОС, то существуют решения, которые перегоняют непосредственно АС3 проекты на яблочную платформу (не могу найти быстро), но платные.
0
Ясно, спасибо за мнение. Про допил на конкретных языках понятно, это довольно жирный минус, да.

Опять же, проще и дешевле портировать/поддерживать руками специалистов на платформе, чем плясать вокруг магического решения, пихающего проект на все устройства.

Баги и ограниченные возможности большинства фреймворков совсем не помогут сделать серьёзный проект (в какой-нибудь Corona SDK даже OpenFeit нету).

А так они прут как грибы. ) Вот ещё встречал готовящийся к выходу: deltaengine.net/
+2
Вот еще готовится App Game Kit: www.appgamekit.com/
Который обещает быть «Access to full source code» что позволит не ждать фиксов, но лучше конечно, чтоб фиксы были не нужны. Неизвесно за какие это будет деньги — а жадность того-же Аирплея внезапно пугает, хотя конкуренция это все попустит.
Также сорцы позволят не ждать фич.
Эт ща тренд в двигостроительстве — мультиплатформенность с иОС :)
Да еще вот www.stencyl.com — обещают сделать под яблоки.

Минус манки еще в том, что надо изучать еще одну технологию — его самого как прослойку. При допиле нужно будет знать тот-же обжектСи или яву. А при работе с манки еще и знать манки. Проще уж сразу на обжектСи.

Ну и еще я не сказал что я бы его стал использовать:
1) С нормальным ЯП уровня Шарп, АС3, (ява устарела Груви рулит), на кряйняк С++ (жестко но универсально).
2) Компиляцией, а не трансляцией (нажал кнопку — получил готовый к исполнению (заливке на дивайс) файл.
3) Норм. поддержкой, реагирующей не на своих тараканов, а на пользователей (хотя этим страдают все, вопрос в степени увлеченности тараканами) и внедряющей просимые фичи.
4) Хорошим АПИ (либы, фреймвок, облегчающий разработку), быстро включающим последние вводимые фичи яблочных АПИ. И в качестве поддержки, а не платных аддонов — лучше нативное средство потреблять тогда — там бесплатно.
5) Встроенные средства отладки. Не минимальные типа логов или банальных принтов — это и самому можно сварганить, но хорошо конечно когда и варганить не надо, но если мы не гиганты мысли пишущие код без ошибок (я такой — пишу с ошибками, хотя сурово юзаю логгирование), то отладка нужна.

Вот думаю это ключевые факторы для любой среды разработки под любую платформу. Дальше тонкости типа нужна ли в АПИ физика и прочее.
Ну вот манки не удовлетворят ни одному пункту.
0
Ну вот первый пункт выполняют Unity3d и Mono. Однако на первом сложновато делать некоторые типы 2d-игр, а второй колбасит сейчас сильно (Novell распустил Mono) и пока игровых наработок я там не видел.

Но ведь Cocos2d есть под iOS, Android, JavaScript и, внезапно, Windows. Да, есть C++ версия, но всё равно в том же iPhone её нужно сращивать с ObjC, насколько я знаю. При готовой версии хотя бы под одну платформу, переписать синтаксис игры и десяток классов специфического взаимодействия с платформой — не такая большая проблема, как возможная возня с капризами проприетарного 3rd party.
+2
По 2d в Unity3d, кстати, вышла статья на Хабре:
habrahabr.ru/blogs/gdev/122197/
0
Во нашел, но не совсем то: openplug.com
Цены демократичные — про стоит 79.00 ?
Но сам СДК пока еще не очень — надо писать под их ФВ, хотя и на АС3, не все стандартные функции поддерживаются.

Я где-то видел тулзу, где разрабы заявили, что полная поддержка АПИ флеша, и конвертится прямо проект CS5 флеша (но как там с флексом хз).

Адоб уже официально представила новые версии своих программ с возможностью разработки под Android, BlackBerry PlayBook, iPhone и iPad 20 июня 2011 года.
+2
Ну так это вопрос скорости изучения. А если уже пишешь на C++, то мне лично на нем писать комфортнее, чем на as3.
0
а для меня это был даже такой выбор: C++/PC (который я знаю/имею) или Obj-C/Mac (не знаю/не имею) — к тому же Android в спину дышит — все обещает доминировать и свергнуть iPhone. Вообще не люблю его именно за это :)
Комментарий был удален
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.