2D ігрові бібліотеки / рамки / двигуни для Android [закрито]


Відповіді:


62

EDIT: PSA: Майте на увазі, що ця відповідь була написана в 2012 році, а через 3 роки існує набагато більше двигунів, і багато з них створені виключно для мобільних пристроїв. Не сприймайте цю відповідь як належне та шукайте в Google для останніх двигунів.


Я порту Irrlicht на Android і використовую його для 2D ігор. Це не найкраще рішення, але я маю сильні виступи. Я спробував багато Java Frameworks, але Garbage Collector може затримувати ваші ігри протягом 0.2 секунд на телефоні G1 ... Тож рамки повинні робити розподіл дуже обережно.

Комерційні рамки C ++:

  • юни3D : дуже добре (доступно для Android, iOS, Web, Windows, OS X) [Гра: Ракетні зайчики]
  • Unreal Engine (комерційний): найкращий двигун, але не для початківців [Гра: Dungeon Defenders]

Структури з відкритим кодом C ++:

  • SDL : мабуть, найкраща бібліотека C для розробників ігор, відкритого коду та крос-платформи (мобільний додається)
  • Ogre3D : найкращий тривимірний двигун з відкритим кодом, але це великий каркас
  • Irrlicht : хороші показники, легкі рамки [Гра: Moblox]
  • Linderdaum Engine : відкритий код для Windows та Android
  • Cocos2d-x : крос-платформа з відкритим кодом

Кадри з відкритим кодом Java:

  • LibGDX : Open Source, дуже популярний, підтримує декілька платформ, підтримку плиткових, Box2D та інших, хороша документація
  • AndEngine (Open Source): хороші показники. Для документації подивіться приклади та прочитайте вихідний код; але це безкоштовна бібліотека, щоб розпочати ігровий проект [Game: Drop Block]
  • cocos2d для Android: проблема збору сміття
  • rokon : хороша продуктивність і розроблений для мобільних пристроїв, але проект здається мертвим.

Фізичний двигун:

  • box2d (OpenSource): швидко та легко
  • jbox2d (OpenSource): настільки повільно на Java, що я зробив обгортку JNI з SWIG, щоб використовувати нативні box2d (AndEngine робить те саме)
  • бурундук (OpenSource): швидко, але я віддаю перевагу box2d
  • bullet (OpenSource): відмінна 3D-система

Увага: Бібліотеки Java працюють з Froyo та JIT набагато краще. Але проблеми зі збирачем сміття завжди актуальні. З пряниками, збирач сміття неперервний, тому немає проблем.


1
Я також хотів би додати cocos2d-x, він є ліцензією MIT і працює як на Android, iOS, так і на Windows Phone. Я вважаю, що це зовсім інше, ніж було сказано вище, оскільки це спеціально в C ++, а не в Java.
Jamornh

AndEngine запозичує обгортку box2d у libgdx.
Мацеман

6
Unity3d не є C ++. Він підтримує C #, діалект Javascript і boo
lhk

Ви точно можете зробити це через рідний, якщо хочете також. Хлопці, які склали крихітні слова, зробили jmoses.co/2014/10/23/…
Джон Мойсей

1
SDL - це не Java; це C. Ява, яку ви могли відчути, - це обгортка / прив'язка, яка викликає код C. Жодна функціональність двигуна не відбувається на Java.
Сліпп Д. Томпсон

24

Я здивований, що ніхто не згадував libgdx. http://code.google.com/p/libgdx/


libgdx та AndEngine найкращі для 2d, тут ви можете знайти ще одне посилання
michael

@michael AndEngine Форум підручник липкий: просто використовуйте вилку виделки AndEngine ... багато клопоту, помилки. Я не рекомендую вчитися цьому звідти.
matheszabi

11

AndEngine є досить новим, але він є відкритим кодом і виглядає перспективно.

Самоопис:

Безкоштовна Android 2D OpenGL Game Engine. AndEngine розроблений Ніколасом Грамліхом.


1
Я трохи експериментував у цьому, надходячи від Cocos2d на iPhone, і це здається досить приємним для спрайтових 2d ігор. Проект здається активним і навколо нього є гідна спільнота форумів.
Метт Гість

Про AndEngine ... Я почав робити досить основну гру, і через деякий час я почав знаходити негативний відгук про AndEngine, особливо його ефективність з великою кількістю спрайтів. Отже, я зробив тест і додав до своєї гри 20 спрайтів, будучи ще на початку розробок. Я все робив "за книгою", і це майже вбивство мого бажання HTC Z. Досить розчарований і перейшов на LibGDX.

@AscensionSystems Я не знаю, що ти там робив, але я знаю, що ти робив це неправильно. За допомогою Desire Z ви можете легко мати сотні рухомих спрайтів на екрані. Просто запустіть орієнтири у прикладах, і ви побачите, як це зробити правильно.
Nicolas Gramlich

