2D Gaming Libraries / Frameworks / Engines for Android [closed]

89

Czy są dostępne takie rzeczy, które pomogą mi zbudować grę na Androida?

Bryan Denny
źródło

Odpowiedzi:

62

EDYCJA: PSA: Pamiętaj, że ta odpowiedź została napisana w 2012 roku, a 3 lata później istnieje o wiele więcej silników, a wiele z nich jest stworzonych wyłącznie na urządzenia mobilne. Nie bierz tej odpowiedzi za pewnik i szukaj w wyszukiwarce Google nowszych wyszukiwarek.


Przesyłam Irrlicht na Androida i używam go do gier 2D. To nie jest najlepsze rozwiązanie, ale mam dobre wyniki. Wypróbowałem wiele frameworków Java, ale Garbage Collector może opóźnić twoje gry w 0.2s na telefonie G1 ... Więc framework powinien bardzo ostrożnie alokować.

Komercyjne frameworki C ++:

  • unity3D : bardzo dobry (dostępny na Androida, iOS, Internet, Windows, OS X) [Gra: Rocket Bunnies]
  • Unreal Engine (reklama): najlepszy silnik, ale nie dla początkujących [Gra: Dungeon Defenders]

Frameworki C ++ Open Source:

  • SDL : prawdopodobnie najlepsza biblioteka C dla twórców gier, oprogramowania open source i międzyplatformowego (w tym mobilne)
  • Ogre3D : najlepszy silnik 3d typu open source, ale jest to duży framework
  • Irrlicht : dobra wydajność, lekki framework [Gra: Moblox]
  • Linderdaum Engine : open source dla Windows i Androida
  • Cocos2d-x : wieloplatformowa platforma open source

Struktury Java Open Source:

  • LibGDX : Open Source, bardzo popularny, obsługuje wiele platform, obsługuje kafelki, Box2D i inne, dobra dokumentacja
  • AndEngine (Open Source): dobra wydajność. Aby uzyskać dokumentację, przejrzyj przykłady i przeczytaj kod źródłowy; ale jest to darmowa biblioteka do rozpoczęcia projektu gry [Game: Drop Block]
  • cocos2d dla Androida: problem z Garbage Collector
  • rokon : dobra wydajność i zaprojektowana na urządzenia mobilne, ale projekt wydaje się martwy.

Silnik fizyki:

  • box2d (OpenSource): szybki i łatwy
  • jbox2d (OpenSource): tak wolno na Javie, że stworzyłem opakowanie JNI z SWIG, aby używać natywnego box2d (AndEngine robi to samo)
  • chipmunk (OpenSource): szybki, ale wolę box2d
  • bullet (OpenSource): doskonały silnik 3D

Ostrzeżenie: dzięki Froyo i JIT biblioteki Java działają znacznie lepiej. Ale problemy z Garbage Collector są zawsze aktualne. W przypadku piernika pojemnik na śmieci jest ciągły, więc nie ma problemu.

Ellis
źródło
1
Chciałbym również dodać cocos2d-x, jest on na licencji MIT i działa zarówno na Androidzie, iOS i Windows Phone. Uważam, że różni się to od tego, co wspomniano powyżej, ponieważ ten jest konkretnie w C ++, a nie Java.
Jamornh
AndEngine pożyczy opakowanie box2d z libgdx.
Matsemann
6
Unity3d to nie C ++. Obsługuje C #, dialekt JavaScript i boo
lhk
Na pewno możesz to zrobić przez native, jeśli chcesz. Faceci, którzy stworzyli Tiny Words, zrobili jmoses.co/2014/10/23/...
John Moses
1
SDL to nie Java; to C. Java, którą mogłeś doświadczyć, to opakowanie / powiązania, które wywołują kod C. Żadna z funkcji silnika nie dzieje się w Javie.
Slipp D. Thompson
24

Dziwi mnie, że nikt nie wspomniał o libgdx. http://code.google.com/p/libgdx/

