Я работал некоторое время с Unity3d и нашел его 2D-часть с OnGUI () или GUITextures слишком неуклюжей. Кроме того, даже самая маленькая игра, созданная на Unity3d, имеет загрузку не менее 10 МБ, что слишком много для 2D-игры.
Итак, я сейчас ищу движок для 2D. Я пробовал Cocos2D, но это только iOS, и я не хотел бы переписывать все на другой язык для Android (так, например, порт Java Cocos2d для Android не вариант). Вместо этого я хочу написать код один раз и с наименьшими трудностями развернуть его на iOS, Android и, возможно, Windows Phone 7. У меня есть Mac и Windows.
Просто чтобы быть более подробным, вот мои требования к двигателю:
- должен быть кроссплатформенным
- должен быть эффективным
- должен быть C ++, Java, C # или Objective C, так как мне удобно с ними, а не Flash, Javascript, HTML5, так как я не веб-разработчик
- у вас должно быть большое сообщество, учебные пособия, дополнительные библиотеки, которые охватывают большинство вещей, которые вы имели бы при разработке непосредственно на iOS или Android (биллинг внутри приложения, facebook и т. д.)
- конечная доставленная посылка должна быть не слишком большой
- двигатель может быть бесплатным, но я также не против заплатить разумную цену
Я нашел следующие двигатели:
- Marmalade (и движок IwGame поверх него) - C ++, нашел в целом очень положительные отзывы о Marmalade, но не уверен насчет IwGame. РЕДАКТИРОВАТЬ (март 2013 г.) : Похоже, что Marmalade SDK теперь включает в себя Cocos2Dx и некоторые встроенные IDE, что делает его намного лучше (и для инди-разработчика стоит $ 150 в год, что мне подходит).
- Corona SDK - Lua (эффективность сомнительна), также требуется подключение к Интернету для компиляции кода
- Cocos2d-x - C ++, получил множество отзывов от разработчиков, в основном положительные, и многие считают, что это лучше для 2D
- Код частицы - Java + Eclipse, не найдено ни одного отзыва или комментария
- Moai - Lua, не могу найти обзоры / мнения по этому поводу
- Двигатель Monkey - похоже, слишком мало возможностей
- Haxenme - это Flash, я никогда не использовал его и не хочу
- использовать Unity3d, но с 2D-пакетами, такими как 2D Toolkit
- порты SDL для Android (также здесь ) и iOS - не похоже, чтобы иметь большую поддержку или текущую разработку (?)
- GLBasic - Основной язык, мне не нравится
- playN - похоже, в начале разработки (?)
- Gamvas - HTML5, для меня не похоже на зрелый движок
- Игнифуга - Питон, также не выглядит зрелым
- ORX - не уверен, что он все еще разработан (?)
- Construct 2 - напоминает GameMaker, может подойти для быстрых прототипов, но определенно не для игр промышленного уровня
- XNA, а затем портировать игру с помощью ExEn (потребуется Mono Touch для переноса на iOS и Mono для Android для переноса на Android) - C #, и, вероятно, больше думают о людях из продуктов Microsoft, таких как xBox (я из Android). Кроме того, эти инструменты Mono стоят всего 800 долларов для небольших разработчиков.
- Воздействие - JavaScript, использует HTML5. Я не сильно разбираюсь в JavaScript (например, предпочел C # на Unity3d), также не уверен в эффективности, так как он работает в браузере (?)
- GameMaker - собственный язык сценариев GML, и я на самом деле помню его как инструмент для непрограммистов. Действительно ли это превратилось в настоящий двигатель, я имею в виду для серьезного развития?
- AppGameKit - C ++, но, кажется, все еще довольно новый. Не найдено ни одного отзыва
- используйте Cocos2D и Objective C для разработки только для iOS, а затем создайте APK для Android с помощью Stella SDK . Кто-нибудь делал это? Я почти уверен, что будут ограничения, а как насчет биллинга Google в приложениях, интеграции AdMob и Facebook на Android?
- Moscrif - JavaScript, похоже, это больше для бывших веб-разработчиков
- Скворец - Flash 11, я не очень люблю Flash
- ND2D - еще не 1.0, у него много функций?
Итак, я был бы рад, если бы вы прокомментировали ваш опыт работы с движками и предложили, какой из них (или что-то еще, что я пропустил) является лучшим для описанных требований. Я также могу ошибаться с моими первыми впечатлениями о некоторых двигателях.
В настоящее время я думаю о Marmalade + IwGame как о лучшем варианте, но так как у меня мало информации о Cocos2d-x и коде частиц, я не совсем уверен в этом.
Спасибо!
РЕДАКТИРОВАТЬ (июнь 2013 г.)До сих пор я сделал 2 кроссплатформенные 2D игры и использовал Unity3D с плагином 2D Toolkit для обеих. Для игры с простым графическим интерфейсом я использовал простую самодельную систему графического интерфейса на основе собственной Unity. Для более сложной (например, где элементы GUI могут перекрываться) я использовал плагин NGUI. Недавно 2D Toolkit добавил еще несколько классов для GUI, что очень удобно, так как при объединении NGUI с 2D Toolkit нужно было использовать 2 разные системы для текстурных атласов. Я обязательно попробую это в следующей 2D игре. Основная причина выбора Unity3D для 2D-игр заключалась в том, что я уже был глубоко погружен в Unity3D как с точки зрения опыта, так и накопленных фрагментов кода для повторного использования. Кроме того, я приобрел Unity3D pro (с Android Pro и iOS Pro) для 3D-игр, и было вполне разумно просто доплатить $ 60 за 2D Toolkit, чтобы покрыть 2D-игры. Я до сих пор не Не жалею о моем решении, кажется, это было оптимальным для моего случая. Единственная вещь, которая доставляла мне головную боль, это добавление социальных функций с плагинами Prime31 (социальные плагины Android и iOS), но я предполагаю, что их ошибки - не ошибка Prime31, а Twitter / Facebook, поэтому я, вероятно, увижу те же ошибки на любой другой движок или плагин.
РЕДАКТИРОВАТЬ (январь 2014 г.) : Я думаю, что с Unity 4.3 ответ на мой вопрос теперь довольно очевиден: новая система спрайтов Unity и, возможно, также 2DToolkit полностью превзошли все остальное, особенно для людей, которые (как и я) были в Unity некоторое время и приобрел Pro версию с дополнениями.