Czy umiejętności Jedności będą zbywalne?

16

Obecnie uczę się Unity i przeglądam podręcznik do matematyki w grach komputerowych.

Moim celem jest stworzenie gry wyścigowej dla WebGL (przy użyciu Three.js i być może Physic.js).

Wiem, że program Unity chroni cię przed wieloma wydarzeniami, a wiele pracy przy tworzeniu nawet prostej gry wideo, ale jeśli przejdę przez kilka samouczków Unity, wiele umiejętności, których się uczę, przekładam na inne frameworki / silniki?

Jestem dość biegły w projektowaniu na poziomie z WebGL i jestem dobrym modelarzem 3D. Moje słabości to zdecydowanie AI i fizyka.

Podczas gdy szybko popełniam matematykę i chociaż fizyka jest niezaprzeczalnie interesująca, jest tylko tyle godzin w ciągu dnia i jest mnóstwo silników, aby zająć się tego rodzaju sprawami.

AI bardziej do mnie przemawia i jest o wiele bardziej potrzebna. Sztuczna inteligencja zmienia się drastycznie z gry na grę, jest mocno modyfikowana podczas rozwoju, a fizyka jest o wiele bardziej stała.

Czy oparte na sztucznej inteligencji koncepcje w Unity pozwolą mi przenieść tę wiedzę praktycznie wszędzie? Czy może po prostu będę wiosłował potokiem Unity tymi umiejętnościami?

Starkers
źródło
4
Projektant poziomów z WebGL?
Ben
3
AI jest definiowane przez algorytm i implementowane w kodzie. Wszelkie logiki napisane w skrypcie można łatwo przenieść na inne języki i platformy. Na przykład algorytm wyszukiwania ścieżki A * nie ma w tym nic specyficznego dla Unity.
MLM
1
Jeśli już, skorzystanie z solidnych ram, takich jak Unity, pomoże ci uniknąć pokusy, by odkryć na nowo koło, i skoncentrować się na stworzeniu wyjątkowej i przyjemnej rozgrywki. Oznacza to również, że będziesz mieć bogate doświadczenie społeczności, z którego możesz skorzystać, gdy znajdziesz się w kłopocie. Chociaż szczegóły są bardzo różne, podstawowe pomysły na pracę w silniku można przenieść - wycięcie zębów na jednym z nich pomoże w nauce przyszłych silników. I jak zauważa MLM, każdy kod, który sam napiszesz, będzie można zaimplementować niemal wszędzie.
DMGregory
@WebGL Mam na myśli tworzenie poziomu od zera dla gry na przeglądarkę 3D, bez interfejsu.
Starkers

Odpowiedzi:

27

Mówiąc bardzo szeroko, istnieją dwa rodzaje umiejętności:

  1. „Mogę sprawić, że to będzie błyszczące, klikając ten przycisk”. Jest to wiedza w dziedzinie Jedności; nauczyłeś się korzystać z Unity i prawdopodobnie nie pomoże ci to w nauce interfejsu innego systemu. (Podczas gdy ten inny system może mieć jakiś sposób na rozjaśnienie obiektu, prawdopodobnie będzie miał zupełnie inny system do konfigurowania tego wyglądu - nauka sposobu Unity nie nauczy cię automatycznie sposobu drugiego systemu)
  2. „Jeśli chcę mieć pewność, że gracz zauważy ten obiekt, mogę sprawić, że będzie błyszczący”. To wiedza w dziedzinie gier; nauczyłeś się o tym, jak działają gry i jak gracze wchodzą w interakcje z nimi, niezależnie od tego, w jaki sposób konkretny silnik lub zestaw SDK implementuje różne rzeczy.

Jeśli uczysz się algorytmów lub uczysz się, kiedy i dlaczego należy stosować określone techniki, budujesz umiejętności, które można przenosić, które są odpowiednie dla wszystkich gier. Jeśli dopiero uczysz się, jak manipulować interfejsem silnika, prawdopodobnie budujesz umiejętności, których nie można przenieść.

Trevor Powell
źródło
7

Tak. Algorytmy uczenia się to algorytmy uczenia się. Wdrożenia mogą ulec zmianie, ale nadal zrozumiesz ogólną strategię.

