Wieloplatformowy silnik do gier 2D dla Androida i iOS? [Zamknięte]

262

Przez pewien czas pracowałem z Unity3d i stwierdziłem, że jest to część 2D z OnGUI () lub GUITextures zbyt niezdarna. Co więcej, nawet najmniejsza gra wykonana na Unity3d wymaga pobrania co najmniej 10 MB, co jest po prostu zbyt dużo jak na grę 2D.

Obecnie szukam silnika do 2D. Próbowałem Cocos2D, ale to tylko iOS i nie chciałbym przepisywać wszystkiego na inny język dla Androida (więc np. Port Java Cocos2d dla Androida nie jest opcją). Zamiast tego chcę napisać kod raz i bezproblemowo wdrożyć go na iOS, Android i ewentualnie Windows Phone 7. Mam zarówno Maca, jak i Windowsa.

Aby być bardziej szczegółowym, oto moje wymagania dotyczące silnika:

  • musi być wieloplatformowy
  • musi być wydajny
  • powinienem być C ++, Java, C # lub Objective C, ponieważ czuję się z nimi dobrze i NIE Flash, JavaScript, HTML5, ponieważ nie jestem programistą
  • musi mieć dużą społeczność, samouczki, dodatkowe biblioteki, które obejmują większość rzeczy, które można mieć podczas programowania bezpośrednio na iOS lub Android (rozliczenia w aplikacji, facebook itp.)
  • ostatecznie dostarczona paczka nie może być zbyt duża
  • silnik może być darmowy, ale nie miałbym nic przeciwko zapłaceniu rozsądnej ceny