siwiejszy
źródło
libgdx i AndEngine są najlepsze na 2d, tutaj możesz znaleźć więcej linków
Michael
@michael AndEngine samouczek forum Przyklejony: wystarczy użyć widelca widelca AndEngine ... dużo kłopotów, błędów. Nie polecam uczyć się stamtąd.
matheszabi
11

AndEngine jest całkiem nowy, ale jest open source i wygląda obiecująco.

Samoopis:

Darmowy silnik gier 2D OpenGL dla Androida. AndEngine został opracowany przez Nicolasa Gramlicha.

cstack
źródło
1
Przeprowadziłem w tym trochę eksperymentów, pochodzących z Cocos2d na iPhone'a, i jak dotąd wydaje się całkiem fajnie w przypadku gier 2D na sprite. Projekt wydaje się aktywny i ma wokół niego przyzwoitą społeczność forum.
Matt Guest
O AndEngine ... Zacząłem tworzyć dość podstawową grę i po pewnym czasie zacząłem znaleźć negatywną recenzję na temat AndEngine, szczególnie jego wydajności z dużą ilością sprajtów. Więc zrobiłem test i dodałem 20 duszków do mojej gry, będąc jeszcze na wczesnym etapie tworzenia. Zrobiłem wszystko „według książki” i prawie zamordowałem moje pragnienie HTC Z. Dość rozczarowałem i przestawiłem się na LibGDX.
@AscensionSystems Nie wiem, co tam zrobiłeś, ale wiem, że zrobiłeś to źle. Dzięki Desire Z możesz z łatwością mieć setki poruszających się duszków na ekranie. Po prostu uruchom testy porównawcze w przykładach, a zobaczysz, jak to zrobić poprawnie.
Nicolas Gramlich,
Dzięki Nicolas, doceniam fakt, że „trzymasz się” swojego silnika, ale szczerze mówiąc, nie zrobiłem nic złego. Ma to coś wspólnego z Androidem i błąd w połączeniach VBO, który również wyzwala GC. Mogłem sprawić, że andengine działał dobrze, wyłączając VBO, ale to również sprawiło, że mój telefon stał się tak gorący, że zepsułby się po około 5 minutach gry. Miałem ten sam problem z libGDX, więc napisałem własny silnik w C ++. Ponadto nie można wyświetlić „setek” na ekranie za pomocą aplikacji przykładów. Mógłbym uzyskać około 90 128 x 128, 2 "ramkowe" animowane duchy fizyczne, zanim opóźniłyby się z twoim silnikiem.
(ciąg dalszy) ... w moim silniku mogę wyświetlić animowane fizyczne sprity 170, 512x512, 16 klatek na ekranie, zanim zobaczę, że moja liczba klatek na sekundę spada poniżej 60 fps.
8

Myślę, że możesz użyć gry Replica Island od Chrisa Pruetta jako przykładu gry 2D. Myślę, że ma to być baza dla innych gier, jak wyjaśniono w tym filmie z Google I / O 2010. Możesz obejrzeć grę tutaj .

arielsan
źródło
Tak, to dobry film, zdecydowanie wart obejrzenia, zwłaszcza gdy mówi o wydajności.
Spidey
7

Unity3D (które technicznie można wykorzystać do tworzenia gier 2D) „wkrótce” na Androida: http://unity3d.com/

Bryan Denny
źródło
Tak, całkowicie się zgadzam. Po drugie, jeśli płacisz za licencje Unity3D, możesz opublikować tę samą pracę na wielu platformach. Zacznij więc od DARMOWYCH licencji WINDOWS / MAC. Naucz się programu. Następnie uaktualnij licencje do platformy, którą kiedykolwiek uważasz za stosowną. Obecnie Android jest jednak tylko wersją PRO, co oznacza, że ​​potrzebujesz Unity3D PRO + Android PRO = 3000 USD ...
BerggreenDK
Po stworzeniu 10-15 gier 2D przy użyciu Cocos2D na iOS, stworzyłem jedną przy użyciu Unity 4.6 i było to okropne doświadczenie, powolne i błędne - na iOS - nie mogę nic powiedzieć o wydajności na innych platformach. Podczas gdy 4.6 znacznie się poprawił pracując z materiałami 2D od wczesnych lat, nie jest to nigdzie blisko dedykowanego silnika renderującego 2D, takiego jak Cocos2D lub prawdopodobnie większość innych. Wydajność jest okropna i wciąż walczą z obsługą 64-bitowego systemu iOS. To powiedziawszy, oczywiście wytrzymałość na wielu platformach jest największą… siłą.
Jonny
4

