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

Я работал некоторое время с Unity3d и нашел его 2D-часть с OnGUI() или GUITextures слишком неуклюжей. Кроме того, даже самая маленькая игра, выполненная на Unity3d, - это, по крайней мере, 10 МБ скачать, что слишком много для 2D-игры.

Итак, я сейчас ищу двигатель для 2D. Я пробовал Cocos2D, но это только iOS, и я бы не хотел переписывать все на другой язык для Android (так, например, порт Java Cocos2d для Android не является вариантом). Вместо этого я хочу написать код один раз и с наименьшими проблемами развернуть его на iOS, Android и, возможно, на Windows Phone 7. У меня есть как Mac, так и Windows.

Чтобы быть более подробным, вот мои требования к движку:

  • должен быть кросс-платформенным
  • должен быть эффективным
  • должен быть С++, Java, С# или Objective C, так как мне с ними удобно, а НЕ Flash, Javascript, HTML5, поскольку я не являюсь веб-разработчиком.
  • должен иметь большое сообщество, учебные пособия, дополнительные библиотеки, которые охватывают большинство вещей, которые у вас есть при разработке на iOS или Android напрямую (оплата через приложение, facebook и т.д.).
  • окончательный пакет должен быть не слишком большим
  • двигатель может быть бесплатным, но я также не прочь заплатить разумную цену.

Я нашел следующие движки:

  • Marmaladeмеханизм IwGame вверху из этого) - С++, нашел общие очень положительные отзывы о Marmalade, но не уверен в IwGame. EDIT (март 2013 г.). Похоже, что SDK Marmalade теперь включает Cocos2Dx и некоторую встроенную среду IDE, которая делает ее намного лучше (и стоит 150 долларов в год для инди-разработчика, которая со мной обойдется).
  • Corona SDK - Lua (эффективность сомнительна), также требуется подключение к Интернету для компиляции кода.
  • Cocos2d-x - С++, получил множество обзоров от разработчиков, в основном положительных, и многие считают это лучшим для 2D
  • Код частица - Java + Eclipse, не найдены отзывы и комментарии
  • Moai - Lua, coudn't найти отзывы/мнения о нем
  • Monkey engine - кажется, слишком мало функций
  • Haxenme - это Flash, я никогда не использовал его и не хочу
  • используйте Unity3d, но с 2D-пакетами, такими как 2D Toolkit
  • порты SDL в Android (также здесь) и iOS - не посмотрите на поддержку или текущую разработку (?)
  • GLBasic - Базовый язык мне не нравится
  • playN - похоже, рано развивается (?)
  • Gamvas - HTML5 не похож на зрелый движок для меня.
  • Ignifuga - Python также не выглядит зрелым.
  • ORX - не уверен, что он все еще развивается (?)
  • Construct 2 - напоминает GameMaker, может быть хорошо для быстрых прототипов, но определенно не для игр в отраслевом уровне.
  • XNA, а затем портируйте игру, используя ExEn (понадобится Mono Touch в порт для iOS и Моно для Android to to to to Android to Android) - С#, и, вероятно, больше внимания уделяется людям из продуктов Microsoft, таких как xBox (я пришел с Android). Кроме того, эти инструменты Mono стоят всего $800 для небольших разработчиков.
  • Impact - JavaScript использует HTML5. Я не очень люблю JavaScript (например, предпочтительный С# на Unity3d), также не уверен в эффективности, поскольку он работает в браузере (?)
  • GameMaker - собственный язык сценариев GML, и я действительно помню это как инструмент для не-программистов. Действительно ли это превратилось в настоящий двигатель, я имею в виду серьезное развитие?
  • AppGameKit - С++, но, похоже, все еще довольно новый. Нет отзывов об этом.
  • используйте 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 для обоих. Для игры с простым графическим интерфейсом я использовал простую самодельную GUI-систему, основанную на Unity. Для более сложного (например, когда элементы GUI могут перекрываться) я использовал плагин NGUI. Недавно 2D Toolkit добавил еще несколько классов для графического интерфейса, что очень удобно, поскольку для объединения текстурных атласов при объединении NGUI с 2D Toolkit нужно было использовать две разные системы. Я определенно попробую это в следующей 2D-игре. Основной причиной выбора Unity3D для 2D-игр было то, что я уже был глубоко в Unity3D как с точки зрения опыта, так и с накоплением фрагментов кода для повторного использования. Кроме того, я купил Unity3D pro (с Android Pro и iOS Pro) для 3D-игр, и было вполне разумно просто заплатить дополнительные 60 долларов за 2D Toolkit, чтобы также получить 2D-игры. Я до сих пор не сожалею о своем решении, это, кажется, было оптимальным для моего дела. Единственное, что дало мне головную боль, - это добавить социальные функции с плагинами Prime31 (социальные плагины для Android и iOS), но я предполагаю, что их ошибки не являются ошибкой Prime31, а вместо Twitter/Facebook, поэтому я, вероятно, увижу те же ошибки на любой другой движок или плагин.

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

Ответ 1

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

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

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

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

Ответ 2

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

Ответ 3

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

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

Ответ 4

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

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

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

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

Ответ 5

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

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

Ответ 6

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

Ответ 7

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

Ответ 8

и как насчет LibGDX из BadLogicGames?

Ответ 9

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

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

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

Без дальнейших церемоний здесь представлены великолепные возможности Looms:

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

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

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

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

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

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

  • Поддержка XML, JSON

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

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

  • Включение зависимостей

  • Unit test framework

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

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

  • Малый размер загрузки

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

Здесь вы можете найти больше видео о 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

Ответ 10

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

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

Ответ 11

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

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

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