Znalazłem następujące silniki:

  • Marmalade (i silnik IwGame na nim) - C ++, znalazł ogólnie bardzo pozytywne recenzje Marmalade, ale nie ma pewności co do IwGame. EDYCJA (marzec 2013) : Wygląda na to, że pakiet Marmalade SDK zawiera teraz Cocos2Dx i niektóre wbudowane IDE, co czyni go znacznie lepszym (i kosztuje 150 USD rocznie dla niezależnego dewelopera, co jest w porządku).
  • Corona SDK - Lua (wątpliwa wydajność), również potrzebuje połączenia z Internetem, aby skompilować kod
  • Cocos2d-x - C ++, otrzymał wiele recenzji od programistów, głównie pozytywnych i wielu uważa, że ​​najlepiej dla 2D
  • Kod cząstek - Java + Eclipse, nie znaleziono żadnych recenzji ani komentarzy
  • Moai - Lua, nie mogę znaleźć żadnych recenzji / opinii na ten temat
  • Silnik małpy - wydaje się mieć za mało funkcji
  • Haxenme - to Flash, nigdy go nie użyłem i nie chcę
  • używaj Unity3d, ale z pakietami 2D, takimi jak 2D Toolkit
  • porty SDL na Androida (także tutaj ) i iOS - nie wygląda na to, by miał dużo wsparcia lub rozwoju (?)
  • GLBasic - Podstawowy język, nie podoba mi się
  • playN - wydaje się być na wczesnym etapie rozwoju (?)
  • Gamvas - HTML5, nie wygląda dla mnie jak dojrzały silnik
  • Ignifuga - Python, również nie wygląda na dojrzały
  • ORX - nie jestem pewien, czy nadal jest rozwijany (?)
  • Construct 2 - przypomina GameMaker, może być odpowiedni do szybkich prototypów, ale zdecydowanie nie do gier na poziomie branżowym
  • XNA, a następnie przenieś grę za pomocą ExEn (wymagałby Mono Touch, aby przenieść do iOS i Mono dla Androida, aby przenieść do Androida) - C # i prawdopodobnie jest bardziej przemyślany dla osób pochodzących z produktów Microsoft, takich jak xBox (pochodzę z Androida). Ponadto te narzędzia Mono kosztują w sumie 800 USD dla małych programistów
  • Wpływ - JavaScript, używa HTML5. Nie przepadam za JavaScriptem (np. Preferowanym C # na Unity3d), również nie jestem pewien wydajności, ponieważ działa w przeglądarce (?)
  • GameMaker - własny język skryptowy GML i tak naprawdę pamiętam ten jako narzędzie dla nie-programistów. Czy rzeczywiście wyrósł na prawdziwy silnik, mam na myśli poważny rozwój?
  • AppGameKit - C ++, ale wciąż wydaje się być całkiem nowy. Nie znalazłem na nim żadnych recenzji
  • używaj Cocos2D i Objective C do programowania tylko na iOS, a następnie stwórz z niego APK dla Androida za pomocą Stella SDK . Czy ktoś to zrobił? Jestem pewien, że będą ograniczenia, a co z rozliczeniami Google w aplikacji, AdMob i integracją z Facebookiem na Androidzie?
  • Moscrif - JavaScript, wygląda na to, że jest bardziej dla byłych programistów
  • Starling - Flash 11, nie przepadam za Flashem
  • ND2D - jeszcze nie 1.0, czy ma wiele funkcji?

Byłbym szczęśliwy, gdybyś mógł skomentować swoje doświadczenia z silnikami i zasugerować, który z nich (lub cokolwiek innego, czego mi brakowało) jest najlepszy dla opisanych wymagań. Mogę się również mylić z moimi pierwszymi wrażeniami na temat niektórych silników.

Obecnie myślę o Marmalade + IwGame jako najlepszej opcji, ale ponieważ nie mam wielu informacji na temat Cocos2d-x i kodu cząstek, nie jestem do końca pewien.

Dziękuję Ci!

EDYCJA (czerwiec 2013): Do tej pory stworzyłem 2 wieloplatformowe gry 2D i dla obu korzystałem z Unity3D z wtyczką 2D Toolkit. Do gry z prostym GUI użyłem prostego, własnego systemu GUI opartego na własnym Unity. W przypadku bardziej złożonego (np. Gdzie elementy GUI mogą się pokrywać) użyłem wtyczki NGUI. Ostatnio 2D Toolkit dodał kilka dodatkowych klas dla GUI, co jest bardzo przydatne, ponieważ podczas łączenia NGUI z 2D Toolkit trzeba było używać 2 różnych systemów do atlasów tekstur. Zdecydowanie spróbuję tego w następnej grze 2D. Głównym powodem wyboru Unity3D do gier 2D było to, że już byłem głęboko w Unity3D zarówno pod względem doświadczenia, jak i zgromadzonych fragmentów kodu do ponownego użycia. Ponadto kupiłem Unity3D pro (z Androidem Pro i iOS Pro) do gier 3D i warto było po prostu zapłacić dodatkowo 60 USD za zestaw narzędzi 2D, aby objąć również gry 2D. Do tej pory nie Żałuję mojej decyzji, wydaje się, że była optymalna dla mojej sprawy. Jedyne, co sprawiło mi ból głowy, to dodanie funkcji społecznościowych za pomocą wtyczek Prime31 (wtyczki społecznościowe dla Androida i iOS), ale zakładam, że ich błędy nie są winą Prime31, ale Twittera / Facebooka, więc prawdopodobnie zobaczyłbym te same błędy na jakikolwiek inny silnik lub wtyczka.

EDIT (styczeń 2014) : Wydaje mi się, że w Unity 4.3 odpowiedź na moje pytanie jest teraz dość oczywista: nowy system duszków Unity, a może także 2DToolkit, całkowicie pokonał wszystko inne, szczególnie dla osób, które (jak ja) są w Unity przez jakiś czas i kupiłem wersję Pro z dodatkami.

iseeall
źródło
a który wybrałeś? co z libgdx lub and Engine, nie wspomniałeś nawet o nich, które moim zdaniem są najbardziej popularne
Kosnkov,
1
@kosnkov - Określił wymagania, które obejmują dwukrotnie wdrożenie do zapisu (iOS i Android z opcją Windows Phone plus). andEngine jest tylko na Androida, a libgdx nie jest ukierunkowany na iOS (ani Windows Phone), więc się nie kwalifikują.
duszek
1
Skończyło się na grze w 3D z Unity3D i wtyczką NGUI dla GUI. Jeśli kiedykolwiek będę musiał zrobić grę 2D, chyba wezmę Cocos2d-x i Marmelade
iseeall
1
sądząc po stronie, jestem pewien, że libgdx obsługuje teraz iOS. Nadal nie ma telefonu z systemem Windows.
Ehtesh Choudhury
1
dlaczego takie niezwykle przydatne pytania, takie jak to, są zawsze zamknięte jako „nie na temat”? może SO powinien stworzyć oddzielną platformę dla „informacji” i opinii
Bogdan Alexandru

Odpowiedzi:

33

Pracowałem z nim Marmaladei uznałem to za satysfakcjonujące. Chociaż nie jest to bezpłatne, a społeczność programistów również nie jest wystarczająco duża, ale nadal możesz poradzić sobie z większością zadań za pomocą samouczków. (Napiszę tutoriale, gdy będę miał trochę czasu).
IwGameto dobry silnik, opracowany przez jednego z użytkowników Marmalade. Jest dobry do podstawowej gry, ale jeśli szukasz poważnych zaawansowanych gier, możesz także użyć Cocos2D-xMarmolady. Nigdy nie korzystałem z Cocos2D-x, ale jest Marmolade Github.
Kolejną dobrą rzeczą w Marmalade jest to EDK (Extension Development Kit), że pozwala ona na rozszerzenie dowolnej potrzebnej funkcjonalności, która jest dostępna w natywnym kodzie, ale nie w Marmalade. JA'

Edycja :
Marmalade ma teraz własne narzędzie RAD (Rapid Application Development) przeznaczone do programowania 2D o nazwie as Marmalade Quick. Chociaż kodowanie będzie w Lua nie w C ++, ale ponieważ jest on zbudowany na C ++ Marmalade, możesz łatwo dołączyć bibliotekę C ++ i wszystkie inne rozszerzenia EDK. Również rozszerzenia Cocos-2Dxi Box2Dsą wstępnie uwzględnione w Quick. Niedawno wypuścili wersję Release (była w fazie beta przez 3-4 miesiące). Myślę, że tak naprawdę szukasz tylko rozwoju 2D, powinieneś spróbować.

Aktualizacja:
Unity3D niedawno uruchomił obsługę gier 2D, która wydaje się lepsza niż jakikolwiek inny silnik gier 2D, ze względu na GUI i edytor. Wsparcie fizyki, sprite itp. Jest wbudowane. Możesz na to spojrzeć.

Aktualizacja 2
Marmalade wkrótce przerwie swoje SDK na rzecz własnej produkcji gier. Oparcie się na tym nie będzie więc rozsądną decyzją.

Nowicjusz
źródło
Możesz również przeczytać to SO pytanie - stackoverflow.com/questions/12059539/cocos2d-or-iwgame
noob
Dzięki, wygląda na to, że Marmolada z Cocos2D-x na nim może być rzeczywiście najlepszą opcją dla mojego przypadku.
iseeall
2
Zapominanie [LibGDX] [1], gdy powstaje tego rodzaju pytanie, jest niewybaczalne !!! ;) [1]: libgdx.badlogicgames.com
Ewoks
Sprawdź aktualizacje :-)
noob
Unreal Engine 4.3.0 również może być pretendentem. Jest to C ++ z edytorem i wszystkim.
ervinbosenbacher
43

