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

262

Я работал некоторое время с 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 версию с дополнениями.

iseeall
источник
а какой ты выбрал? Что насчет libgdx или andEngine, ты даже не упомянул о них, которые, я думаю, были самыми популярными
kosnkov
1
@kosnkov - Он указал требования, которые включают развертывание с записью один дважды (iOS и Android с опцией Windows Phone плюс). andEngine - это только Android, а libgdx не ориентирован на iOS (и Windows Phone), поэтому они не подходят.
спрайт
1
Я закончил делать 3d-игру с Unity3D и плагином NGUI для GUI. Если мне когда-нибудь понадобится сделать 2D-игру, думаю, я просто возьму Cocos2d-x и Marmelade
iseeall
1
Судя по сайту, я уверен, что libgdx теперь поддерживает iOS. Все еще нет Windows Phone, хотя
Этеш Чоудхури
1
почему такие чрезвычайно полезные вопросы, как этот, всегда закрываются как «не по теме»? возможно, ТАК следует создать отдельную платформу для «информации» и мнений
Богдан Александру

Ответы:

33

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

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

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

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

новичек
источник
Вы также можете прочитать этот вопрос SO - stackoverflow.com/questions/12059539/cocos2d-or-iwgame
Noob
Спасибо, похоже, мармелад с Cocos2D-x на самом деле может быть лучшим вариантом для моего случая.
iseeall
2
Забыть [LibGDX] [1], когда возникает такой вопрос, непростительно !!! ;) [1]: libgdx.badlogicgames.com
Ewoks
Проверьте обновления :-)
Noob
Unreal Engine 4.3.0 тоже может быть соперником. Это C ++ с редактором и все.
Эрвинбосенбахер
43

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

Kamek
источник
5
Теперь LibGDX работает и с iOS. Но это стоит ~ 400 $ за лицензию Monotouch :)
JavaRunner
5
Начиная с версии 0.9.9 она использует RoboVM для iOS, которая бесплатна
Джеймс МакКракен
1
Я много работал с LibGDX и cocos2dx. И сказал бы, что cocos2dx намного лучше (более быстрая разработка + производительность + инструменты). Если вы собираетесь использовать только Android, нормально использовать LibGDX иначе! Кроссплатформенная поддержка LibGDX очень-очень плохая, что зависит от RoboVM или Xamarin. Xamarin и RoboVM делают компиляцию и выполнение очень медленными на iOS. Это в конечном итоге становится очень трудно поддерживать.
user18853
13

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

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

zwets
источник
Спасибо, только что из вашей статьи: «Если у вас есть игра на HTML5 / Javascript (или Flash / ActionScript), и вы хотите использовать ее для Windows, iOS и более поздних версий». Я думаю, этот движок предназначен именно для веб-разработчиков, которые хотят перейти на мобильные платформы.
iseeall
Haxe / NME - это не игровой движок, а платформа, которая является частью вашего технологического стека. Это не для веб-разработчиков, которые хотят перейти на мобильные платформы. Это для разработчиков игр, которые хотят перенести свои игры на как можно большее количество платформ, не имея дело с низкими языками, такими как JavaScript. HAXE / NME очень мощный, но, судя по всему, я не думаю, что это то, что вы искали.
Anber
12

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

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

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

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

Алекс Хубер
источник
7

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

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

iseeall
источник
7

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

Deadcow
источник
6

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

Ewoks
источник
1
Я не знал, что libGDX работает на iOS. Для этого требуется лицензия MonoDroid, которая сейчас (вероятно, я не вижу, чтобы приложение было под 32 КБ MSIL) 999 долларов вместо 399 долларов в год.
ashes999
6

Check the 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).

Годовая лицензия на игровой движок Loom стоит 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

balazs.bohonyi
источник
5

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

Стивен Кайдн
источник
4

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

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

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

Шон Перриман
источник
3

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

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

Kleber
источник