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ę:
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.
źródło
Odpowiedzi:
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)
źródło
Jeśli lubisz używać Pythona, Kivy jest obecnie świetnym rozwiązaniem. Kompiluje się na wszystkie platformy, o które prosisz:
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).
źródło
A co z HaxeFlixel ? Mamy duży wybór wersji demonstracyjnych i oczywiście obsługujemy programowanie międzyplatformowe za pośrednictwem Haxe + OpenFL. To jest projekt open source hostowany na GitHub . Obsługujemy wszystkie główne platformy (w tym iOS).
źródło
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.
źródło
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.
źródło
Jeśli masz tło C #. Spójrz na Duality.
źródło
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 :)
źródło
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.
źródło
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.
źródło