Библиотеки 2D игр / Фреймворки / Двигатели для Android [закрыто]

89

Есть ли такие вещи, которые помогут мне построить мою игру для Android?

Брайан Денни
источник

Ответы:

63

РЕДАКТИРОВАТЬ: PSA: Имейте в виду, что этот ответ был написан в 2012 году, а 3 года спустя, существует гораздо больше двигателей, и многие из них сделаны исключительно для мобильных устройств. Не принимайте этот ответ как должное и поищите в Google более свежие системы.


Я портирую Irrlicht на Android и использую его для 2D игр. Это не лучшее решение, но у меня хорошие результаты. Я пробовал много фреймворков Java, но сборщик мусора может задерживать ваши игры в течение 0,2 с на телефоне G1 ... Так что фреймворк должен очень аккуратно распределять ресурсы.

Коммерческие платформы C ++:

  • unity3D : очень хорошо (доступно на Android, iOS, в Интернете, Windows, OS X) [Игра: Rocket Bunnies]
  • Unreal Engine (коммерческий): лучший движок, но не для начинающих [Game: Dungeon Defenders]

Платформы с открытым исходным кодом C ++:

  • SDL : вероятно, лучшая C-библиотека для разработчиков игр, с открытым исходным кодом и кроссплатформенности (включая мобильный)
  • Ogre3D : лучший 3D-движок с открытым исходным кодом, но это большой фреймворк
  • Irrlicht : хорошая производительность, легкие рамки [Игра: Moblox]
  • Linderdaum Engine : открытый исходный код для Windows и Android
  • Cocos2d-x : кроссплатформенная с открытым исходным кодом

Фреймворки с открытым исходным кодом Java:

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

Физический Двигатель:

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

Предупреждение: с Froyo и JIT библиотеки Java работают намного лучше. Но проблемы сборщика мусора всегда актуальны. С Gingerbread сборщик мусора непрерывный, так что никаких проблем.

Эллис
источник
1
Я также хотел бы добавить cocos2d-x, он имеет лицензию MIT и работает как на Android, iOS, так и на Windows Phone. Я полагаю, что это отличается от того, что было упомянуто выше, так как этот специально для C ++, а не Java.
Джаморн
AndEngine заимствует оболочку box2d из libgdx.
Мацеманн
6
Unity3d не является C ++. Он поддерживает C #, диалект Javascript и boo
lhk 27.12.12
Вы также можете сделать это через native, если хотите. Ребята, которые сделали Tiny Words, сделали jmoses.co/2014/10/23/…
Джон Мозес
1
SDL - это не Java; это C. Java, которую вы, возможно, испытали, это обертка / привязки, которая вызывает код C. Ни одна из функциональных возможностей движка не происходит в Java.
Слипп Д. Томпсон
24

Я удивлен, что никто не упомянул libgdx. http://code.google.com/p/libgdx/

grayger
источник
libgdx и AndEngine лучше всего подходят для 2d, здесь вы можете найти еще одну ссылку
Майкл
Учебное пособие по форуму @michael AndEngine: просто используйте вилку из AndEngine ... много проблем, ошибок. Я не рекомендую изучать это оттуда.
matheszabi
11

AndEngine довольно новый, но он с открытым исходным кодом и выглядит многообещающе.

Самоописание:

Бесплатный Android 2D OpenGL игровой движок. AndEngine разработан Николасом Грамлихом.

