Jestem tylko początkującym w grach 3D, moją preferowaną platformą jest Android. Na innym forum zamieściłem pytanie dotyczące „Czego używać: OpenGL lub Unity3d?” Wszyscy podkreślali Unity3D i korzystanie z jego wbudowanych funkcji i narzędzi, które musiałbym sam kodować, gdybym używał OpenGL. Ale potem ktoś mówi, że większość złożonych gier wymaga niestandardowych silników. Dlaczego miałbym używać silnika takiego jak Unity3D w porównaniu z OpenGL?
25
Odpowiedzi:
Myślę, że sam już odpowiedziałeś na to pytanie. Powiedziałeś „Jestem dopiero początkującym w grach 3D” . Dalej powiedziałeś „... Unity3D i używając jego wbudowanych funkcji i narzędzi, które musiałbym sam kodować, gdybym używał OpenGL” .
Zasadniczo oznacza to, że jeśli używasz samego OpenGL, będziesz pisać silnik gry, a następnie, potencjalnie lata później, pisać grę. Jeśli chcesz skupić się na grze, wykorzystaj dostępne zasoby, aby zbliżyć się do tego celu, jak to możliwe. Używanie silnika gry to najlepszy sposób, aby skoncentrować swoje wysiłki na tworzeniu gry, zamiast pisać wszystkie rzeczy potrzebne do jej stworzenia.
Zobacz to pokrewne pytanie: Jaka jest różnica między biblioteką a silnikiem a tym Czym jest środowisko gry a silnik gry?
źródło
Ponieważ początkujący z definicji nie wiedzą, co robią .
OpenGL ma ogromną krzywą uczenia się. Jasne, możesz wydać kilka poleceń glBegin, podekscytować się umieszczeniem trójkątów na ekranie, a następnie zejść z głębi końca z czymś bardziej złożonym, do czego jeszcze nie jesteś gotowy gotowy. To nie jest świetny sposób na naukę. Analogią (nieco przesadzoną) może być nauka podstawowej fizyki w szkole średniej, a następnie kierowanie Wielkim Zderzaczem Hadronów. To nie jest tonięcie lub pływanie, to pływanie lub pozostawianie dużej radioaktywnej dziury w ziemi.
Zakłada się, że większość ludzi pyta: „Chcę stworzyć grę, czego powinienem użyć?” pytanie faktycznie chce stworzyć grę (w przeciwnym razie z pewnością zadaliby inne pytanie). Więc odpowiedź jest dopasowana do pytania, a użycie istniejącego zestawu narzędzi, frameworku lub silnika jest jednym ze sposobów na osiągnięcie tych ambicji bez rozpraszania się przez agonizację nad tym, czy wywołania UBO lub glUniform są lepsze do aktualizacji pojedynczej matrycy.
Chodzi o to, aby zrobić krok po kroku, ułatwić proces uczenia się i na koniec dać coś satysfakcjonującego. Próba nauczenia się, jak stworzyć grę i jak prawidłowo korzystać z dojrzałego i potężnego API 3D w tym samym czasie, jest prawdopodobnie zbyt duża dla początkującego. To jest jak efekt Dunninga-Krugera minus negatywne konotacje. Nie wiesz, czego nie wiesz, więc tak naprawdę nie masz realistycznego obrazu dokładnie tego, co brałbyś na siebie.
Z drugiej strony, jeśli Twoim celem jest nauka OpenGL, to tak naprawdę nie chcesz tworzyć gry! Chcesz nauczyć się OpenGL, a robienie tego w kontekście tworzenia gry może być fajnym sposobem nauki, ale tworzenie gry jest środkiem do celu, a nie celem samym w sobie (a na pewno nie jedynym sposobem uczenia się OpenGL ). Prawdopodobnie nigdy go nie wypuścisz i prawie na pewno spojrzysz na niego za kilka lat i będziesz okropnie zawstydzony niektórymi głupimi rzeczami, które zrobiłeś.
źródło
To naprawdę zależy od tego, co chcesz uzyskać z tego projektu. Jeśli Twoim głównym celem jest skupienie się na projektowaniu gier, prawdopodobnie lepiej będzie, jeśli będziesz mieć wbudowany silnik, ponieważ dzięki temu szybciej dostaniesz się do gry. Jeśli Twoim celem jest poznanie części programowania tworzenia gier (zwłaszcza jeśli próbujesz przygotować się do pracy w branży), prawdopodobnie przekonasz się, że praca z OpenGL będzie bardziej wartościowa. Należy pamiętać, że żadne z powyższych stwierdzeń nie jest prawdziwe w 100% przypadków.
Tak naprawdę nie ma żadnej reguły przy podejmowaniu takich decyzji. Większość odpowiedzi, które słyszysz w tego rodzaju pytaniach, to opinie, a bardzo niewiele z nich będzie całkowicie związanych z twoim projektem i zestawem umiejętności.
źródło
Różnica jest prosta. Unity to powóz z czterema okrągłymi kołami, który może zabrać cię do miejsc. OpenGL to trociny, które można założyć w sklepie i potencjalnie wykorzystać do uformowania ulepszonego i bardziej nowoczesnego wózka i kół. To znaczy, jeśli poświęcisz wiele godzin swojego czasu na naukę tego, co ludzie wcześniej zrobili.
Twoim celem jako początkującym powinno być zbadanie istniejących wagonów i ich konstrukcji. Nie ma sensu wyrzucać wszystkiego przez okno i zaczynać od zera. Najpierw dowiedz się, co już istnieje i uzyskaj dogłębną wiedzę na ten temat. Jeśli nie, to skąd wiesz o ograniczeniach, a jeśli nie znasz ograniczeń, jak możesz je przełamać? Jaki jest sens robienia czegoś miernego, co byłoby bezużyteczne i ignorowanie wszystkich żywych narzędzi, które są już dostępne?
imho kroki raczkującego twórcy gry to:
Samodzielna praca nad stworzeniem czegoś, co już zostało zrobione, nie sprawi, że staniesz się cennym programistą dla nikogo, ponieważ nie będziesz produktywny w prawdzie ani dobrym uczniem w tym zakresie, po prostu skopiujesz istniejące fragmenty kodu i być może nauczysz się przeczytaj je i zrozum. Jak mówi stare Pokemon: „To nie jest bardzo skuteczne ...”.
Najgorsze jest to, że tego rodzaju podejście nie jest łatwe do nadążenia, ponieważ nie ma w nim satysfakcji, więc działasz na surowej sile woli, która została naukowo udowodniona, że jest ograniczonym zasobem dla ludzi. Musisz zrobić coś, co zapewni codzienną satysfakcję, w przeciwnym razie prawdopodobnie nie będziesz w stanie jej utrzymać.
Podsumowując, silnik jest podkreślany, ponieważ można to zrobić za pomocą silnika i znacznie bardziej prawdopodobne jest odniesienie sukcesu w ten sposób. Nawet wspaniali twórcy gier polegali na wcześniejszych pracach innej osoby i taka jest natura postępu. Musisz zrozumieć duży obraz i wiedzieć, jak grać klockami Lego dostarczonymi przez innych, zanim stworzysz własne klocki Lego.
źródło
Zakładając, że Twoim celem jest stworzenie gry, facet, który mówił o wymaganych silnikach niestandardowych był w błędzie. W każdym razie złożone gry wymagają dojrzałego silnika, który został zaprojektowany, wdrożony, zoptymalizowany, przetestowany i obsługiwany przez profesjonalistów działających w branży od dawna - lub takich, które mogą odpowiadać ich jakości (przynajmniej na potrzeby danej gry) , jeśli to możliwe.
Duzi twórcy gier budują własne silniki, ale nadal intensywnie wykorzystują je do swoich przyszłych gier. Należy jednak pamiętać, że ich budżety i rozmiary zespołów oraz wiele innych czynników są znacznie różne niż niezależnych programistów - budowanie własnego silnika może mieć znacznie większy sens biznesowy, nawet jeśli istniejące nie zawiodą pod względem technologicznym.
Oczywiście nadal istnieje błędne przekonanie, ponieważ wiele funkcji nie istnieje od razu po wyjęciu z pudełka w istniejących silnikach, że nie można ich w ogóle zaimplementować w tym silniku, ale zwykle jest to niedokładne.
Pamiętaj, że niektóre z najbardziej innowacyjnych nowoczesnych gier, takie jak Portal i Antichamber, zostały zbudowane przy użyciu istniejących silników. Niektóre dość złożone gry online, takie jak Aion i TERA, zostały zbudowane przy użyciu istniejących silników. Niektóre z najpiękniejszych wizualnie gier, takie jak Bioshock Infinite i Thief, zostały zbudowane przy użyciu istniejących silników. I oczywiście niektórzy nie. Ale chodzi o to, że nic, co kiedykolwiek widziałem, nie wymagało niestandardowego silnika.
Z drugiej strony, jeśli twoim celem jest poznanie koncepcji programowania grafiki, oczywiście OpenGL jest właściwą drogą. Ale nawet wtedy pamiętaj, że znajomość kilku istniejących silników pomoże Ci ogromnie zrozumieć, co robisz i do czego powinieneś dążyć.
źródło
citation needed
sekund