2D кросс-платформенный игровой движок для Android и iOS?

Я некоторое время работал с 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. EDIT (март 2013) : похоже, что SDK Marmalade теперь включает в себя Cocos2Dx и некоторые встроенные IDE, что делает его намного лучше (и стоит 150 долларов в год для инди-разработчика, который со мной согласен).
  • Corona SDK – Lua (эффективность сомнительна), также требуется подключение к Интернету для компиляции кода
  • Cocos2d-x – C ++, получил множество отзывов от разработчиков, в основном позитивных, и многие считают, что это лучше всего для 2D
  • Код элемента – Java + Eclipse, не найдены отзывов и комментариев
  • Moai – Lua, coudn't найти отзывы / отзывы о нем
  • Двигатель Monkey – кажется, слишком мало функций
  • Haxenme – это Flash, я никогда не использовал его и не хочу
  • Используйте Unity3d, но с 2D-пакетами, такими как 2D Toolkit
  • Порты SDL для Android (также здесь ) и iOS – не имеют большой поддержки или текущей разработки (?)
  • GLBasic – Основной язык, мне это не нравится
  • PlayN – кажется, рано развивается (?)
  • Gamvas – HTML5, не похож на зрелый движок для меня
  • Ignifuga – Python, также не выглядит зрелым
  • ORX – не уверен, что он все еще разработан (?)
  • Construct 2 – напоминает GameMaker, может быть хорошо для быстрых прототипов, но определенно не для игр на отраслевом уровне
  • XNA, а затем портировать игру с помощью ExEn (понадобится Mono Touch для подключения к iOS и Mono для Android для подключения к Android) – C #, и, вероятно, больше думают о людях из продуктов Microsoft, таких как xBox (я пришел с Android). Кроме того, эти инструменты Mono стоят всего 800 долларов для небольших разработчиков
  • Impact – JavaScript, использует HTML5. Я не очень люблю JavaScript (например, предпочтительный C # на Unity3d), также не уверен в эффективности, поскольку он работает в браузере (?)
  • GameMaker – собственный скриптовый язык GML, и я действительно помню этот как инструмент для не-программистов. Действительно ли это превратилось в настоящий двигатель, я имею в виду серьезное развитие?
  • AppGameKit – C ++, но, похоже, все еще довольно новый. Нет отзывов об этом
  • Используйте Cocos2D и Objective C для разработки только для iOS, а затем сделайте APK для Android вне его, используя Stella SDK . Кто-нибудь это сделал? Я уверен, что будут ограничения, и как насчет интеграции Google в приложениях, AdMob и Facebook на Android?
  • Moscrif – JavaScript, похоже, больше для бывших веб-разработчиков
  • Starling – Flash 11, я не сильно во Flash
  • ND2D – еще не 1.0, есть ли у него много функций?

Поэтому я был бы рад, если бы вы могли прокомментировать ваш опыт работы с двигателями и предложить, какой из них в списке (или что-то еще, что я пропустил) является лучшим для описанных требований. Я также могу ошибаться в своих первых впечатлениях о некоторых из движков.

В настоящее время я думаю о Marmalade + IwGame как о лучшем варианте, но поскольку у меня мало информации о кодеке Cocos2d-x и Particle, я не уверен в этом.

Спасибо!

EDIT (июнь 2013) : Пока я сделал 2 кросс-платформенных 2D-игры и использовал Unity3D с плагином 2D Toolkit для обоих. Для игры с простым графическим интерфейсом я использовал простую самодельную систему графического интерфейса, основанную на собственном Unity. Для более сложного (например, когда элементы GUI могут перекрываться) я использовал плагин NGUI. В последнее время 2D Toolkit добавил еще несколько классов для графического интерфейса, что очень удобно, поскольку для объединения текстурных атласов при объединении NGUI с 2D Toolkit нужно было использовать две разные системы. Я определенно попробую это в следующей 2D-игре. Основной причиной выбора Unity3D для 2D-игр было то, что я уже был глубоко в Unity3D как с точки зрения опыта, так и с накоплением фрагментов кода для повторного использования. Кроме того, я купил Unity3D pro (с Android Pro и iOS Pro) для 3D-игр, и было вполне разумно просто заплатить дополнительные 60 долларов США за 2D-инструментарий, чтобы охватить 2D-игры. Я до сих пор не сожалею о своем решении, это, кажется, было оптимальным для моего дела. Единственное, что дало мне головную боль, – это добавить социальные функции с плагинами Prime31 (социальные плагины для Android и iOS), но я полагаю, что их ошибки не являются ошибкой Prime31, а вместо Twitter / Facebook, поэтому я, вероятно, увижу те же ошибки на Любой другой движок или плагин.

EDIT (январь 2014) : Я думаю, что с Unity 4.3 ответ на мой вопрос сейчас довольно очевиден: новая система спрайтов Unity и, возможно, 2DToolkit полностью избили что-то еще, особенно для людей, которые (как я) были на Unity на некоторое время И приобрел версию Pro с надстройками.

Solutions Collecting From Web of "2D кросс-платформенный игровой движок для Android и iOS?"

Я работал с Marmalade и я нашел его удовлетворительным. Хотя это не бесплатно, и сообщество разработчиков также недостаточно велико, но вы можете справиться с большинством задач, используя его учебники. (Я напишу свои уроки, как только я получу несколько раз).
IwGame – хороший двигатель, разработанный одним из пользователей Marmalade. Это хорошо для базовой игры, но если вы ищете серьезный передовой игровой материал, вы также можете использовать Cocos2D-x с Marmalade. Я никогда не использовал Cocos2D-x, но есть расширение на Github Marmalade.
Еще одна хорошая вещь в Marmalade – это EDK (Extension Development Kit) , который позволяет вам делать расширение для любой функциональности, которая вам нужна, которая доступна в собственном коде, но не в Marmalade. Я использовал его для разработки собственного настраиваемого расширения Admob и расширения Facebook.

Изменить :
Теперь у Marmalade есть собственный инструмент RAD (Rapid Application Development) для 2D-разработки, названный Marmalade Quick . Хотя кодирование будет в Lua не на C ++, но поскольку оно построено поверх C ++ Marmalade, вы можете легко включить библиотеку C ++ и все другие расширения EDK. Также расширения Cocos-2Dx и Box2D включены в Quick. Недавно они запустили версию Release (она была в бета-версии на 3-4 месяца). Я думаю, что вы действительно ищете только 2D-разработку, вы должны попробовать.

Обновить:
Unity3D недавно выпустил поддержку 2D-игр, которая кажется лучше, чем любой другой 2D-движок, благодаря графическому интерфейсу и редактору. Физика, поддержка спрайтов и т. Д. Встроена. Вы можете посмотреть на него.

Обновление 2
Marmalade скоро прекратит свой SDK в пользу своего собственного игрового производства. Поэтому не будет разумным решением полагаться на это.

LibGDX – один из лучших двигателей, который я когда-либо использовал, работает практически на всех платформах и в большинстве тестов, которые я сделал, выполняет в два раза быстрее, чем cocos2d-x. Вы можете использовать любой язык JVM, который вам нравится. Вот 13-ю часть учебника на Java, и вот куча, использующая jruby. Там есть хороший инструмент для скелетной анимации, который работает с ним здесь , и он запек в поддержку черепичных карт TMX. Рамка ui является удивительной, и у нее есть сценарий сцены и API стиля актера, подобный сценам cocos2d, спрайтам и действиям. Сообщество является удивительным, обновления часты, и документация хорошая. Не позволяйте части java пугать вас, это быстро, и вы можете использовать jruby или scala или что угодно. Я очень рекомендую его для работы 2d или 3d, он поддерживает оба.

Вы упоминаете Haxe / NME, но вы, похоже, инстинктивно не любите его. Однако мой опыт с этим был очень позитивным. Конечно, API – это повторная реализация Flash API, но вы не ограничены таргетингом на Flash, вы также можете скомпилировать HTML5 или родные приложения для Windows, Mac, iOS и Android. Haxe – приятный, современный язык, похожий на Java или C #.

Если вам интересно, я немного написал о своем опыте, используя Haxe / NME: link

V-Play (v-play.net) – это кросс-платформенный игровой движок на основе Qt / QML с множеством полезных игровых компонентов V-Play QML для обработки множества разрешений и пропорций отображения, анимаций, частиц, физики, мультитач, Жесты, поиск путей и многое другое. Ссылка API Ядро ядра написано на собственном C ++, в сочетании с пользовательским рендерером, игры достигают прочной производительности 60 кадров в секунду на всех устройствах.

V-Play также поставляется с готовыми к использованию игровыми шаблонами для самых успешных игровых жанров, таких как защита башни, игровые платформы или головоломки.

Если вам интересны игры, сделанные с помощью V-Play, вот их быстрый выбор:

  • Squaby : игра обороны башни
  • Вспышка цыпленка : платформер, такой как Doodle Jump
  • Blockoban : игра-головоломка
  • Crazy Elephant : игра, похожая на Angry Birds
  • Snowball Mania : многопользовательская игра
  • Блицкопф : мозг

(Отказ от ответственности: я один из парней за V-Play)

Вот только ответ Ричарда Пикапа о LinkedIn на аналогичный мой вопрос:

Я использовал кокос 2dx мармелад и единство на iOS и Android. Для 2d игр cocos2dx – это способ идти каждый раз. Unity слишком сильно перегружается для игр 2d, и, как уже говорилось, мармелад – это всего лишь тонкий слой абстракции, который не является игровым движком. Вы даже можете запустить cocos2d поверх мармелада. Мой подход состоял бы в том, чтобы использовать cocos2dx на iOS и Android, а затем в будущем запустить код cocosd2dx поверх мармелада как простой способ портировать на bb10 и выиграть телефон 7

Несколько дней назад я нашел хороший и аккуратный игровой движок Wave . Он использует C # и имеет конвертеры Windows Phone и Windows Store, что делает его отличной заменой XNA для меня

Я пробовал AppGameKit, это как c ++, так и Basic. Очень легко закодировать 2d-игры в Basic varient, с физикой, столкновениями и кучами. Он также активно развивается и действительно дешево (65 $). Основная проблема заключается в том, что ее очень сложно скомпилировать для Android (вам нужно загружать кучи файлов и следовать сложным руководствам и тому подобным) Мое мнение таково, что он еще недостаточно хорош для коммерческого использования, но хорош для инди-программистов У этого сообщества средний размер

И как насчет LibGDX от BadLogicGames?

Check Loom ( http://theengine.co ) – это новый кросс-платформенный 2D-движок, содержащий горячий обмен кода и активов на устройствах. Это означает, что вы можете работать в Photoshop по своим активам, вы можете обновить свой код, изменить пользовательский интерфейс вашего приложения / игры, а затем просмотреть изменения на своем устройстве (ах) во время работы приложения.

Думая о других игровых движках с кросс-платформой, о которых я слышал или даже играл, Loom Game Engine на сегодняшний день является лучшим в моем оппионе с множеством отличных функций. Большинство других подобных игровых движков (Corona SDK, MOAI SDK, Gideros Mobile) основаны на Lua (с нечетным синтаксисом, по крайней мере для меня). Loom Game Engine использует LoomScripts, язык сценариев, основанный на ActionScript 3, с несколькими функциями, заимствованными на C #. Если вы когда-либо разрабатывали в ActionScript 3, C # или Java, LoomScript будет выглядеть вам знакомым (и мне больше нравится этот синтаксис, чем синтаксис Lua).

Лицензия на 1 год для Loom Game Engine стоит 500 долларов США, и я думаю, что это доступная цена для любого инди-разработчика игр. Пара недель назад была предоставлена ​​бесплатная лицензия на 1 год. По истечении срока лицензии вы все равно можете использовать Loom для создания и развертывания собственных игр, но вы не получите никаких дополнительных обновлений. Создатели Loom очень уверены в себе, и они пообещали постоянно совершенствовать своего ребенка, поэтому стоит покупать другую лицензию.

Без дальнейших церемоний, вот отличные возможности Loom:

  1. Кросс-платформа (iOS, Android, OS X, Windows, Linux / Ubuntu)

  2. Рабочий процесс с поддержкой Rails позволяет вам тратить время на работу с вашей игрой (одна команда для создания нового проекта и другая команда для ее запуска)

  3. Быстрый компилятор

  4. Редактирование живого кода и активов

  5. Возможность интеграции сторонних библиотек

  6. Использует Cocos2DX для рендеринга

  7. Поддержка XML, JSON

  8. LML (язык разметки) и CSS для стилизации элементов пользовательского интерфейса

  9. Библиотека пользовательского интерфейса

  10. Внедрение зависимости

  11. Единичная тестовая структура

  12. Физика бурундуков

  13. Увидев ваши изменения вживую, вы можете легко управлять несколькими способами

  14. Маленький размер загрузки

  15. Построен для команд

Вы можете найти больше видео о Loom здесь: http://www.youtube.com/user/LoomEngine?feature=watch

Ознакомьтесь также с этим 4-ю подробными учебниками: http://www.gamefromscratch.com/post/2013/02/28/A-closer-look-at-the-Loom-game-engine-Part-one-getting -started.aspx

Недавно я использовал механизм AS3: PushButton (теперь он мертв, но он все еще функционирует, и вы можете использовать что-то еще) для выполнения этой задачи. Чтобы он работал с Android и iOS, проект был скомпилирован в AIR для обеих платформ, и все работало без ущерба для производительности. Так как Flash Builder дорог ($ 249), вы можете использовать FlashDevelop (в нем есть несколько учебников для компиляции в AIR).

Flash может быть вариантом, поскольку очень легко учиться.

В настоящее время я использую Corona для бизнес-приложений с большим успехом. Что касается игр, у меня создается впечатление, что она не обеспечивает производительность, которую делают некоторые из других кросс-платформенных движков. Стоит отметить, что Карлос (основатель Ansca Mobile / Corona SDK) запустил другую компанию на конкурирующем двигателе; Lanica Platino Engine для Appcelerator Titanium. Хотя я не работал с этим лично, это выглядит многообещающим. Однако имейте в виду, что он поставляется с ценой за 999 долларов США / год.

Все, что сказал, я уже некоторое время изучаю Moai (так как я уже знаком с синтаксисом Lua), и это кажется многообещающим. Тот факт, что он может компилироваться для нескольких платформ, не ограничиваясь мобильными средами, привлекателен.

Мультимедиа Fusion 2 также заслуживает внимания, учитывая сложность созданных игр и реализованную ими производительность. На ум приходит Vincere Totus Astrum ( http://gamesare.com ).