Jakie są zalety i wady korzystania z silnika gry? [Zamknięte]


28

Skąd mam wiedzieć, czy użyć silnika gry? Chcę stworzyć stosunkowo złożoną grę 2D dla Androida. Jakie czynniki należy rozważyć, aby znaleźć, zainstalować, nauczyć się silnika gry lub po prostu zrobić wszystko ręcznie?


Nie jestem pewien, czy projektowanie gier jest najlepszym tagiem, tutaj; ale silnik został umieszczony na czarnej liście. To pytanie powinno prawdopodobnie zostać po prostu usunięte.
Gnemlock,

Odpowiedzi:


25

Zalety:

  • Większość, jeśli nie całe kodowanie jest zrobione dla ciebie, więc musisz się martwić o zawartość, układ poziomów itp.

  • Wzdłuż tych linii, zarządzanie pamięcią, ładowanie zasobów, oświetlenie (w złożonych silnikach) itp. Zostały zaprojektowane i dokładnie przetestowane (miejmy nadzieję).

  • Jak wspomniano poniżej, jeśli silnik jest wieloplatformowy, przeniesienie gry nie będzie wymagało wiele pracy.

Niedogodności:

  • Jeśli coś modyfikujesz, musisz teraz zapoznać się z nową bazą kodu.
  • Jeśli w silniku jest błąd, chyba że jest to oprogramowanie typu open source, nie można go naprawić.
  • Silnik nie został zaprojektowany specjalnie dla Twojej gry, więc może być mniej wydajny niż kod napisany specjalnie dla Twojej gry.
  • Silniki gier na ogół nie są darmowe.
  • Jeśli gra jest mała, narzut związany z użyciem silnika może nie być wart czasu poświęconego na samodzielne napisanie kodu.
  • Jeśli silnik gry zawiera także edytory lub narzędzia, musisz je również zbudować i przetestować, zanim przekażesz je artystom lub sam na nich polegasz.

Nie pozwól, aby lista wad była dłuższa: gdy czas poświęcony na kodowanie i testowanie wszystkich potrzebnych systemów jest zbyt długi dla twojego cyklu produkcyjnego lub jeśli masz więcej umiejętności w sztuce niż w kodzie, użycie silnika gry jest zdecydowanie dobry pomysł.

Porównanie silników gier znajduje się w pracach nad tym pytaniem: Pro i Con's of Different 3D Game Engines


3
To jest całkiem dobra odpowiedź, ale zmarszczyłam czoło od pierwszego zdania. Zdecydowanie sugerowałbym przeformułowanie „Większość, jeśli nie całe kodowanie jest zrobione dla ciebie” na „Większość kodowania niskiego poziomu jest zrobiona dla ciebie”; mylące jest do tego stopnia, że ​​nieodpowiedzialne jest utrwalanie mitu „stwórz grę bez kodowania!”
jhocking

Ponadto silnik może ograniczać to, co możesz zrobić z łatwością - na przykład prawie wielu nie obsługuje terenu modyfikowalnego w stylu Minecraft lub Fortecy Krasnoludów. Co jest dobre w przypadku gier, które go nie potrzebują, ale powodzenia w tworzeniu klonu Minecraft z jednym.
user253751

15

W moim przypadku spędziłem dużo czasu (miesięcy), błąkając się, nie robiąc nic z powodu silników gier. Teraz zazwyczaj unikam ich jak zarazy, choć rozumiem, że należy ich używać mądrze i z umiarem.

Dla mnie miałbym obsesję na punkcie wszystkich możliwości ! Patrząc na długą listę funkcji silnika X, wygląda to tak: „Wow, mógłbym to wszystko zrobić! Moja gra mogłaby być świetna!” Pobrałbym go, uruchomiłem wersje demo i byłem oszołomiony tymi funkcjami w akcji itp. Potem stworzyłem nowy projekt w moim IDE i nie wiedziałbym od czego zacząć. Napisałbym trochę kodu, mógłbym się uczyć i opierać go na projektach demonstracyjnych, ale były to tylko wersje demonstracyjne.

Nie wiedziałem, jak zacząć od zera i coś zrobić. Nie znałem pierwszego kroku. Podobał mi się pomysł silnika, wywarł na mnie wrażenie i zmotywował mnie do zrobienia czegoś, ale moja wiedza na temat faktycznego rozwoju była tak ograniczona, że ​​nawet po tym, jak umiałem dodać silnik do ścieżki kompilacji i napisać kilka linijek, aby rozpocząć silnik, a następnie wyłącz go ponownie, poza tym nigdy nie zrobiłem nic wartościowego.

Jestem kimś w rodzaju niemowlęcia. Wolę tworzyć własną grę krok po kroku, refaktoryzując przydatne funkcje i gromadząc te funkcje w bibliotece, którą pewnego dnia mogę uznać za „silnik”. Więc na razie unikam szumu silnika i po prostu trzymam się rzeczy niskiego poziomu.

