Wieloplatformowe silniki graficzne 2D [zamknięte]

57

Szukam silnika graficznego 2D, który pozwoliłby mi wydać na Windowsa, Maca i iPhone'a, podobnie jak Unity dla 3D.

Czy istnieje dobry silnik, który to robi i jest specyficzny dla 2D?

Kevin Laity
źródło
Jeśli masz ochotę na przygodę, zawsze możesz sprawdzić jedną z gier 2D typu open source, takich jak Aquaria, Gish i reszta zestawu Humble Indie.
MarkovCh1,
6
Zapomniałeś Linuksa, nie ma miłości do tych facetów?
Derek

Odpowiedzi:

37

Zawsze jest stary tryb gotowości, SDL . Jest to dość niski poziom, ale ta prostota pozwala na przeniesienie go na bajilliony platform (w tym Windows, Linux, Mac, Nintendo DS, Wii itp.). Jest port iPhone'a , z którego nie korzystałem, ale wydaje się wystarczająco dojrzały.

rev davr
źródło
Wygląda na to, że nie mają jeszcze wersji 1.3 „stabilnej”, która jest wersją, którą będziesz chciał obsługiwać iPhone'a. Prawdopodobnie będziesz musiał pobrać wersję 1.3 z repozytorium HG i sam ją zbudować.
Casey
22

Naprawdę nie ma żadnego powodu, dla którego nie można używać Unity3D do tworzenia gier „2D”. Możesz używać teksturowanych quadów i kamery ortograficznej, a także masz grę 2D. Istnieją nawet unikalne rozwiązania, takie jak użycie szkieletowego systemu animacji i umieszczenie duszków na różnych stawach lub użycie naprawdę ciasnej kamery z perspektywy, aby uzyskać tanie paralaksowanie.

Istnieją nawet dostawcy oprogramowania pośredniego dla Unity, którzy zapewniają lepsze rozwiązania do zarządzania duszkami. Jak menedżer duszków 2 .

Tetrad
źródło
2
W rzeczywistości to robiłem. Uważam, że trójwymiarowy aspekt jedności zwykle przeszkadza w zakresie interfejsu użytkownika. Poza tym zawsze robię sztuczną scenę, w której nie ma nic oprócz kamery z dołączonym skryptem roota. Sprawdzę jednak wspomniany link!
Kevin Laity
20