LibGDX jest jednym z najlepszych silników, jakich kiedykolwiek używałem, działa na prawie wszystkich platformach i działa dwa razy szybciej niż cocos2d-x w większości testów, które przeprowadziłem. Możesz użyć dowolnego języka JVM, który ci się podoba. Oto 13-częściowy samouczek w Javie, a tutaj kilka przy użyciu jruby. Jest to dobre narzędzie animacja szkieletowa, która współpracuje z nim tutaj , i to jest upieczone wsparcie dla płytkami TMX mapy, jak również. Struktura interfejsu użytkownika jest niesamowita i ma wykres scen oraz interfejs API w stylu aktora podobny do scen cocos2d, duszków i akcji. Społeczność jest niesamowita, aktualizacje są częste, a dokumentacja jest dobra. Nie pozwól, aby część java cię przestraszyła, jest szybki i możesz użyć krzewiastej lub scali lub cokolwiek zechcesz. Bardzo polecam do pracy w 2D lub 3D, obsługuje oba.

Kamek
źródło
5
Teraz LibGDX działa również z iOS. Ale kosztuje ~ 400 $ za licencję Monotouch :)
JavaRunner
5
Od wersji 0.9.9 używa RoboVM na iOS, który jest bezpłatny
James McCracken
1
Szeroko współpracowałem zarówno z LibGDX, jak i cocos2dx. I powiedziałby, że cocos2dx jest znacznie lepszy (szybszy rozwój + wydajność + narzędzia). Jeśli korzystasz tylko z Androida, możesz używać LibGDX w inny sposób! Obsługa wielu platform LibGDX jest bardzo zła, co zależy od RoboVM lub Xamarin. Xamarin i RoboVM sprawiają, że kompilacja i wykonywanie są bardzo wolne na iOS. W końcu staje się bardzo trudne do utrzymania.
user18853,
13