Rokon wygląda całkiem nieźle, sam tego nie próbowałem, ale wydaje się dość aktywny.

Spidey
źródło
4

androidbox2d to port Androida Box2D. Box2D to bogaty w funkcje silnik fizyki ciała sztywnego 2D.

Adam Harte
źródło
4

Obecnie działa port SDL na Androida , a SDL jest prawdopodobnie najlepszą dostępną platformą graficzną 2D. Został zaprojektowany przez jednego z liderów Blizzarda, więc wiesz, że w to się zaangażowało.

Mason Wheeler
źródło
3

Silnik gry SIO2. Właśnie wydałem nową wersję z pełną obsługą Androida. Za jego pomocą możesz budować gry 2D i 3D oraz przenosić je między różnymi platformami. http://sio2interactive.com

Gabriel
źródło
3

SILNIK Slick2D i GOLDEN T GAME

Eliezer
źródło
+1 dla Slick2D - trochę z tym zrobiłem i wydaje się dość solidne. Deweloper wydał także kilka opartych na nim gier na Androida.
mrohlf
2

Pracuję nad silnikiem gier 2D typu open source o nazwie YoghurtGum, który powinien być przeznaczony zarówno dla systemu Windows Mobile, jak i Androida. Jednak przeniesienie całej rzeczy do Androida C ++ okazało się niezwykle trudne.

To najbardziej nieprzydatna odpowiedź, jak dobrze wiem.

knight666
źródło
2

Jeśli masz ochotę programować w środowisku AIR dla Androida, możesz użyć Flasha. Sam Flash nie ma w rzeczywistości żadnych funkcji specyficznych dla gry, ale dzięki sukcesowi Flasha w Internecie istnieje ogromna liczba bibliotek stron trzecich specjalnie zaprojektowanych do gier.

Niektóre z bardziej popularnych zewnętrznych platform gier dla Flasha to Flixel (http://flixel.org/) i PushButtonEngine (http://pushbuttonengine.com/), które są w pełni zaprojektowane do tworzenia gier. Flash ma również wersję Box2D (wspomniany wyżej silnik fizyki - http://box2dflash.sourceforge.net/ ) i istnieją różne biblioteki 3D, takie jak Papervision (http://code.google.com/p/papervision3d/) jeśli chcesz pójść tą drogą w przyszłości.

Główną wadą programowania w AIR jest to, że jestem prawie pewien, że będziesz musiał kierować reklamy na Froyo 2.2 lub nowszy, więc starsze telefony zostaną pominięte.

Kyle Rodgers
źródło
Oprócz AndEngine gram w AIR dla Androida Betas i są one całkiem fajne, choć trochę powolne. Myślę, że będzie dobrze działać w grach strategicznych lub grach akcji bez zbyt wielu elementów. Pracowałem jednak z wersją beta 2.1, więc końcowe wydanie 2.2 może być znacznie szybsze, nie jestem jeszcze pewien. Zdecydowanie coś do oglądania.
Matt Guest
1

Cocos2D-x jest portem Cocos2D na iPhone'a napisanym w C ++, przeznaczonym dla Androida NDK i jest aktywnie rozwijany w celu osiągnięcia parytetu funkcji w stosunku do wersji na iPhone'a. Nie będzie miał problemów z odśmiecaniem pamięci, a w najbliższym czasie otrzymasz stosunkowo łatwy port dla iOS, Win32 i prawdopodobnie OSX.

Steve Tranby
źródło
0

PlayN to wieloplatformowa platforma do gier 2D, która oprócz Androida HTML5, Flash i JVM obsługuje Androida. Jest to nieco nowe, ale zostało użyte do napisania implementacji Angry Birds w HTML5 i ma dość aktywną społeczność.

samskivert
źródło