Дякую Ніколя, я вдячний за те, що ти "затягуєш" свій двигун, але, чесно кажучи, я нічого не робив. Це має щось спільне з андроїдом і помилка з дзвінками VBO, що також викликає GC. Я міг би придумати роботу добре, відключивши VBO, але це також змусило мій телефон нагрітись, що воно виблисне приблизно через 5 хвилин гри. У мене була така ж проблема з libGDX, тому я написав власний движок на C ++. Крім того, ви не можете отримати "сотні" на екрані за допомогою програми прикладів. Я міг отримати приблизно 90 128x128, 2 "кадрів" анімованих фізичних спрайтів, перш ніж він буде відставати з вашим двигуном.

...

8

Я думаю, ви можете використати гру Репліка-Айленд від Кріса Пруетта як приклад 2d-гри. Я думаю, що це має бути базою для інших ігор, як це пояснено у цьому відео з Google I / O 2010. Ви можете подивитися цю гру тут .


Так, це хороше відео, безумовно, варто переглянути, особливо коли він говорить про ефективність.
Spidey

7

Unity3D (який технічно можна використовувати для створення 2D-ігор) "скоро" для Android: http://unity3d.com/


Так, я повністю згоден. По-друге, якщо ви платите за ліцензії Unity3D, ви можете публікувати однакові роботи на декількох платформах. Отже, ви починаєте з БЕЗКОШТОВНИХ ВІДНІВ / ліцензій на MAC. Вивчіть програму. Потім оновіть ліцензії до тієї, що коли-небудь вважає за потрібне. Наразі Android є єдиним виданням PRO, що означає, що вам потрібно Unity3D PRO + Android PRO = $ 3000 ...
BerggreenDK

Зробивши 10-15 2D-ігор, використовуючи Cocos2D для iOS, я зробив одну, використовуючи Unity 4.6, і це було жахливим досвідом, повільним і глючним - для iOS - нічого не можу сказати про продуктивність для інших платформ. Хоча 4.6 значно покращився працюючи з 2D речами раніше, він ніде не знаходиться поруч із виділеним 2D-механізмом візуалізації, як Cocos2D або, мабуть, з іншими. Продуктивність жахлива, і вони все ще борються з 64-бітною підтримкою iOS. Однак, звичайно, багатопластова сила є найбільшою ... силою.
Jonny


4

Рокон виглядає досить добре, не пробував його сам, але здається досить активним.



4

Зараз працює порт SDL для Android , і SDL - це, мабуть, найкраща 2D-графіка. Він був розроблений однією з лідерів компанії Blizzard, тому ви знаєте, що реальна експертиза в побудові ігор вже ввійшла в неї.


3

Ігровий движок SIO2. Щойно випущена нова версія з повною підтримкою Android. Ви можете створювати 2D та 3D ігри, використовуючи його та переносячись між різними платформами. http://sio2interactive.com


3

+1 для Slick2D - я трохи зробив це з цим, і це здається досить солідним. Розробник випустив пару Android-ігор на його основі теж.
mrohlf

2

Я працюю над ігровим двигуном з відкритим кодом 2d під назвою YoghurtGum, який повинен бути як для Windows Mobile, так і для Android. Однак перенести все на Android C ++ виявилося надзвичайно важко.

Це найкорисніша відповідь, яку я коли-небудь знаю.


2

Якщо ви хочете розвиватися в AIR для Android, ви можете використовувати Flash. Насправді Flash не має особливих ігрових особливостей, але завдяки успіху Flash в Інтернеті існує величезна кількість сторонніх бібліотек для нього, спеціально розроблених для ігор.

Деякі з найпопулярніших сторонніх фреймворків для ігор у Flash включають Flixel (http://flixel.org/) та PushButtonEngine (http://pushbuttonengine.com/), які повністю розроблені для розробки ігор. Flash також має версію Box2D (згаданий вище фізичний двигун - http://box2dflash.sourceforge.net/ ) і є різні тривимірні бібліотеки, наприклад Papervision (http://code.google.com/p/papervision3d/) якщо ви хочете піти цією дорогою в майбутньому.

Однак, головним недоліком розвитку AIR є те, що я майже впевнений, що вам потрібно буде націлити Froyo 2.2 або пізнішої версії, тому старі телефони залишатимуться без уваги.


Окрім AndEngine, я грав у AIR для Android Betas, і вони досить приємні, якщо трохи повільні. Я думаю, це буде добре працювати в стратегічних іграх або екшн-іграх без занадто багато елементів. Хоча я працював з бета-версією на 2.1, тому остаточний реліз на 2.2 може бути значно швидким, я ще не впевнений. Однозначно щось дивитись.
Метт Гість

1

Cocos2D-x - це порт Cocos2D для iPhone, написаний на C ++, орієнтований на Android NDK і активно розробляється для досягнення паритету функцій з версією iPhone. У нього не буде проблем зі збору сміття, і ви отримаєте відносно простий порт для iOS, Win32 та, можливо, з часом OSX найближчим часом.


0

PlayN - це багатоплатформна 2D-ігрова рамка, яка націлена на Android, крім HTML5, Flash та JVM. Це дещо нове, але використовувалося для написання HTML5 реалізації Angry Birds та має досить активне співтовариство.

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