Wspominasz o Haxe / NME, ale instynktownie nie lubisz tego. Jednak moje doświadczenie z tym było bardzo pozytywne. Jasne, API jest ponowną implementacją Flash API, ale nie jesteś ograniczony do celowania we Flash, możesz także skompilować do HTML5 lub natywnych aplikacji Windows, Mac, iOS i Android. Haxe to przyjemny, nowoczesny język podobny do Java lub C #.

Jeśli jesteś zainteresowany, napisałem trochę o moim doświadczeniu z Haxe / NME: link

zwets
źródło
Dzięki, właśnie z Twojego artykułu: „jeśli masz grę HTML5 / JavaScript (lub Flash / ActionScript) i chcesz ją przenieść na system Windows, iOS i inne”. Myślę, że ten silnik jest właśnie dla twórców stron internetowych, którzy chcą przejść na platformy mobilne.
iseeall
Haxe / NME to nie silnik gry, to platforma, która stanowi część stosu technologii. To nie jest dla programistów internetowych, którzy chcą przejść na platformy mobilne. Jest przeznaczony dla twórców gier, którzy chcą przenieść swoje gry na jak najwięcej platform, bez konieczności radzenia sobie z gorszymi językami, takimi jak JavaScript. HAXE / NME jest bardzo potężny, ale z brzmienia rzeczy nie wydaje mi się, żebyś tego szukał.
anber
12

V-Play (v-play.net) to wieloplatformowy silnik gry oparty na Qt / QML z wieloma przydatnymi komponentami gry V-Play QML do obsługi wielu rozdzielczości wyświetlania i proporcji obrazu, animacji, cząstek, fizyki, wielodotyku, gesty, szukanie ścieżki i więcej. Dokumentacja API Rdzeń silnika napisany jest w natywnym C ++, w połączeniu z niestandardowym rendererem, gry osiągają solidną wydajność 60 fps na wszystkich urządzeniach.

V-Play zawiera również gotowe szablony gier dla najpopularniejszych gatunków gier, takich jak tower defense, gry platformowe lub puzzle.

Jeśli interesują Cię gry wykonane za pomocą V-Play, oto ich krótki wybór:

(Uwaga: Jestem jednym z facetów odpowiedzialnych za V-Play)

Alex Huber
źródło
7

Oto odpowiedź Richarda Pickupa na LinkedIn na podobne moje pytanie:

Użyłem marmolady i jedności cocos 2dx zarówno na iOS, jak i Androidzie. W przypadku gier 2d cocos2dx to droga za każdym razem. Unity to po prostu przesada w grach 2d, a jak już wspomniano, marmolada to tylko cienka warstwa abstrakcji, a nie silnik gry. Możesz nawet uruchomić cocos2d na marmoladzie. Moim podejściem byłoby użycie cocos2dx na iOS i Androidzie, a następnie w przyszłości uruchomić kod cocosd2dx na marmoladzie jako łatwy sposób na przeniesienie do BB10 i wygranie telefonu 7

iseeall
źródło
7

Kilka dni temu znajduję fajny i uporządkowany silnik Wave . Używa C # i ma również konwertery Windows Phone i Windows Store, co sprawia, że ​​jest to dla mnie świetny zamiennik XNA

Deadcow
źródło
6

a co libgdx od BadLogicGames?

Ewoks
źródło
1
Nie wiedziałem, że libGDX działa na iOS. Wymaga licencji MonoDroid, która jest teraz (prawdopodobnie nie widzę, że aplikacja ma mniej niż 32 KB MSIL) 999 USD zamiast 399 USD rocznie.
ashes999
6

