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 # або ціль 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, не знайдено жодної відгуки / думки про нього
  • Мавповий двигун - здається, має надто мало функцій
  • Haxenme - це Flash, я ніколи не користувався цим і не хочу
  • використовуйте Unity3d, але з 2D-пакетами, такими як 2D Toolkit
  • порти SDL для Android (також тут ) і iOS - схоже, не має великої підтримки або поточної розробки (?)
  • GLBasic - Основна мова, мені це не подобається
  • playN - здається, на початку розвитку (?)
  • Gamvas - HTML5, для мене не схожий на зрілий двигун
  • Ігніфуга - Python, також не виглядає зрілою
  • ORX - не впевнений, чи все ще розвинений (?)
  • Конструкція 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 та код частинок, я не дуже впевнений у цьому.

Дякую!

EDIT (червень 2013): Поки я зробив 2 кросплатформові 2D ігри та використав Unity3D з 2D плагіном Toolkit для обох. Для гри з простим графічним інтерфейсом я використовував просту власну систему GUI, засновану на власній 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, тому я, ймовірно, побачив би ті самі помилки на будь-який інший двигун або плагін.

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


і який з них вибрали? як щодо libgdx або andEngine, ти навіть не згадав про них, які, на
мою

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 зараз. Досі немає віконного телефону, хоча.
Ehtesh Choudhury

1
чому так, що надзвичайно корисні запитання на кшталт цього завжди закриваються як "поза темою"? можливо, ТА повинен створити окрему платформу для «інформації» та думок
Богдан Олександру

Відповіді:


33

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

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

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

Оновлення 2
Marmalade незабаром скасує свій SDK на користь власного виробництва ігор. Тож не буде розумним рішенням покладатися на це.


Ви також можете прочитати це питання ТАК - 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 ++ з редактором і все.
ervinbosenbacher

43

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


5
Тепер LibGDX працює і з iOS. Але це коштує ~ 400 $ за ліцензію Monotouch :)
JavaRunner

5
З версії 0.9.9 він використовує RoboVM для iOS, який безкоштовний
James McCracken

1
Я широко працював з LibGDX та cocos2dx. І сказало б, що cocos2dx набагато краще (швидший розвиток + продуктивність + інструментарій). Якщо ви збираєтеся лише для андроїда, нормально використовувати LibGDX, не мудрий! Підтримка крос-платформи LibGDX дуже-дуже погана, що залежить від RoboVM або Xamarin. Xamarin та RoboVM дуже компілюють компіляцію та виконання на iOS. Врешті-решт стає дуже важко утримувати.
користувач18853

13

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

Якщо ви зацікавлені, я написав трохи про мій досвід використання Haxe / NME: посилання


Дякуємо, саме з вашої статті: "якщо у вас гра 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 ++, а в поєднанні з користувальницьким рендерером ігри досягають міцної продуктивності в 60 кадрів в секунду на всіх пристроях.

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

Якщо вам цікаво ігор, зроблених за допомогою V-Play, ось короткий їх вибір:

(Відмова: Я один із хлопців, які стоять за V-Play)


7

Ось лише відповідь Річарда Пікапа на LinkedIn на подібне моє питання:

Я використав мармелад кокосового 2dx та єдність для iOS та android. Для 2d ігор cocos2dx - це шлях кожного разу. Unity - це занадто багато зайвого набору для 2d-ігор, і як уже було сказано, мармелад - це лише тонкий шар абстракції, який насправді не є ігровим двигуном. Можна навіть запустити cocos2d поверх мармеладу. Мій підхід полягає у використанні cocos2dx на iOS та android, а потім у майбутньому запустити код cocosd2dx поверх мармеладу як простий спосіб перенести на bb10 та виграти телефон 7


7

Я знаходжу приємний та охайний ігровий двигун Wave кілька днів тому. Він використовує C # і перетворювачі Windows Phone і Windows Store, що робить його чудовою заміною для XNA


6

а що з LibGDX від BadLogicGames?


1
Я не знав, що libGDX працює на iOS. Для цього потрібна ліцензія на MonoDroid, яка зараз (напевно, я не бачу, щоб програма мала менше 32 Кб MSIL) 999 доларів замість 399 доларів на рік.
зола999

6

Ознайомтеся з 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. Натхненний рейками робочий процес дозволяє витратити час на роботу з грою (одна команда для створення нового проекту, а інша команда для запуску)

  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 -початок.aspx


5

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


4

В даний час з великим успіхом використовую Corona для ділових додатків. Що стосується ігор, то я маю враження, що це не забезпечує продуктивність, яку роблять деякі з інших механізмів розвитку платформ. Варто відзначити, що Карлос (засновник Ansca Mobile / Corona SDK) створив іншу компанію на конкуруючому двигуні; Двигун Lanica Platino для Appcelerator Titanium. Хоча я з цим особисто не працював, це виглядає перспективно. Однак майте на увазі, що він постачається з ціною $ 999 / рік.

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

Мультимедіа Fusion 2 також є вагомим суперником, враховуючи складність ігор, що виробляються, та продуктивність, реалізовану в них. Вінсер Тотус Аструм ( http://gamesare.com ) приходить на думку.


3

Нещодавно я використовував двигун AS3: PushButton (тепер він мертвий, але він все ще функціональний, і ви могли використовувати щось інше), щоб виконати цю роботу. Щоб він працював з Android та iOS, проект був складений в AIR для обох платформ, і все працювало без пошкодження продуктивності. Оскільки Flash Builder начебто дорогий ($ 249), ви можете використовувати FlashDevelop (є кілька підручників для компіляції в AIR з ним).

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.