Jednak prawdą jest również to, że będziesz uczyć się na wysokim poziomie abstrakcji. Oznacza to, że przejście do innych silników lub brak silnika może wymagać nauczenia się dokładniejszych szczegółów algorytmu i drobiazgowych szczegółów implementacji.

Ogólnie rzecz biorąc, zawsze jest dobrą strategią uczenia się nowych rzeczy. Nawet jeśli poprawi to ogólne zrozumienie tematu, znacznie łatwiej jest go nauczyć i wdrożyć na innej technologii.

MichaelHouse
źródło
3

To zależy.

Istnieją aspekty, które można przenieść, takie jak umiejętność zaprojektowania spójnej gry, która działa. Ale wynika to z nauki korzystania z dowolnego silnika gry / zestawu SDK.

Ale wszystko zależy od:

- Twój poziom wykorzystania Jeśli pożyczasz skrypty i wiesz tylko w większości rzeczy, które są wizualne, prawdopodobne jest, że jedyną rzeczą, która zostanie przeniesiona, jest znajomość niektórych narzędzi.

-Oprogramowanie, w którym zbudowałeś jakieś tło w porównaniu do nowego oprogramowania Przejście od czegoś takiego jak GameMaker do czegoś takiego jak CryEngine, UDK, Unity naprawdę nie idzie dobrze, chyba że:

-Masz doświadczenie w różnych językach programowania Unity używa Unityscript, który jest ich własną bastardizacją C # i java

Jeśli jesteś nowy, jak ci się wydawało, zacznę od podstawowego z GameMaker. Zapoznaj się z interfejsem „przeciągnij i upuść” oraz bardzo podstawowym programowaniem rozgrywki, a następnie naucz się pisać własne skrypty za pomocą ich języka GameMaker. W międzyczasie rozpocznij naukę języków programowania (java, C, C ++, C #, ... itd.), Których pojęcia będą niezwykle przydatne, gdy zaczniesz uczyć się języka silnika pierwszej strony.

Jeśli AI jest tym, czym naprawdę jesteś zainteresowany, nie możesz wystarczająco stresować jak ważna jest nauka języków programowania i logika, która się za nimi kryje. AI są trudne, naprawdę trudne, a pisanie skryptów jest bardzo trudne. To powiedziawszy, te koncepcje tworzenia dobrych AI powinny być kontynuowane, ale niekoniecznie dokładne metody, ponieważ każdy silnik gry / SDK jest inny.

Wiem, że prawdopodobnie nie chcesz tego słyszeć i w żaden sposób nie próbuję cię zniechęcić. Ale masz przed sobą długą drogę. Patrząc na zewnątrz, studiowanie projektowania gier wydaje się być świetną zabawą, a czasami tak jest, ale jest wiele do zrobienia i jeszcze więcej do zrobienia.

Mam nadzieję, że pomoże ci to poprowadzić cię we właściwym kierunku.

Źródło: Student projektowania / programowania gier wideo z doświadczeniem w Unity, UDK i GameMaker. Przydatne doświadczenie: C, C ++, Java, OOP Data Structures, Autodesk Maya, ProTools, Reaper, Audition, Photoshop, GIMP ... masz pomysł.

Jeśli Twoja wiedza jest bardzo ograniczona, zacznij od czegoś takiego jak GameMaker lub Project Spark. To naprawdę pomoże ci zrozumieć podstawy.

UberPwnd
źródło
Mam nadzieję, że nie spotkałem się jak pompatyczny palant. Zdecydowanie nie miałam tego na myśli. Tak czy inaczej, powodzenia w podróży!
UberPwnd
Nie wskazał tego dokładnie w pytaniu tutaj, ale rzut oka na jego profil wyraźnie pokazuje, że zdecydowanie nie musi zaczynać od GameMakera (np. Gamedev.stackexchange.com/questions/75627/... ) Mam na myśli, nawet jeśli byłby całkowicie zielony w programowaniu, byłbym sceptyczny wobec tych rad, ale nie ma go nawet w szarej strefie.
jhocking
@UberPwnd Wcale nie! Dziękuję bardzo
Starkers