Mechanizmy tworzenia gier 2D międzyplatformowych [zamknięte]

84

Pracowałem przez jakiś czas z Corona SDK i uwielbiam to, jak szybko i łatwo mogę tworzyć potężne aplikacje za pomocą Lua. Ale może kompilować się tylko dla iOS i Androida, co wydaje się teraz zbyt mało.

Moim głównym zainteresowaniem jest możliwość kompilacji do wersji Desktop AND Mobile. Przynajmniej w następujących przypadkach:

  • Windows + Mac na komputery stacjonarne, jako samodzielne aplikacje.
  • iOS + Android na urządzenia mobilne.

Wolałbym bardziej skłaniać się ku skryptom typu Lua zamiast ActionScript, ale nie krępuj się publikować wszystkiego, z czym pracowałeś i kochasz.

Do tej pory znalazłem następujące silniki:

  • Marmalade Quick - po dokładniejszym zbadaniu, Marmalade Quick może budować tylko dla urządzeń mobilnych!
  • IwGame - działa na marmoladzie i twierdzi, że można go wdrożyć na komputer stacjonarny i telefon komórkowy za pomocą Lua. Wszelkie informacje są bardzo mile widziane
  • sio2 - mówi: „SIO2 to oparty na OpenGLES wieloplatformowy silnik gier 2D i 3D dla systemów iOS, Android, MacOS i Windows” oraz „Silnik umożliwia również przeniesienie gry do Mac Store i Windows”, ale ich forum a tytuł internetowy to „Silnik gier na urządzenia mobilne”. Nie można znaleźć żadnych informacji o tym, czy można go wdrożyć na platformach stacjonarnych, wszelkie informacje są ponownie bardzo mile widziane.
  • Loom Engine - Loom jest podobny do Haxe + OpenFL (próbuje przyciągnąć programistów Flash) w tym, że używa ECMAScript w AS3, ale nie buduje z niego natywnego kodu. Jednak wykorzystuje Cocos2D do renderowania, więc teoretycznie powinien być tak szybki jak Cocos2D. - Dzięki Bojan.
  • SDL - czytałem w wielu miejscach, że SDL może wdrożyć na prawie każdej platformie lub urządzeniu i ma powiązanie Lua. Ale nie mogę znaleźć, jak to działa, ponieważ nie jest to silnik. Każdy, kto może wyjaśnić, jak to działa i jeśli to możliwe, jest ponownie bardzo doceniany.
  • SFML - „Windows, Linux, Mac OS X i wkrótce Android i iOS.” Nie używa Lua, ale może używać innych języków, takich jak Java i Python itp. Czy ktoś ma jakieś informacje na ten temat?
  • Torgue2D - „Torque 2D został opracowany z myślą o urządzeniach z systemami OS X, Windows i iOS i działa równie dobrze na wszystkich platformach”. używa TorgueScript i żadnego Androida = (
  • Sencha - Wydaje się, że kompiluje się na wszystkie platformy, używa też Javascript, który znam. Ale czy nawet z V8 JS działałoby to dobrze pod względem wydajności w porównaniu z innymi opcjami?
  • GameMaker - własny język skryptowy GML, który pamiętam jako narzędzie dla nieprogramistów. Czy rzeczywiście wyrósł na prawdziwy silnik, mam na myśli poważne prace rozwojowe?
  • Construct2 - to samo pytanie co gamemaker
  • Corona - Lua, ale tylko mobilna (tylko Android i iOS)
  • Cocos2D - Wygląda na to, że ma wiele opcji, ale nie masz pewności z tym samym językiem? Wygląda na to, że musiałbyś ponownie napisać cały kod. Wszelkie informacje, czy cocos2D można wdrożyć na komputer stacjonarny i telefon komórkowy z prawie tym samym kodem, byłyby bardzo mile widziane.
  • Angel2D - mówi, że może wdrożyć wszystko oprócz Androida i używa Lua, ktoś kiedykolwiek używał tego wcześniej?
  • libgdx --- widziałem tylko dobre rzeczy na ten temat. Oto test porównawczy libgdx i zobaczyłem, że osiąga 40 000 sprite'ów przy 60 klatkach na sekundę. http://www.sparkrift.com/2012/1/love2d-vs-allegro-vs-clanlib-vs-libgdx-vs-cocos2d-x-vs-monogame-vs-xna-vs-sfml . Wygląda na to, że libgdx ledwie przekracza 30k. Ale nadal wydaje się niesamowity. To jest na tym samym poziomie, co Qt dla mnie, prawie idealne, z wyjątkiem tego, że nie martwię się o wydajność. libgdx może zbudować prawie wszystko.
  • XNA + MonoGame --- Wydajność MonoGame wydaje się tylko nieznacznie niższa niż libgdx, którą można zbudować na większości platform. Jednak nie wiem zbyt wiele o XNA i słyszałem, że nie będzie otrzymywał przyszłych aktualizacji, ale czy jest dość stabilny? Więcej informacji mile widziane.
  • Cytrusy --- Nie ma też zbyt wielu informacji na temat owoców cytrusowych. Silnik gry AS3, który można budować dla systemów iOS, Android, Windows, Mac i nie tylko.
  • Haxe + OpenFL --- OpenFL (Haxe) buduje się do natywnych na wielu platformach, nie tylko do Flasha. Systemy Windows, Mac, Linux i Android otrzymują opcjonalne natywne wdrożenie lub środowisko uruchomieniowe OpenFL o nazwie Neko, które teoretycznie jest szybsze niż Flash, a SDL 2.0 umożliwi wkrótce wdrożenie iOS (ish). - Dzięki Bojan.
  • Qt-Project --- Wystarczy połączyć tutaj projekt Qt, można budować dla wszystkiego i ma całkiem dużą społeczność z wieloma bibliotekami stron trzecich, które pomogą Ci jeszcze bardziej.
  • Moai - jedyny znany mi silnik Lua, który można zbudować na komputery stacjonarne i urządzenia mobilne. Jedynym minusem jest to, że społeczność nie jest tak duża, a dokumentacja nie jest najlepsza. Ale jeśli możesz je zdać, jest to świetne rozwiązanie, z którego obecnie korzystam.
  • Adobe --- Nie można zapomnieć o dodaniu tutaj Adobe, ponieważ może budować wszystko, co obsługuje Flash.
  • Unity3D --- Niedawno ogłoszona integracja 2D wygląda bardzo obiecująco, powinna zostać wydana w III-IV kwartale 2013 roku.
  • Cocos2d-x --- silnik open source. Obsługuje JS, Lua, C ++ i wiele platform.
  • Html5 --- Wydaje się, że duży nacisk kładzie się na aplikacje mobilne HTML5, oto tylko kilka narzędzi, które znalazłem, które mogą pomóc w przeniesieniu projektu HTML5 na platformę:

    1. Wbudowany chrom

    2. Sencha

    3. Phonegap

    4. Appcelerator / Titanium

    5. Icenium

Byłbym więc szczęśliwy, gdybyś mógł skomentować swoje doświadczenia z jakimikolwiek silnikami i zasugerować, który z nich poleciłbyś. Dziękuję za pomoc!

EDYCJA: Ponieważ ten temat staje się popularny, z czasem będę dodawać inne opcje, które znalazłem. Proponuję wybrać to, co jest Ci najbardziej znane i najlepsze dla Twojego projektu.

Nazwy nienawiści
źródło
1
OpenFL (Haxe) buduje się do natywnych na wielu platformach, nie tylko do Flasha. Systemy Windows, Mac, Linux i Android otrzymują opcjonalne natywne wdrożenie lub środowisko uruchomieniowe OpenFL o nazwie Neko, które teoretycznie jest szybsze niż Flash, a SDL 2.0 umożliwi wkrótce wdrożenie iOS (ish). Loom jest podobny (próbuje przyciągnąć programistów Flash) w tym, że używa ECMAScript w stylu AS3, ale nie buduje z niego natywnego kodu. Jednak używa Cocos2D do renderowania, więc teoretycznie powinien być tak szybki jak Cocos2D
Bojan Markovic
2
Naprawdę powinieneś dodać Cocos2d-X do listy: cocos2d-x.org
Clay
Powinieneś definitywnie sprawdzić UDK od Epic Games. W rzeczywistości jest to w pełni silnik AAA przeznaczony dla moderów i niezależnych programistów. Niestety obecnie nie obsługuje Androida, chociaż udostępnili pełne licencje UE4, które obsługują Androida. Należy pamiętać, że UE4 właśnie zostało wydane, a UDK jest dość rozwiniętą platformą.
Igor Čordaš
Również jeśli chcesz czegoś Open Source i przenośnego (opartego na Javie), zobacz jMonkeyEngine.
Igor Čordaš

Odpowiedzi:

9

Polecam V-Play (v-play.net) - to wieloplatformowy silnik gier oparty na Qt dla iOS, Android, Symbian, MeeGo, Blackberry10, a także może eksportować do natywnych aplikacji desktopowych dla Windows, Mac i Linux.

Jest oparty na C ++, ale ma zgrabną obsługę skryptów dla QML i JavaScript . QML nie wymaga myślenia i może zwiększyć produktywność, ponieważ potrzeba mniej kodu - wystarczy zobaczyć porównanie z cocos2d-x (60% mniej Loc) lub Corona (15% mniej LoC), aby porównać te same gry.

(Zastrzeżenie: jestem jednym z facetów stojących za V-Play)

Christian Feldbacher
źródło
1
Chociaż jestem pewien, że V-Play to niesamowity produkt, powinieneś zamieścić zastrzeżenie, że jesteś współzałożycielem. Zobacz: meta.stackexchange.com/a/59302
Nepoxx
1
Jasne - właśnie to dodałem
Christian Feldbacher
7

Jeśli lubisz używać Pythona, Kivy jest obecnie świetnym rozwiązaniem. Kompiluje się na wszystkie platformy, o które prosisz:

Kivy działa w systemach Linux, Windows, MacOSX, Android i IOS. Możesz uruchomić ten sam kod na wszystkich obsługiwanych platformach. Może natywnie korzystać z większości protokołów wejściowych i urządzeń, takich jak WM_Touch, WM_Pen, Mac OS X Trackpad i Magic Mouse, Mtdev, Linux Kernel HID, TUIO. W zestawie znajduje się symulator myszy wielodotykowej.

Kivy używa dużo zoptymalizowanego kodu do renderowania grafiki (przez Cython), więc jest też szybki.

Oto zestaw głośnomówiący, który zawiera podstawowe informacje i przegląd (dla systemu Android).

dirkjot
źródło
Chociaż kivy może być używany do tworzenia gier, nie jest to dokładnie silnik gry, jednak kivyent (kivent.org) jest silnikiem gry opartym na kivy, który może być bardziej odpowiedni, chyba że twoja gra jest bardzo prosta wymagają dodatkowej złożoności.
Tshirtman
5

Oto mój framework do gry Oxygine . Jest to nowoczesny, przyspieszany sprzętowo framework 2D C ++ typu open source dla platform mobilnych i PC. Funkcje: OpenGL (ES) 2, skompresowane tekstury, atlasy, złożone animacje / animacje / sprite'y, wykres sceny, czcionki, obsługa zdarzeń, narzędzia do budowania i inne. Może być zbudowany w oparciu o SDL2 lub Marmalade SDK.

W podstawie silnika znajduje się wykres sceny podobny do Flasha. Krótko mówiąc, możesz to nazwać Flash dla C ++, ale wygodniejsze i szybsze. Początkowo został opracowany na platformy mobilne (iOS, Android), ale może być również używany do gier na PC.

wprowadź opis obrazu tutaj

Denis Muratshin
źródło
Wypróbowałem to (i wydałem gotowy produkt), działa bardzo dobrze!
Juster
4

Nie ma tu wzmianki o App Game Kit (AGK) , więc pozwól mi wypełnić lukę. Jest to głównie 2D, wieloplatformowy pakiet SDK, który umożliwia jednorazowe kodowanie w języku C ++ lub własnym języku „Basic”. Wersja 2 właśnie otrzymała ponad 400% finansowania na Kickstarterze i będzie miała pełne wsparcie 3D, obsługę kręgosłupa (dla postaci animowanych 2D), fizykę pocisków i całą masę innych nowych funkcji.

Ma już Facebooka, Twittera, kilka poleceń czujnika Ultrabook, Box2D i nie tylko. Używam go od samego początku i uwielbiam (czy możesz powiedzieć?). Nie, nie pracuję dla The Game Creators (firmy, która go stworzyła), chociaż przyznaję, że robiłem to przez jakiś czas, robiąc niektóre aplikacje.

Jedną z najlepszych funkcji z mojego punktu widzenia jest to, że możesz programować w systemie Windows i transmitować z IDE przez Wi-Fi na dowolne obsługiwane urządzenie, więc podczas kodowania mogę (w ciągu kilku sekund) przetestować mój kod na iPadzie, Androidzie, Windows, Mac lub Blackberry Playbook.

Steve H.
źródło
4

Jeśli masz tło C #. Spójrz na Duality.

Duality to elastyczny framework do gier 2D napisany w całości w C # - i jest tutaj, aby trochę ci to ułatwić. Zapewnia zarówno rozszerzalny silnik gry, jak i edytor wizualny. Nie będzie potrzeby edytora poziomów, środowiska testowego ani menedżera treści, ponieważ Duality jest tym wszystkim. A co najważniejsze: to nic nie kosztuje.

Andy
źródło
1
Niezły dodatek. Wkrótce dodam go do listy, a także kilka innych, o których się dowiedziałem, wraz z lepszą organizacją. Dziękuję za wkład
Hate Names
Czy jest kompatybilny z różnymi platformami?
JCPhlux
2
@JCPhlux, tak jest. Nie jestem pewien co do telefonu komórkowego, ale działa w trybie mono.
Andy,
Naprawiony. Myślę, że przenieśli się niedługo po tym, jak opublikowałem moją odpowiedź - github.com/AdamsLair/duality/issues/45
Andy
2

Odpowiadam tylko, aby dać ci wgląd w to, jak jest używany SDL. Jak powiedziałeś wcześniej, to nie jest silnik gry (właściwie to tylko biblioteka). Co więcej, nie jest w ogóle zorientowany obiektowo i nie masz łatwych narzędzi do animacji (musisz je samodzielnie zakodować).

Jak to działa (użyłem wersji C, ale myślę, że wiązanie Lua powinno być podobne):

Dołącz nagłówki potrzebne do zbudowania projektu na wybranej platformie.

Zaprojektuj własną pętlę gry, w której skonfigurujesz (przynajmniej) cały system przetwarzania zdarzeń, menedżera liczby klatek i "czyścik ekranu (lub aktualizator)" (nalegam na fakt, że musisz ręcznie odświeżyć ekran używając procedury SDL_flip_screen, która nie jest jednym z twoich zmartwień w przypadku Corona).

Następnie zakoduj swoją grę, korzystając ze wszystkich „mechanik”, które stworzyłeś wcześniej.

SDL to biblioteka niskiego poziomu (nie spodziewaj się, na przykład, że będziesz mieć łatwy w użyciu framework GUI lub strukturę storyboardową Corona).

Wreszcie ta biblioteka została użyta do przeniesienia Civilization III na Linuksa, więc tak, to działa, ale będzie wymagało dużo energii, aby mieć coś takiego, jak miałeś z Coroną;)

PS: Nie jestem native speakerem języka angielskiego, więc proszę daj mi znać, jeśli nie było jasne :)

Julien
źródło
2

Gideros to świetny, wieloplatformowy silnik 2d oparty na Lua , obecnie obsługujący zarówno platformy Android, jak i IOS, ale więcej w przyszłości. Ma również kilka świetnych funkcji, takich jak natychmiastowe testowanie na urządzeniu, automatyczne skalowanie i automatyczna rozdzielczość obrazu, aby łatwo kierować reklamy na różne rozmiary ekranu, a także opcję rozszerzenia każdej platformy za pomocą natywnych wtyczek.

Artūrs Sosins
źródło
1

Masz również ShiVa3D , poważnego konkurenta Unity3D. Korzysta z Lua i obsługuje wiele platform, od telefonów komórkowych po konsole do gier i przeglądarki internetowe.

Bardzo intuicyjny w obsłudze i bardzo przyjemny interfejs użytkownika do pracy.

Exsigth
źródło