Jakie są zalety / wady korzystania z silnika 3D w grach 2D? [Zamknięte]

16

Jakie zalety i wady powinien wiedzieć początkujący, decydując się między silnikiem gier 2D (takim jak Slick2D / Flixel / FlashPunk) a silnikiem 3D (jak Unity) do tworzenia gier 2D?

Dopiero zaczynam pracę nad tworzeniem gier niezależnych, choć trochę wcześniej zajmowałem się Game Maker, Flash i XNA. Słyszałem wiele pozytywnych rzeczy na temat Unity, a jego wieloplatformowy charakter sprawia, że ​​jest atrakcyjny, ale jak rozumiem, jest to silnik 3d.

Czy w przypadku gier ściśle 2d istnieją jakieś ważne powody, aby pracować z silnikiem 3D, takim jak Unity? A może po prostu zwiększy niepotrzebną złożoność mojego pierwszego uczenia się?

mrohlf
źródło
Czy pytasz w kontekście czysto 2D gry w coś takiego jak Unity (jak duszki i ruch 2D) lub gry 3D z rozgrywką 2D (jak z zasobami 3D, ale poruszającymi się tylko na jednej płaszczyźnie)?
chaosTechnician
Mam przyjaciół, którzy współpracowali z Unity przy tworzeniu gry 2D o nazwie Coypu Space Rumble . Początkowa część 2D była najwyraźniej dość nużąca, poproszę o więcej wskazówek, dlaczego.
Jonathan Connell,
Zdefiniować „silnik 3D”? Czy mówimy o czymś, co obejmuje rozgrywkę, czy po prostu o renderowaniu 3D?
Nicol Bolas,
@chaosTechnician - Pierwszy: czysto 2D sprites, ruch 2D, w zasadzie żadna prawdziwa oś w ogóle (tylko prosty z-index, aby ustalić kolejność renderowania sprite)
mrohlf

Odpowiedzi:

15

Zależy to od gry, ale w większości przypadków łatwiej będzie stworzyć grę ściśle 2d przy użyciu silnika specjalnie zaprojektowanego dla 2d.

Teraz niektóre zalety i wady (niektóre będą związane konkretnie z Unity, niektóre bardziej ogólne)

Cons

  1. Silniki 3D są zwykle projektowane wokół obiektów gry będących modelami 3D (wielokąty i tekstury). Chociaż na pewno można zrobić płaską płaszczyznę i nałożyć na nią teksturę, aktywnie pracujesz przeciwko silnikowi.

  2. Ponadto wiele silników 3d nie ma możliwości radzenia sobie z arkuszami ikonki (wszystkie ramki animacji na jednej teksturze), ponieważ oczekują, że animacja będzie działać na modelu (chociaż takielunek i inne metody), a nie na teksturę. Znów istnieją sposoby na obejście tego, ale znowu aktywnie pracujesz przeciwko silnikowi, aby to osiągnąć.

  3. Dodano złożoność. Jak wspomniano w odpowiedzi Josha Petrie, 3d jest znacznie bardziej skomplikowany niż 2d, głównie w matematyce i zarządzaniu scenami. Przenoszenie obiektów i obsługa przestrzeni 3D jest trudna, a jeśli jest to jedna z twoich pierwszych gier, będzie o wiele trudniej. Dobra wiadomość: Unity streszcza niektóre z tych problemów, choć będą pewne rzeczy, z którymi nadal będziesz musiał sobie poradzić (a duża część abstrakcji znów jest przeznaczona dla modeli 3D, a nie dit 2D)

  4. Większość bibliotek, w które wyposażono Unity lub które można za to zdobyć, przeznaczona jest do obiektów 3d. Obejmuje to takie rzeczy, jak oświetlenie, wyszukiwanie ścieżek, fizykę itp. W międzyczasie box2d będzie łatwo współpracować z Flash, XNA lub czymś innym (cóż, może).

Plusy

  1. Przyspieszenie 3d. Karty graficzne znacznie lepiej radzą sobie z wieloma obiektami w scenie niż z procesorem, a dzięki Unity możesz bardzo łatwo uzyskać tę korzyść. Pozwala to wyświetlać tysiące duszków na ekranie lub łatwo włączać efekty cząsteczkowe, lub dodawać coś fajnego, jak shadery, aby wspierać fajne efekty, takie jak wypaczanie przestrzeni i czasu. Unity ma wbudowane wiele z tych efektów, co sprawia, że ​​jest to naprawdę łatwe. Zauważ, że wiele silników 2d wykorzystuje za kulisami OpenGL lub DirectX, aw wielu przypadkach może być również przyspieszane sprzętowo.

  2. Wsparcie dla modeli. Pamiętasz to, co wcześniej stanowiło problem? Tak, to też może być korzyść. W zależności od gry korzyścią może być obracanie kulek lub czegoś fajnego, jak np. Obiekt 3D w tle. Możesz też mieć grę wykonaną z 3d, ale po prostu zmuszoną do perspektywy 2d, która może dać ci możliwość obracania geometrii świata bez konieczności wykonywania dodatkowej grafiki.

  3. Nauka 3d. Spójrzmy prawdzie w oczy, wiele gier jest napisanych w 3d, a jeśli nauczysz się korzystać z Unity, będziesz mógł zastosować wiele z tych umiejętności w następnej grze, która może wymagać 3d. Ponadto wielu artystów wychodzących ze szkoły uczy się modelowania 3D, więc „łatwiej” znaleźć artystę 3d niż tradycyjnego twórcę gier 2d (czy wspomniani artyści są dobrzy…)