SFML to ładny, nowoczesny, zorientowany obiektowo, wieloplatformowy silnik graficzny. Jest przyspieszany sprzętowo (w oparciu o OpenGL) i ma powiązania dla

  • C ++
  • do
  • .Net (C #, VB.Net, C ++ / CLI, ...)
  • Pyton
  • re
  • Rubin
  • Ocaml
a_m0d
źródło
4
+1 dla SFML. To świetnie, ale jedynym problemem jest brak portu iPhone'a.
Kaczka komunistyczna
12

SDL, Allegro, OpenGL
SDL i Allegro to nie tylko biblioteki graficzne, ale także biblioteki do tworzenia gier.
Jedną wadą SDL jest to, że przejmuje twoją funkcję main () i redefiniuje ją, co utrudnia połączenie jej z innymi bibliotekami. (QT z mojego doświadczenia)
Kolejną złą rzeczą jest to, że SDL pozwala tylko na jedno okno (jest to stabilna wersja 1.2, wersja rozwojowa 1.3, ale nie jest jeszcze w pełni obsługiwana ani udokumentowana)
Mogę wymienić słabe punkty SDL, ponieważ znam to najlepiej i działał z nim, ale mimo to jest bardzo wydajny, wiele emulatorów, w tym port Mame i ScummVM, a także gry.
OpenGL, pomimo popularnego zastosowania 3D, jest biblioteką graficzną i jako taka umożliwia także grafikę 2D poprzez manipulowanie powierzchniami na poziomie pikseli i szeroko wykorzystuje przyspieszenie sprzętowe zarówno w 3D, jak i 2D.

Petruza
źródło
Cały czas tworzę gry w Allegro. Pokochałem to.
Ton
Qt nie przejmuje jednak funkcji main, nawet z pętlą zdarzeń w QCoreApplication. Możesz wywołać qApp-> processEvents w dowolnej pętli, a Qt będzie szczęśliwy.
Mircea Chirea,
1
Czy jednak SDL musi przejąć główną pętlę? Pomyślałem, że można tego uniknąć, nie włączając SDLmain.h i uważając, aby robić to sam ...
Ricket
2
SDL nie przejmuje twojej głównej pętli gry. Zwykle tworzysz własne i wewnątrz tego wywołania SDL_PollEvent, aby uzyskać wszelkie zdarzenia, o których SDL jest świadomy (wprowadzanie z klawiatury, ruch myszy, itp.).
dcarrigg
6

Możesz spojrzeć na Troll2D

Box2D jest używany na wielu platformach. W tym iPhone. Ale musisz znaleźć sposób na wyświetlenie tych obiektów. Ponieważ Box2D obsługuje tylko symulację fizyki 2D.

Ólafur Waage
źródło
Olafur - powiedziałbym, że Troll2D była twoją odpowiedzią, więc powinieneś zacząć od tego. Box2d powinien być później.
Iain
5

LÖVE to silnik 2D, który umożliwia łatwy i szybki rozwój gier w języku Lua .

Działa na komputerach Mac (PPC i Intel), Windows i Linux (32- i 64-bitowy), a gry można łatwo dystrybuować jako pliki „.love” na jednym systemie.

Są to w zasadzie skompresowana wersja twojej gry z rozszerzeniem zip zmienionym na miłość .

Niestety, jak dotąd nie ma portu iPhone'a.

Linus
źródło
5

Cocos2D pochodzi z Mac / Windows w Pythonie i jest dostępny w wersji Objective-C pod iPhone'em . Jest popularny w tworzeniu gier 2D na iPhone'a. Ray Wenderlich ma kilka świetnych samouczków Cocos2D na iPhone'a .

Ponieważ przenieśli się z Pythona do Objective-C, podejrzewam, że nie będziesz w stanie kompilować się między wszystkimi platformami z tej samej bazy kodu.

Joost Schuur
źródło
Zgadza się, istnieje wiele portów cocos2d, ale wszystkie używają własnego języka. Objective-C dla iPhone'a, Java dla Androida, JavaScript dla sieci Web, Python dla oryginalnej wersji PC i C ++ dla nowego portu Windows, który może obsługiwać Windows Mobile lub nie (jest to niejasne). Poza nazwą i filozofią projektowania nie są one w żaden sposób zamienne.
LearnCocos2D,
Myślę, że Cocos2d-x jest teraz dość stabilny i wieloplatformowy, z jednym językiem implementacji: C ++ (obejmuje również iPhone'a).
legends2k
4

Jeśli nie martwisz się o iPhone'a, zawsze Flash jest zapakowany jako AIR - tracisz iPhone'a, ale zyskujesz wdrożenie Linuksa i Internetu. Następnie możesz wybrać silniki gier / fizyki / renderowania, które pasują do twojego projektu, np. FlashPunk, Flixel, Box2d.

Iain
źródło
Zyskujesz także obsługę telefonu z Androidem (przynajmniej nowsze), a prawdopodobnie także obsługę Palm / Blackberry / Windows Mobile w przyszłości.
davr
iOS jest teraz obsługiwany, a Linux nie.
Danik
4

Możesz spróbować Angel Engine . Opiera się na C ++, OpenGL, Box2D i używa skryptów w Pythonie. Dotyczy to głównie prototypowania, ale najnowsze wersje wydają się koncentrować na tworzeniu pełnych gier.

Carnby
źródło
3

Aplikacja moment2D obsługuje komputery PC i Mac po wyjęciu z pudełka. ITorque2D obsługuje wdrożenie na iPhonie. Możliwe jest również uzyskanie wdrożenia konsoli.

Cubed2D
źródło
2

PlayN obsługuje HTML5, Android, iOS, Flash i desktop Java.

Piszesz kod w Javie, a on obsługuje konwersję kodu Java na JavaScript (przez GWT) dla HTML, na ARM (przez IKVM, aby przejść z kodu bajtowego Java na kod bajtowy CLR, a następnie MonoTouch, aby skompilować kod bajtowy CLR do natywnej aplikacji na iOS), do ActionScript za pomocą niestandardowego zaplecza GWT, który generuje ActionScript zamiast JavaScript, oraz do Androida i pulpitu Java bez konwersji.

samskivert
źródło
2

Moai SDK to środowisko, które można uruchomić * na tych platformach. Jest to oprogramowanie typu open source, więc sprawdź ich repozytorium github .

Moai można również opublikować w Google Chrome i Androidzie.

* Nie sądzę, że publikowanie w systemie Mac lub Windows (tj. W aplikacjach .app lub .exe) jest obecnie dostępne, ale można je dodać.

14992
źródło
1

Haxe + NME obsługuje HTML5, Flash, Android, iOS, Blackberry, Windows, Mac, Linux, WebOS. Obsługuje grafikę 2D (duszki bitmapowe, rysowanie wektorowe oraz efekty takie jak cień i rozmycie).

amitp
źródło
0

Ostatnio dużo słyszałem o MonoTouch dla osób zajmujących się programowaniem iPhone'a i iPoda touch. Framework jest na wierzchu Mono, który jest już kompatybilny z wieloma platformami.

mikeschuld
źródło
Szkoda, że ​​narusza to umowę sklepu iTunes, ponieważ piszesz w czymś innym niż C / C ++ / ObjC i używasz warstwy tłumaczącej. Możesz zostać jeszcze zatwierdzony, ale mogą cię pociągnąć w przyszłości. Osobiście nie zaryzykowałbym tego.
davr
@davr monotouch nie narusza warunków umowy sprzed ponad 1 roku.
dodgy_coder
@dodgy_coder Tak, pamiętam, kiedy Apple w końcu wyjął te opóźnione zasady (które, jak sądzę, miały na celu wyłącznie skrzywdzenie Adobe). Mój oryginalny komentarz był jednak prawdziwy w momencie, gdy go opublikowałem :)
davr
-1

Unity3d to najlepsze narzędzia i silnik do tworzenia gier 2D. alternatywnie monogame. HTML5 i flash nie są odpowiednie dla tego tematu. już flash jest martwy.

zihnibabuz
źródło