A silniki mają swoje miejsce. Jeśli znajdziesz silnik i pomyślisz sobie: „To jest dokładnie to, co bym napisał! Oni już wykonali pracę dla mnie, nie muszę wymyślać koła od nowa i wiem dokładnie, jak podłączyć go do gry że już zacząłem [lub przynajmniej w pełni zaplanowałem i jestem gotowy na start] ”, to chyba dobrze pasuje. Będziesz dokładnie wiedział, jak go używać i jak napisać własny kod, aby użyć silnika do stworzenia czegoś użytecznego. Ale jeśli dostaniesz silnik tylko dlatego, że ma wszystko oprócz zlewu kuchennego i myślisz, że stoisz na ramionach gigantów, bardzo się mylisz. Masz przed sobą giganta i musisz wspiąć się na jego ramiona.

Tak więc dla mnie ogromna wada: nie daj się wciągnąć we wszystko, co możesz zrobić. Niezależnie od wybranego silnika, będzie on miał ogromny potencjał. Ale jeśli nie wiesz, jak właściwie wykorzystać potencjał, jeśli nie ułatwi ci to życia lub nie pomoże ci w wykonaniu pracy, to dlaczego go wykorzystujesz?


4

Największą wadą silnika gry jest to, że musisz się go nauczyć. Jeśli jesteś początkującym programistą, może to być jeszcze szybsze niż nauka pisania kodu, aby zrobić wszystko, co silnik obsługuje dla Ciebie od razu po wyjęciu z pudełka, ale jeśli masz doświadczenie, nie kosztuje to czasu, aby usiąść i zacznij kodować, ale sporo czasu z góry, aby nauczyć się omijać nieznany silnik.

Największą rzeczą, której należy szukać, jest wsparcie, ponieważ silniki gier nie są idealne i nie czytają w twoich myślach, a w pewnym momencie utkniesz w czymś. Więc:

  • Czy jest dokumentacja?
  • Czy dokumentacja jest naprawdę dobra?
  • Czy istnieje wsparcie techniczne (zazwyczaj nie, chyba że za nie płacisz)? Jaki jest czas realizacji?
  • Czy istnieją fora społeczności, na których można zamieszczać pytania i uzyskiwać prawdziwe odpowiedzi?
  • Czy są tutoriale, które pokazują, jak zacząć korzystać z silnika? Czy dołączony jest przykładowy kod źródłowy? W jakim stopniu przydają się one w przyspieszaniu?

2
+1 za umieszczenie dokumentacji na pierwszym
planie

3

Jako ktoś, kto ma duże doświadczenie w tworzeniu oprogramowania i który naprawdę dopiero ostatnio próbował stworzyć grę od zera, oto moje 2 centy.

Dotychczasowe odpowiedzi dostarczyły długą listę zalet i wad. Podam to, co jest dla mnie najważniejszym powodem, aby NIE używać silnika gry. Kiedy podjąłem się nauki pisania gry wyłącznie na wyzwanie i nagrodę, postanowiłem to zrobić od zera bez silnika, tylko OpenGL i SDL, ponieważ chciałem się uczyćwszystko powyżej tego poziomu abstrakcji. Na żadnym etapie nie żałowałem tej decyzji. Moja gra jest ładną przewijaną wersją planetoid 2D, podstawową, ale płynną. Nie próbuję konkurować ze znacznie lepszymi grami, ale dystrybuuję swoją grę i ludzie czerpią z niej przyjemność. Podejdę do tego samego podejścia, czyniąc grę wieloosobową. To ogromne wyzwanie i korzystanie z bibliotek może to ułatwić, ale moim celem nie jest ułatwienie. Moim celem jest nauka, a dla mnie jest to praca w niepełnym wymiarze godzin, więc nie mam dużo czasu, a postęp jest powolny. Ale mam swoje powody takiego podejścia. Nazwij to „wyższym uczeniem się”.

Odpowiedz więc na własne pytanie: czy chcesz nauczyć się robić rzeczy, które silnik gry robi dla Ciebie, aby zyskać na tym nauce? Jeśli tak, nie używaj silnika gry.


2

Musisz uszczegółowić, co rozumiesz przez „kompleks”. Dobry silnik gry zajmuje się wszystkimi następującymi kwestiami:

  • Renderowanie na stabilnym framerate
  • Obsługa danych wejściowych
  • Interfejs użytkownika
  • Dźwięki / muzyka
  • Zarządzanie zasobami (obrazy, dźwięk, pliki danych)
  • Zapisywanie / ładowanie gry
  • Fizyka (2d lub 3d)

Pomyśl o tym, czy wiem, jak kodować każdy z nich? Ile czasu zajmie mi zaprogramowanie każdego i ile czasu zajmie mi nauczenie się, jak zrobić silnik dla każdego z nich?


1

Największa zaleta: wiele rzeczy jest dla Ciebie zrobionych. Nie musisz ciągle wymyślać koła na nowo.

Kolejna zaleta: silnik gry może być także wieloplatformowy (Unity).

Niedogodności? Kontrola? Silnik zajmuje się niektórymi rzeczami (takimi jak renderowanie), więc jeśli występują błędy lub problemy z wydajnością, nie możesz tego po prostu naprawić samodzielnie.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.