Cocos2d для iPhone против Cocos2d-x

Я работал с Cocos2d для iPhone и нахожу это восхитительным. Я начинаю другой проект, и наткнулся на Cocos2d-x, порт C++. Меня искушает мысль о возможности (с учетом) сборки для нескольких платформ одновременно. Мне одинаково удобно работать с Obj-C и C++, и я не ищу сравнений между этими двумя языками, если это не связано с работой с Cocos2d.

Кто-нибудь работал с обеими версиями движка, и можете ли вы прокомментировать конкретные плюсы и минусы этих двух? Cocos2d-x "закончен"? Надежная?

7 ответов

Решение

Приманка многоплатформенных сборок - это замаскированный кошмар. Любой веб-дизайнер расскажет вам ужасные истории о том, как пытаться совмещать IE с Firefox и Chrome с чем угодно одновременно. Вы не будете внезапно зарабатывать больше продаж, потому что вы смогли запустить на Android/iOS/ и т. Д. В первый день. Скорее всего, ваши попытки мультиплатформенности будут ограничивать ваше приложение таким образом, чтобы убить его на всех платформах. Лучше всего начинать с одной платформы, заканчивать ее, а затем строить для других. Ваш конечный продукт поблагодарит вас.

У Cocos2d-x нет плюсов / минусов, если вы не любите C++ больше, чем Obj-C.

Я бы согласился с тем, что вам следует сосредоточиться на разработке для одной платформы, пока у вас не появится хороший солидный продукт. Однако многие разработчики, которые делают это после факта, понимают, сколько усилий и дополнительных затрат необходимо для полного переписывания игры на новой платформе. Если бы вы заранее подумали, что вы можете свести к минимуму необходимость переделки и, таким образом, минимизировать свои расходы, когда будете готовы портировать игру. Android слишком велик на рынке, чтобы полностью его игнорировать; На мой взгляд, Cocos2d-x - это путь, если вам нравится Cocos2d.

Я не знаю о cocos2d-iphone но я знаю о cocos2d-x,

Плюсы:

  • cocos2d-x использует C++ (ну, не совсем профессионал для некоторых, но для меня это профессионал)
  • Вы можете легко развернуть на разных платформах, при условии, что вы настроили его правильно (см. Ниже)
  • Он поддерживает Lua и JavaScript для еще более простого кодирования

Минусы:

  • cocos2d-x имеет мало или нет документации. Вы бы полагались на тестовые проекты и API Reference. Слава богу, есть такие люди, как Nathanael Weiss, которые сделали обучение доступным для пользователей. ( http://paralaxer.com/cocos2d-x-book/)
  • Настройка вашего проекта для работы на любой платформе - сложная задача. Вы должны хорошо разбираться в нескольких IDE, а также в командах командной строки / терминала
  • Большинство сценариев, которые поставляются с библиотекой для создания новых проектов, не являются мультиплатформенными, то есть вам все равно придется настраивать их индивидуально для всех платформ.
  • Интеграция сторонних SDK, таких как Facebook, реклама и другие материалы, занимает много времени, так как вам придется внедрять их для каждой целевой платформы.

Я разрабатываю с cocos2d-x для iphone, и он прекрасно работает для меня. Единственная проблема, с которой вы можете столкнуться, это то, что API всегда немного отстает от cocos2d для версии для iphone. Однако сам API является надежным и факсимильным по большей части оригиналу.

Если вы серьезно относитесь к переносу на другую платформу, несмотря на то, что сначала вы попытаетесь добиться успеха на одной платформе, Cocos2d-x - это путь, потому что вам не нужно будет переписывать суть вашего кода на каком-то другом языке позже (то есть порт из C++ в objc или из objc в C++).

Я работал с Cocos2d и Cocos2d-X только для разработки iPhone (пока). Я работал с Cocos2d около 1,5 лет и перешел на Cocos2d-x в последние шесть месяцев или около того. Сначала я не хотел переходить на Cocos2d-x, потому что, на мой взгляд, он все еще созревал. В Coco2d 2.0 появилось много изменений, и я знал, что он хорошо развернут и протестирован. Coco2d-x, казалось, все еще был в движении. Это изменилось, и я решил использовать Cocos2d-x на время, пока он продолжает поддерживаться.

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

Мне комфортно работать в мире Object-C и C++. Я не знаю, смогу ли я когда-нибудь перенести свои "вещи" на Android, но приятно иметь такую ​​возможность.

Тем не менее, БОЛЬШОЙ решающим фактором для меня была возможность повторного использования. Я создаю множество компонентов и виджетов, которые я использую в других проектах. Если бы я разработал только для iOS, Objective-C будет путь. Но я работаю в основном на C++ и не хочу перекодировать все идеи с одного языка на другой каждый раз, когда хочу вывести проверенный инструмент из набора инструментов.

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

В настоящее время я работаю над cocos2d-x, и я очень доволен этим. Я бы посоветовал начать проект на одной платформе (я предпочитаю IOS). И когда вы успешно запустили на одной платформе, начните на другой.

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

Я бы придерживался Cocos2D-iphone. Сосредоточьтесь на продукте от большего сообщества с намного большим количеством ресурсов. Когда вы будете готовы к портированию, используйте apportable для компиляции приложения для Android, когда оно будет готово.

Другие вопросы по тегам