2D cross-platform game engine dla Androida i iOS? [zamknięte]

Pracowałem jakiś czas z Unity3d i okazało się, że jest to część 2D z OnGUI () lub GUITextures zbyt niezdarny. Ponadto, nawet najmniejsza gra wykonana na Unity3d jest co najmniej 10MB pobrania, co jest po prostu za dużo dla gry 2D.

Więc, obecnie Szukam silnika do 2D. próbowałem Cocos2D, ale to tylko iOS i nie chciałbym przepisać wszystkiego na inny język dla Androida(więc np. Java port Cocos2d dla Androida nie wchodzi w grę). Zamiast tego chcę napisać kod raz i z najmniejszym kłopotem wdrożyć go na iOS, Android i ewentualnie Windows Phone 7. Mam zarówno Mac, jak i Windows.

Aby być bardziej szczegółowym, oto moje wymagania do silnika:

  • musi być wieloplatformowy
  • musi być skuteczny
  • powinno być C++, Java, C# lub Objective C ponieważ jestem z nimi komfortowo i Nie Flash, Javascript, HTML5 ponieważ nie jestem web developerem
  • musi mieć dużą społeczność, samouczki, dodatkowe biblioteki, które obejmują większość rzeczy, które masz podczas tworzenia na iOS lub Android bezpośrednio (rozliczenia w aplikacji, facebook itp.)
  • ostateczna dostarczona paczka nie może być zbyt duża
  • Silnik może być za darmo, ale nie miałbym nic przeciwko zapłaceniu rozsądnej ceny]}