Wniosek

Jest wiele wad, jest też spora ilość zalet. Wszystko zależeć będzie od rodzaju gry, którą chcesz stworzyć, od ciebie zależy, czy warto. Flash jest nadal bardzo opłacalną opcją, więc nie ma nic złego w korzystaniu z silnika 2d, jeśli to lepiej pasuje do twojej gry.

thedaian
źródło
+1. Bardzo dokładna i odpowiednia odpowiedź. Mam wrażenie, że już wcześniej to rozwiązałeś.
chaosTechnician
Dzięki, właśnie tego szukałem! Myślę, że będę nadal koncentrował się na silnikach 2D, ponieważ większość z tych, które widziałem, zostały zbudowane na OpenGL lub DirectX, a modelowanie 3D jest obecnie nieco poza moimi możliwościami. Chciałbym w pewnym momencie nauczyć się Unity, ale prawdopodobnie lepiej będzie, gdybym zajął się tym po tym, jak mam grę 2D na swoim koncie.
mrohlf
Ponadto silniki 3D pozwalają bardzo łatwo rysować duszki z dowolnym obrotem i alfa; łatwiej niż gdybyś miał czysty silnik 2D. Właśnie dlatego wiele nowoczesnych silników 2D jest naprawdę 3D pod maską; możesz także pisać niestandardowe shadery!
ashes999
7

Jedną dużą wadą jest dodatkowa złożoność - silniki 3D nie zawsze mają taki sam poziom pierwszej klasy obsługi grafiki 2D, jak w przypadku dedykowanych silników 2D. Oznacza to, że albo jest dużo dodatkowej pracy, aby poradzić sobie z komponowaniem i zarządzaniem sceną 2D, i / lub wciąż musisz poradzić sobie ze złożonością matematyki 3D i potoku transformacji. Zwłaszcza jeśli nie jesteś w pełni zaznajomiony z podstawami teorii grafiki 3D, możesz czuć się zagubiony i zdezorientowany, gdy twoje obrazy nie są wyświetlane, a jeśli nie jesteś ostrożny, możesz natknąć się na „rozwiązanie”, które sprawi, że twoje obrazy pojawiają się, ale niekoniecznie są poprawne (i dlatego będą cię gryźć później).

Ale poza ludzkim aspektem, o ile silnik 3D ma narzędzia potrzebne do zbudowania gry 2D, korzystanie z niej nie jest złym pomysłem. Obecnie są znacznie bardziej rozpowszechnione i mają tendencję do rozwijania się bardziej agresywnie, więc to plus. Ponadto prawdopodobnie nadal istnieje garść silników lub struktur 2D zorientowanych, które nie wykorzystują D3D ani OpenGL za kulisami, a zatem mogą nie uzyskiwać korzyści z nowoczesnych GPU.

W tym powiązanym pytaniu można znaleźć wiele dyskusji na temat tego, co może utrudnić 3D (będziesz musiał poradzić sobie z podzbiorem tego, gdybyś używał silnika 3D tylko w grze 2D).

Społeczność
źródło
2

Pro: Producenci kart wideo dokładają większych starań, aby zoptymalizować sterowniki 3D. Nie utkniesz w 2D dla specjalnych efektów lub efektów świetlnych. Nie musisz symulować siebie zbyt mocno. Zmiana punktów widzenia nie wymaga całkowitego przerobienia całej sztuki. Będę argumentować, że skale 3D są lepsze wizualnie.

Wada: rurociągi zasobów prawdopodobnie będą musiały zostać dostosowane do silnika. Niektóre operacje proste w 2D są bardziej złożone w 3D. Biblioteki prawdopodobnie będą miały dodatkową funkcjonalność, której nigdy nie będziesz używać.

Patrick Hughes
źródło
0

Po prostu naucz się Unity, jeśli możesz. Unity działa NAPRAWDĘ dobrze z Blenderem 3D, który jest open source i darmowy. Istnieje mnóstwo dobrych samouczków online na temat modelowania i animacji 2D w Blenderze za pomocą samolotów. Istnieje również mnóstwo modeli, które można pobrać online, zwykle za darmo lub tanio, które można wykorzystać jako punkty wyjścia.

To oczywiście zakłada, że ​​nie jesteś biegły w tworzeniu własnego silnika gry. Moja ulubiona gra 2D to Super Meat Boy, która została zaprojektowana we Flashu, a zakończenie programowania zostało wykonane na zamówienie ... tworząc silnik do gier, który odpowiada konkretnym potrzebom gier. Jest to najlepszy sposób na podejście do takiego projektu, ponieważ daje dużo swobody. Powiedział, że przejście tej trasy wymaga dużo pracy.

Aesadai
źródło
Właściwie teraz, gdy UNITY dodało obsługę 2D, jest to jeszcze bardziej oczywiste: pcworld.com/article/2062740/…
Aesadai
1
Nadal mówię, że Unity jest do bani dla gier 2D. W przypadku gier 2D nie jest to dla mnie profesjonalna jakość, po prostu porównaj z solidnym silnikiem 2D, takim jak Cocos2D-swift. To żaden pomysł.
Jonny