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?
game-design
cstack
źródło
źródło
Odpowiedzi:
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:
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
źródło
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?
źródło
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:
źródło
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.
źródło
Musisz uszczegółowić, co rozumiesz przez „kompleks”. Dobry silnik gry zajmuje się wszystkimi następującymi kwestiami:
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?
źródło
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.
źródło