Sprawdź Loom ( http://theengine.co ) to nowy międzyplatformowy silnik do gier 2D z kodem i zasobami wymiany na gorąco na urządzeniach. Oznacza to, że możesz pracować w Photoshopie na swoich zasobach, możesz zaktualizować kod, zmodyfikować interfejs użytkownika aplikacji / gry, a następnie zobaczyć zmiany na swoim urządzeniu (urządzeniach) podczas działania aplikacji.

Myśląc o innych wieloplatformowych silnikach gier, o których słyszałem lub nawet grałem, Loom Game Engine jest zdecydowanie najlepszy w mojej opinii z wieloma świetnymi funkcjami. Większość innych podobnych silników gier (Corona SDK, MOAI SDK, Gideros Mobile) są oparte na Lua (z dziwną składnią, przynajmniej dla mnie). Silnik gry Loom wykorzystuje LoomScripts, język skryptowy inspirowany ActionScript 3, z kilkoma funkcjami zapożyczonymi z C #. Jeśli kiedykolwiek pisałeś w języku ActionScript 3, C # lub Java, LoomScript będzie wyglądał znajomo (i jestem bardziej zadowolony z tej składni niż ze składni Lui).

Roczna licencja na silnik gry Loom kosztuje 500 USD i myślę, że jest to przystępna cena dla każdego niezależnego twórcy gier. Kilka tygodni temu zaoferowano również roczną licencję za darmo. Po wygaśnięciu licencji możesz nadal używać Loom do tworzenia i wdrażania własnych gier, ale nie będziesz otrzymywać żadnych dalszych aktualizacji. Twórcy Loom są bardzo pewni siebie i obiecali, że będą stale ulepszać swoje dziecko, dlatego warto kupić kolejną licencję.

Bez zbędnych ceregieli, oto wspaniałe funkcje Looma:

  1. Wiele platform (iOS, Android, OS X, Windows, Linux / Ubuntu)

  2. Przepływ pracy inspirowany przez Railsy pozwala spędzać czas na pracy z grą (jedno polecenie, aby utworzyć nowy projekt, a drugie, aby go uruchomić)

  3. Szybki kompilator

  4. Aktywny kod i edycja zasobów

  5. Możliwość integracji bibliotek stron trzecich

  6. Do renderowania używa Cocos2DX

  7. Obsługa XML, JSON

  8. LML (język znaczników) i CSS do stylizacji elementów interfejsu użytkownika

  9. Biblioteka interfejsu użytkownika

  10. Zastrzyk zależności

  11. Struktura testu jednostkowego

  12. Fizyka wiewiórki

  13. Widok zmian na żywo ułatwia tworzenie wielu urządzeń

  14. Mały rozmiar pliku do pobrania

  15. Zbudowany dla zespołów

Więcej filmów o Loom można znaleźć tutaj: http://www.youtube.com/user/LoomEngine?feature=watch

Zapoznaj się również z tym 4-częściowym samouczkiem: http://www.gamefromscratch.com/post/2013/02/28/A-closer-look-at-the-Loom-game-engine-Part-one-getting -started.aspx

balazs.bohonyi
źródło
5

Próbowałem AppGameKit, to zarówno C ++, jak i Basic. Bardzo łatwo kodować gry 2D w wariancie Basic, z fizyką, kolizją i wieloma innymi. Jest również w fazie rozwoju i jest naprawdę tani (65 $). Główny problem polega na tym, że naprawdę trudno jest skompilować dla Androida (musisz pobrać stosy plików i postępować zgodnie z trudnymi przewodnikami itp.). Moim zdaniem nie jest jeszcze wystarczająco dobry do użytku komercyjnego, ale jest dobry dla niezależnych programistów Ma średnią społeczność

Steven Kaydn
źródło
4

Obecnie z dużym powodzeniem używam aplikacji Corona do aplikacji biznesowych. Jeśli chodzi o gry, mam wrażenie, że nie zapewnia to wydajności, jaką zapewniają niektóre inne wieloplatformowe silniki programistyczne. Warto zauważyć, że Carlos (założyciel Ansca Mobile / Corona SDK) założył inną firmę na konkurencyjnym silniku; Silnik Lanica Platino dla Appcelerator Titanium. Chociaż nie pracowałem z tym osobiście, wygląda to obiecująco. Należy jednak pamiętać, że cena wynosi 999 USD rocznie.

To powiedziawszy, od jakiegoś czasu badam Moai (ponieważ znam już składnię Lua) i wydaje się to obiecujące. Atrakcyjny jest fakt, że można go kompilować na wiele platform, nie tylko w środowiskach mobilnych.

Warto również wziąć udział w konkursie Multimedia Fusion 2, biorąc pod uwagę złożoność produkowanych gier i osiągane z nich wyniki. Przychodzi mi na myśl Vincere Totus Astrum ( http://gamesare.com ).

Sean Perryman
źródło
3

Ostatnio użyłem silnika AS3: PushButton (teraz jest martwy, ale nadal działa i możesz użyć czegoś innego), aby wykonać tę pracę. Aby działał z systemami Android i iOS, projekt został skompilowany w środowisku AIR dla obu platform i wszystko działało bez szkody dla wydajności. Ponieważ Flash Builder jest dość drogi (249 USD), możesz użyć FlashDevelop (istnieje kilka samouczków do kompilacji w AIR za jego pomocą).

Flash może być opcją, ponieważ jest bardzo łatwy do nauczenia.

Kleber
źródło