Znalazłem następujące silniki:

  • Marmalade (i iwgame engine na górze) - C++, ogólnie bardzo pozytywne recenzje Marmalade, ale nie jestem pewien co do IwGame. EDIT (marzec 2013) : wygląda podobnie jak Marmalade SDK zawiera teraz Cocos2Dx i niektóre wbudowane IDE, co czyni go znacznie lepszym (i kosztuje $150 rocznie dla indie dev, co jest dla mnie ok).
  • Corona SDK - Lua (wydajność wątpliwa), wymaga również połączenia z Internetem do kompilacji kodu
  • Cocos2d - x - C++, otrzymał wiele recenzji od programistów, głównie pozytywnych i wielu uważa, że jest najlepszy dla 2D
  • - Java + Eclipse, nie znaleziono recenzji ani komentarze
  • Moai - Lua, nie znaleziono żadnych opinii / opinii na jego temat
  • Monkey engine - wydaje się mieć zbyt mało funkcji
  • Haxenme - to Flash, nigdy go nie używałem i nie chcę
  • użyj Unity3d ale z pakietami 2D takimi jak 2D Toolkit
  • porty SDL do Android (również tutaj ) i iOS - nie wygląda na to, aby mieć duże wsparcie lub obecny rozwój (?)
  • GLBasic - język podstawowy, nie podoba mi się
  • playN - wydaje się być wcześnie w rozwoju (?)
  • Gamvas - HTML5, nie wygląda mi na dojrzały silnik
  • Ignifuga - Python, również nie wygląda dojrzale
  • ORX - Nie wiem, czy jest jeszcze rozwinięty (?)
  • Construct 2 - przypomina Gamemakera, może być ok dla szybkich prototypów, ale na pewno nie dla przemysłu gry
  • XNA a następnie port gry za pomocą ExEn (będzie potrzebował Mono Touch do portu na iOS i Mono for Android {[27] } do portu na Androida) - C#, i jest prawdopodobnie bardziej przemyślane dla ludzi pochodzących z produktów Microsoft, takich jak xBox (pochodzę z Androida). Ponadto, te narzędzia Mono kosztują $800 W sumie dla małych programistów
  • Impact - JavaScript, używa HTML5. Nie przepadam za JavaScript (np. preferowany C# na Unity3d), też nie jestem pewien wydajność, ponieważ działa w przeglądarce (?)
  • GameMaker - własny język skryptowy GML i pamiętam ten jako narzędzie dla nie-programistów. Czy wyrósł na prawdziwy silnik, mam na myśli poważny rozwój?
  • AppGameKit - C++, ale wydaje się być wciąż całkiem nowy. Nie znaleziono żadnych recenzji na jego temat
  • użyj Cocos2D i Objective C, aby opracować tylko dla iOS, a następnie zrobić z niego APK dla Androida za pomocą Stella SDK . Czy ktoś to zrobił? Jestem prawie pewien, że będą ograniczenia, a co powiesz na fakturowanie w aplikacji Google, integrację AdMob i Facebook na Androida?
  • Moscrif - JavaScript, wygląda na to, że jest bardziej dla byłych web-developerów
  • Starling - Flash 11, nie przepadam za Flashem
  • ND2D - jeszcze nie 1.0, Czy ma wiele funkcji?

Więc byłbym szczęśliwy, gdybyś mógł skomentować swoje doświadczenia z silnikami i zasugerować który z nich na liście (lub cokolwiek innego, co przegapiłem) jest najlepszy dla opisanych wymagań. Ja też mogę się 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 zbyt wielu informacji o Cocos2d-x i kodzie cząsteczkowym, nie jestem tego pewien.

Dziękuję!

EDIT (czerwiec 2013): do tej pory zrobiłem 2 cross-platform gry 2D i używane Unity3D z 2D Toolkit plugin dla jedno i drugie. Do gry z prostym GUI użyłem prostego systemu GUI własnego autorstwa opartego na Unity ' s own. Dla bardziej złożonych (np. gdzie elementy GUI mogą się nakładać) użyłem wtyczki NGUI. Ostatnio 2D Toolkit dodał jeszcze kilka klas dla GUI, co jest bardzo przydatne, ponieważ trzeba było użyć 2 różnych systemów atlasów tekstur podczas łączenia NGUI z 2D Toolkit. Na pewno spróbuję tego w następnej grze 2D. Głównym powodem wyboru Unity3D dla gier 2D było to, że byłem już głęboko w Unity3D zarówno w warunki doświadczenia i zgromadzone fragmenty kodu do ponownego wykorzystania. Ponadto kupiłem Unity3D pro (z Androidem Pro i IOS Pro) dla gier 3D i miało to sens, aby po prostu zapłacić dodatkowe $60 za zestaw narzędzi 2D, aby uzyskać również gry 2D. Do tej pory nie żałuję swojej decyzji, wydaje się, że była optymalna dla mojej sprawy. Jedyną rzeczą, która przyprawiła mnie o ból głowy było dodawanie funkcji społecznościowych za pomocą wtyczek Prime31 (Android & iOS social plugins), ale zakładam, że ich błędy nie są winą Prime31, ale zamiast tego Twitter / Facebook, więc prawdopodobnie zobaczyłbym te same błędy na każdym innym silniku lub wtyczce.

EDIT (Jan 2014): myślę, że z Unity 4.3 odpowiedź na moje pytanie jest teraz dość oczywiste: nowy system Unity sprites i może również 2DToolkit całkowicie pokonać wszystko inne, szczególnie dla ludzi, którzy (jak ja) byli na Unity przez jakiś czas i kupił wersję Pro z dodatkami.

Author: iseeall, 2012-09-02

11 answers

Pracowałem z Marmalade i uznałem to za satysfakcjonujące. Chociaż nie jest darmowy, a społeczność programistów nie jest wystarczająco duża, ale nadal możesz obsłużyć większość zadań za pomocą samouczków. (Ja też napiszę swoje tutoriale, jak tylko będę miał kilka razy).
IwGame to dobry silnik, opracowany przez jednego z użytkowników Marmolady. Jest dobry do podstawowej gry, ale jeśli szukasz poważnych zaawansowanych rzeczy do grania, możesz również użyć Cocos2D-x z marmoladą. Nigdy nie używałem Cocos2D-x, ale jest Rozszerzenie na marmoladę Github.
Inną dobrą rzeczą w Marmalade jest to EDK (Extension Development Kit), który pozwala na rozszerzenie dowolnej funkcjonalności, która jest dostępna w kodzie natywnym, ale nie w Marmalade. Użyłem go do stworzenia własnego, dostosowanego rozszerzenia Admob i rozszerzenia Facebook.

Edit :
Marmalade ma teraz własne narzędzie RAD (Rapid Application Development) tylko dla rozwoju 2D, nazwane jako Marmalade Quick. Chociaż kodowanie będzie w Lua Nie w C++, ale ponieważ jest zbudowany na bazie C++ Marmalade, można łatwo dołączyć bibliotekę C++ i wszystkie inne rozszerzenia EDK. Również rozszerzenia Cocos-2Dx i Box2D są preincludowane w Quick. Niedawno wypuścili wersję Release (była w wersji beta przez 3-4 miesiące). Myślę, że naprawdę szukasz tylko rozwoju 2D, powinieneś spróbować.

Update:
Unity3D niedawno uruchomił wsparcie dla gier 2D, który wydaje się lepszy niż jakikolwiek inny silnik gier 2D, ze względu na jego GUI i redaktor. Wsparcie fizyki, sprite itp. jest wbudowane. Możesz na to spojrzeć.

Update 2
Marmalade wkrótce wycofa swoje zestawy SDK na rzecz własnej produkcji gier. Więc nie będzie mądrą decyzją poleganie na tym.

 29
Author: noob,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-16 08:53:46

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 wykonałem. Możesz użyć dowolnego języka JVM, który lubisz. Oto 13-częściowy samouczek w Javie, a Oto Grupa używająca jruby. Jest dobre narzędzie do animacji szkieletu, które działa z nim tutaj, i ma również wsparcie dla kafelkowych map TMX. Framework ui jest niesamowity i ma Wykres sceny i API stylu aktora podobne do scen cocos2d, sprite ' ów i akcji. Społeczność jest niesamowita, aktualizacje są częste, a dokumentacja jest dobra. Nie daj się przestraszyć części java, to jest szybkie, i można użyć jruby lub scala lub cokolwiek chcesz. Gorąco polecam go do pracy 2d lub 3d, obsługuje oba.

 39
Author: Kamek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-23 17:45:38

Wspominasz Haxe / NME, ale wydaje ci się, że instynktownie tego nie lubisz. Jednak moje doświadczenia z nim były bardzo pozytywne. Oczywiście, API to reimplementacja interfejsu Flash API, ale nie ograniczasz się do kierowania Flashem, możesz także skompilować do HTML5 lub natywnych aplikacji dla Systemów Windows, Mac, iOS i Android. Haxe to przyjemny, nowoczesny język podobny do Javy lub C#.

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

 12
Author: zwets,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-27 11:29:42

V-Play (v-play.net) jest wieloplatformowym silnikiem gry opartym na Qt / QML z wieloma użytecznymi komponentami V-Play QML do obsługi wielu rozdzielczości wyświetlania i proporcji, animacji, cząstek, fizyki, multi-touch, gestów, znajdowania ścieżek i innych. API reference Rdzeń silnika jest napisany w natywnym C++, w połączeniu z niestandardowym rendererem, gry osiągają solidną wydajność 60 klatek na sekundę na wszystkich urządzeniach.

V-Play zawiera również gotowe do użycia szablony gier dla najbardziej udane gatunki gier, takie jak tower defense, gry platformowe lub gry logiczne.

Jeśli jesteście ciekawi gier stworzonych za pomocą V-Play, oto krótki ich wybór:

(Disclaimer: I ' m one of the guys behind V-Play)

 12
Author: Alex Huber,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-23 14:44:07

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

Używałem cocos 2DX marmalade i unity zarówno na iOS i android. Na Gry 2D cocos2dx jest sposób, aby przejść za każdym razem. Jedność to za dużo overkill dla gier 2d i jak już wspomniano marmolada jest po prostu cienka warstwa abstrakcji nie jest tak naprawdę silnikiem gry. Możesz nawet uruchomić cocos2d na szczycie Marmolady. Moim podejściem byłoby użycie cocos2dx na iOS i android następnie w przyszłości uruchomić kod cocosd2dx na szczycie Marmolady jako łatwy sposób na port do bb10 i win phone 7

 6
Author: iseeall,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-04 10:02:27

Znalazłem ładny i schludny silnik gry Wave kilka dni temu. Używa C# i ma Konwertery Windows Phone i Windows Store, co czyni go świetnym zamiennikiem XNA dla mnie]}

 6
Author: Deadcow,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-30 07:08:19

Próbowałem AppGameKit, jest to zarówno c++, jak i Basic. Bardzo łatwo jest kodować gry 2d w podstawowym wariancie, z fizyką, kolizją i wieloma innymi. Jest również w aktywnym rozwoju i naprawdę tani(65$). Głównym problemem jest to, że naprawdę trudno jest skompilować dla Androida (musisz pobrać sterty plików i postępować zgodnie z trudnymi przewodnikami i tym podobne) Moim zdaniem nie jest jeszcze wystarczająco dobry do użytku komercyjnego, ale jest dobry dla programistów niezależnych Jest to społeczność średniej wielkości

 4
Author: Steven Kaydn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-19 06:11:23

A co z LibGDX z BadLogicGames?

 4
Author: Ewoks,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-20 16:03:24

Sprawdź Krosno ( http://theengine.co) to nowy wieloplatformowy silnik gry 2D z funkcją hot swapping code & assets na urządzeniach. Oznacza to, że możesz pracować w programie Photoshop na swoich Zasobach, aktualizować kod, modyfikować interfejs aplikacji/gry, a następnie widzieć zmiany na urządzeniu(urządzeniach), gdy aplikacja jest uruchomiona.

Myśląc o innych wieloplatformowych silnikach gier, o których słyszałem lub nawet grałem, silnik gry Loom jest zdecydowanie najlepszy w moim oppinion z mnóstwem świetnych funkcje. 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 Loomscript, język skryptowy inspirowany ActionScript 3, z kilkoma funkcjami zapożyczonymi z C#. Jeśli kiedykolwiek stworzyłeś ActionScript 3, C# lub Java, LoomScript będzie wyglądał znajomo (a mi bardziej odpowiada ta składnia niż składnia Lua).

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

Bez zbędnych ceregieli, oto świetne cechy Krosna:

  1. Krzyż Platforma (iOS, Android, OS X, Windows, Linux/Ubuntu)

  2. Workflow inspirowany Rails pozwala Ci spędzać czas na pracy z grą (jedno polecenie do utworzenia nowego projektu, a drugie polecenie do jego uruchomienia)

  3. Szybki kompilator

  4. Edycja aktywnego kodu i zasobów

  5. Możliwość integracji bibliotek stron trzecich

  6. Używa Cocos2DX do renderowania

  7. Obsługa XML, JSON

  8. LML (znaczniki język) i CSS do stylizacji elementów UI

  9. Biblioteka UI

  10. Dependency injection

  11. Unit test framework

  12. Fizyka Chipmunk

  13. Zobaczenie zmian na żywo sprawia, że tworzenie wielu urządzeń jest łatwe

  14. Mały Rozmiar pliku

  15. Zbudowany dla zespołów

Więcej filmów o Krosnie znajdziesz tutaj: http://www.youtube.com/user/LoomEngine?feature=watch

Zobacz też ten 4-częściowy tutorial: http://www.gamefromscratch.com/post/2013/02/28/A-closer-look-at-the-Loom-game-engine-Part-one-getting-started.aspx

 4
Author: balazs.bohonyi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-18 13:26:57

Ostatnio użyłem silnika AS3: PushButton (teraz jest martwy, ale nadal działa i przydałoby się coś innego) do tej pracy. Aby działał z Androidem i iOS, projekt został skompilowany w powietrzu dla obu platform i wszystko działało bez szkody dla wydajności. Ponieważ Flash Builder jest dość drogi ($249), możesz użyć FlashDevelop (istnieje kilka samouczków do kompilacji w powietrzu z nim).

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

 2
Author: Kleber,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-10 18:58:22

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

Wszystko to powiedziawszy, od jakiegoś czasu badam Moai (ponieważ jestem już zaznajomiony ze składnią Lua) i wydaje się to obiecujące. Fakt, że może kompilować dla wielu platform, nie ograniczając się do środowisk mobilnych, jest atrakcyjny.

Multimedia Fusion 2 jest również wart uwagi, biorąc pod uwagę złożoność produkowanych gier i osiągi z nich realizowane. Vincere Totus Astrum (http://gamesare.com ) przychodzi mi na myśl.

 2
Author: Sean Perryman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-27 01:54:56