W opisach stanowisk często widzę stanowiska zwane „programistą rozgrywki”. Co robią ludzie na tym stanowisku?
W opisach stanowisk często widzę stanowiska zwane „programistą rozgrywki”. Co robią ludzie na tym stanowisku?
Odpowiedzi:
Kiedy firmy mówią o zatrudnieniu programisty do gier , chodzi im o programistę, który będzie odpowiedzialny za kod, który bezpośrednio wpływa na wrażenia z gry. Oznacza to, że programista będzie odpowiedzialny za tworzenie gier, a nie silnika lub większych systemów gier. Ale poza tym wiele się różni:
Niektóre firmy oczekują, że programiści zajmujący się rozgrywką będą wdrażać interfejs użytkownika. Niektórzy nie. Niektóre firmy oczekują od nich wdrożenia kodu AI, inne nie. Niektórzy oczekują od nich implementacji kodu audio, inni nie. Szczerze mówiąc, „rozgrywka” w programatorze rozgrywki jest branżowym skrótem dla „wszystkiego, do czego nie zatrudniliśmy specjalisty”. Dlatego ci programiści muszą być bardzo wszechstronni i muszą być w stanie szybko uczyć się nowych dyscyplin.
Prawie piętnaście lat spędziłem jako programista gier w branży komercyjnej w pięciu różnych firmach.
Z mojego doświadczenia wynika, że w niektórych firmach programistę gier uważa się za pozycję młodszą lub podstawową; programiści, którzy pracują tylko nad pojedynczą grą, wcale nie muszą być tak wyrafinowani, jak ci, którzy pracują na systemach, które muszą obsługiwać wiele różnych gier jednocześnie, tak jak programiści silnika. W tego rodzaju firmie, jeśli programista gier radzi sobie naprawdę dobrze, może kiedyś awansować do zespołu silnika, jeśli może udowodnić swoją wartość. Lub może zostać specjalistą, jeśli wykaże się predyspozycjami do określonego obszaru.
W innych firmach programista rozgrywki jest uważany za pozycję średniego poziomu; programiści pracujący nad pojedynczą grą muszą mieć przydatne doświadczenie i być niezawodni. Niedoświadczeni programiści mogą otrzymać niepożądane zadania, na które mogliby obciąć zęby (rurociągi danych, narzędzia itp.), I ostatecznie mogą przejść do pracy „programisty rozgrywki”. W tego rodzaju systemie programista rozgrywki, który nadal radzi sobie całkiem nieźle, może awansować na stanowisko kierownika projektu lub też na zespół silnikowy.
W jeszcze innych firmach programista rozgrywki jest uważany za wyższą pozycję, a także za pół-projekt; Oczekuje się, że ci programiści będą doskonałymi, sprawdzonymi programistami, ale także będą mieli silną wrażliwość projektową i kwalifikacje, ponieważ bezpośrednio dotykają kodu, który najbardziej wpływa na wrażenia gracza z gry. W tego rodzaju systemie naprawdę dobry programista gier prawdopodobnie pozostanie programistą na zawsze - jest to uważane za najcenniejszą pozycję, którą może on obsadzić.
Zgodnie z ogólną zasadą, im lepsza jest gra firmy, tym wyższą pozycję uważają za programistę rozgrywki (a zatem im trudniej będzie znaleźć taką pracę).
Zawsze uważam, że to pomaga zilustrować przykładem.
Programista rozgrywki otrzyma następujące zadania: zaimplementuj system walki w zwarciu, zaimplementuj mechanikę regeneracji zdrowia lub zaimplementuj kontrolę skoku gracza.
Programista silnika (który nazwałbyś kimś, kto nie był specjalnie programistą rozgrywki) otrzymywałby zadania takie jak: wdrożenie odroczonego oświetlenia, systemu animacji lub warstwy sieci.
Kluczowym rozróżnieniem jest to, kim jest „klient”. Dla programistów rozgrywki jest to zespół projektowy - ich zadaniem jest urzeczywistnienie projektu. Dla programistów silników są to na ogół inni programiści . Programiści silników tworzą technologie i systemy, z których programiści i twórcy treści mogą następnie korzystać w celu realizacji projektu.
Programiści silników piszą kod, który jest w dużej mierze niezależny od gry - ta sama technologia może być często stosowana w wielu grach. Programiści gry zazwyczaj piszą kod, który jest bardzo specyficzny dla tworzonej gry. I zawsze się nakładają - czasami aby zaimplementować rozgrywkę, potrzebujesz nowego kodu silnika.
Kodowanie gry nie jest trudniejsze ani łatwiejsze niż kodowanie silnika. Jest to jednak zdecydowanie nieco inny zestaw umiejętności; często musisz być bardziej kreatywny i umieć rozwiązywać problemy . Twoim celem nie jest stworzenie idealnego systemu wielokrotnego użytku (idealnego dla programistów silników), ale stworzenie najlepszej implementacji gry. To, co może być zaletą w programowaniu silnika (dbałość o szczegóły i dobrze zaprojektowane konstrukcje) może być przeszkodą w programowaniu gry (gdzie ważniejsze jest dostosowanie i czas iteracji). Dobry programista rozgrywki wie, kiedy zrobić to dobrze (kiedy projekt jest solidny, a kod będzie używany w wielu miejscach), a kiedy zrobić to szybko (kiedy projekt jest wciąż opracowywany, a twój kod ma duże szanse odrzucenia po przetestowaniu).
Przede wszystkim programiści gier muszą być w stanie współpracować z zespołem projektowym na poziomie, na którym nie programiści silników. Oprócz oczywistych umiejętności komunikacyjnych, oznacza to, że musisz być zaznajomiony z innymi projektami gier znacznie bardziej niż programiści silników, aby gdy projektant powiedział „spraw, aby działał jak Zelda”, wiesz, o czym mówią.
Aby nauczyć się być programistą silnika, musisz zgłębić technologię i dowiedzieć się, jak ona działa, a może zaimplementować własną wersję; gra byłaby areną pokazującą technologię.
Aby nauczyć się być programistą rozgrywki, weź silnik innej osoby i używaj go na wiele różnych sposobów. Innymi słowy, jeśli chcesz być programistą gier, twórz gry, a nie technologię .
Dokładnie tak to brzmi, programista, który wdraża i utrzymuje mechanikę gry.
http://en.wikipedia.org/wiki/Game_programmer#Gameplay_programmer