cstack
источник
1
Я немного поэкспериментировал с этим, придя с Cocos2d на iPhone, и пока что это довольно неплохо для спрайтовых 2d игр. Проект кажется активным и имеет приличное форумное сообщество.
Мэтт Гость
Об AndEngine ... Я начал делать довольно простую игру и через некоторое время начал находить негативный отзыв об AndEngine, особенно о его производительности с большим количеством спрайтов. Итак, я сделал тест и добавил 20 спрайтов в свою игру, еще находясь в ранней разработке. Я сделал все "по книге", и это чуть не убило мое желание HTC Z. Довольно разочарован и переключился на LibGDX.
@ AscensionSystems Я не знаю, что ты там делал, но я знаю, что ты делал это неправильно. С Desire Z вы можете легко иметь на экране сотни движущихся спрайтов. Просто запустите тесты в примерах, и вы увидите, как это сделать правильно.
Николас Грамлич
Спасибо, Николас. Я ценю тот факт, что вы «заступаетесь» за свой двигатель, но, честно говоря, я не сделал ничего плохого. Это как-то связано с android, и ошибка с вызовами VBO также вызывает GC. Я мог бы заставить андроид работать нормально, отключив VBO, но это также сделало мой телефон настолько горячим, что через 5 минут игры он мог выйти из строя. У меня была такая же проблема с libGDX, поэтому я написал свой собственный движок на C ++. Также вы не можете получить "сотни" на экране с помощью приложения примеров. Я мог получить около 90 128x128, 2 "кадровых" анимированных физических спрайтов, прежде чем они будут зависать от вашего движка.
(продолжение) ... в моем движке я могу получить 170, 512x512, 16 "кадров" анимированных физических спрайтов на экране, прежде чем я вижу, что моя частота кадров даже начинает падать ниже 60 кадров в секунду.
8

Я думаю, что вы могли бы использовать игру Replica Island от Chris Pruett в качестве примера 2d игры. Я думаю, что это должно быть основой для других игр, как объясняется в этом видео из Google I / O 2010. Вы можете посмотреть игру здесь .

arielsan
источник
Да, это хорошее видео, определенно стоит посмотреть, особенно когда он говорит об эффективности.
Spidey
7

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

Брайан Денни
источник
Да, я полностью согласен. Во-вторых, если вы платите за лицензии Unity3D, вы можете опубликовать одну и ту же работу для нескольких платформ. Итак, вы начинаете с БЕСПЛАТНЫХ лицензий WINDOWS / MAC. Изучите программу. Затем обновите лицензии до любой платформы, которую вы считаете подходящей первой. В настоящее время Android, однако, является только PRO-версией, что означает, что вам нужно Unity3D PRO + Android PRO = $ 3000 ...
BerggreenDK
Сделав 10-15 2D-игр с использованием Cocos2D для iOS, я создал одну с использованием Unity 4.6, и это был ужасный опыт, медленный и глючный - для iOS - ничего не могу сказать о производительности для других платформ. Хотя 4.6 значительно улучшилась Работая с 2D-материалами с ранних времен, он не похож на специализированный движок 2D-рендеринга, такой как Cocos2D или, возможно, большинство других. Производительность ужасна, и они все еще борются с поддержкой iOS 64 бит. Тем не менее, конечно, многоплатформенность - самая большая ... сила.
Джонни
4

Рокон выглядит неплохо, сам не пробовал, но кажется довольно активным.

Паучок
источник
4

androidbox2d - это порт Android Box2D. Box2D - это многофункциональный движок физики твердого тела.

Адам Харт
источник
4

В настоящее время идет Android-порт SDL , и SDL, вероятно, лучшая инфраструктура для 2D-графики. Он был разработан одним из ведущих в Blizzard, так что вы знаете, что некоторые реальные знания в области создания игр были вложены в него.

Мейсон Уилер
источник
3

SIO2 Game Engine. Только что вышла новая версия с полной поддержкой Android. Вы можете создавать 2D и 3D игры, используя его и портировать между различными платформами. http://sio2interactive.com

Габриель
источник
2

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

Это самый бесполезный ответ из всех, что я знаю.

knight666
источник
2

Если вам нравится разрабатывать в AIR for Android, вы можете использовать Flash. Сам по себе Flash не имеет специфических игровых функций, но благодаря успеху Flash в сети существует огромное количество сторонних библиотек, специально предназначенных для игр.

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

Однако главный недостаток разработки в AIR заключается в том, что я почти уверен, что вам понадобится ориентироваться на Froyo 2.2 или более поздней версии, поэтому старые телефоны останутся в стороне.

Кайл Роджерс
источник
В дополнение к AndEngine я играл с бета-версиями AIR for Android, и они довольно приятные, хотя и немного медленные. Я думаю, что это будет хорошо работать для стратегических игр или экшн-игр без слишком большого количества элементов. Я работал с бета-версией 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 и имеет достаточно активное сообщество.

samskivert
источник