Jakie są typowe codzienne zadania programisty gier podstawowych? [Zamknięte]


64

Chciałbym wiedzieć: jakie są codzienne obowiązki absolwenta programisty w miejscu pracy w branży gier? Czy to głównie kodowanie, analiza, projektowanie czy co?

Dziękuję Ci.

PS Obecnie jestem na drugim roku studiów i pracuję nad specjalizacją w programowaniu gier, w szczególności w rozgrywce, narzędziach lub programowaniu interfejsu użytkownika.

Odpowiedzi:


103

Na podstawie moich doświadczeń (w Stanach Zjednoczonych, zatrudniony ze studiów w ramach projektu, który właśnie wyszedł z prototypowania i składał się z około 50 osób, został następnie anulowany, a następnie przez następne cztery lata robiliśmy dwie kolejne gry) był tam z całkowitą bazą programistów około 200),

  • Prawdopodobnie spędzisz około 50-70% swojego czasu na programowaniu. W tym czasie uwzględniam „zabawne rzeczy”, takie jak zrobienie naprawdę sprytnej funkcji, a także czasy, w których gapisz się na zrzut pamięci przez 8 godzin, próbując dowiedzieć się, co się zawiesiło. Być może 25-50% z tego to rzeczywiste programowanie długich form na klawiaturze i wejście do strefy.
  • Kolejne 15–25% w spotkaniach i zadaniach administracyjnych, takich jak usuwanie błędów, spotkania dotyczące usuwania błędów, planowanie, dokumentacja wysokiego poziomu dla innych programistów i producentów, poczta e-mail, aktualizacje statusu całego projektu / firmy i tak dalej. Zależy to od tego, ile masz autonomii - jeśli nie masz autonomii, będziesz mógł poświęcić więcej czasu na programowanie, ponieważ poświęcisz mniej czasu na ustalanie własnego harmonogramu. Jeśli przejmiesz większą kontrolę nad swoim harmonogramem, możesz zająć się bardziej interesującymi rzeczami, ale musisz poświęcić czas na robienie tego.
  • Kolejne 15–25% pomaga projektantom / artystom, bierze udział w kreatywnych spotkaniach dotyczących gry, aktualizuje dokumenty dotyczące projektowania gier itd.

Wraz ze wzrostem poziomu płac, czas spędzony na programowaniu prawdopodobnie spadnie . Będziesz musiał podjąć więcej decyzji administracyjnych, poprosić o pomoc mniej doświadczonych ludzi w zespole i poświęcić więcej czasu na robienie dokumentacji i przeglądanie kodu / architektury. Na plus, jakość programowania prawdopodobnie wzrośnie; będziesz pracować nad bardziej interesującymi funkcjami (i bardziej frustrującymi błędami).

To, czy czas, który poświęcisz na pomoc projektantom i artystom, idzie w górę, w dół, czy nie zmienia się, zależy od obszaru, w którym chcesz pracować. Jeśli chcesz pracować nad interfejsem użytkownika, narzędziami i rozgrywką, spodziewaj się, że ten czas się wydłuży do 50% w górę, gdy zdobędziesz więcej doświadczenia. Będziesz siedział przy starszych projektantach, aby planować i demonstrować nowe narzędzia i sprawdzać, jak korzystają z istniejących. Niestety, ten czas również wynika z twojego harmonogramu programowania.


Nie do końca tak, jak to pamiętam, ale pomaga, gdy twój partner szkoleniowy faktycznie cię uczy ;-)
coderanger

@coderanger: Nie sądzę, aby którekolwiek z nas otrzymało dużą pomoc od naszego partnera szkoleniowego. ;)

26

Oprócz poruszonych na wysokim poziomie punktów dyskusji, o których wspominał Joe, należy pamiętać o kilku innych sprawach.

  • Zazwyczaj będziesz używać jakiegoś narzędzia do śledzenia błędów lub śledzenia zadań, które Twój potencjalny klient będzie używał do przydzielania ci zadań. Czasami są takie same (tj. FogBugz). Czasami twoja lista błędów będzie przez wydawcę, a twoja lista zadań znajduje się na wewnętrznej wiki. Nie tylko usiądź i zacznij robić cokolwiek , twoje zadania będą skierowane.
  • Czasami zostaniesz poproszony o oszacowanie swoich zadań. Jest to niejawne w przypadku korzystania z systemów takich jak FogBugz. Część twoich obowiązków będzie / powinna / może polegać na rozbiciu funkcji wyższego poziomu na części, których możesz użyć, aby właściwie oszacować, ile czasu zajmie ci sprawdzenie, jak jesteś na drodze do ukończenia kamieni milowych itp.
  • Wiele studiów przeniosło się na metody bardziej zwinne / w stylu scrumm. Aktualizowanie wykresów wypalenia (tj. Mówiąc, że spędziłeś X godzin na zadaniu Y i spodziewasz się, że zostanie wykonane w czasie Z) jest dość powszechne. Codzienne spotkania standup są prawdopodobnie nieco bardziej powszechne. Tak czy inaczej zapewnisz sobie wgląd w to, nad czym pracujesz.
  • Będziesz używać kontroli wersji / źródła. Im większe studio, tym większe prawdopodobieństwo, że użyją Perforce. Powinieneś zdawać sobie sprawę z jego podstaw (sprawdzanie plików, zatwierdzanie plików, umiejętność rozwiązywania lokalnych konfliktów scalania). Możesz także zostać poproszony o zrozumienie rozgałęziania i łączenia gałęzi. Niektóre studia działają tam, gdzie wszyscy programiści otrzymują swój lokalny oddział, a ty możesz zameldować się tyle, ile chcesz i scalić, kiedy Twój oddział. Inne studia (nasze) mają po prostu zasadę „nie łamaj głównej”, więc musisz się zaktualizować, zrobić szybki test, aby upewnić się, że niczego nie złamałeś, a następnie się zameldować. Niektóre studia nie mają ta polityka i ludzie cały czas gówną, a to jest bardzo denerwujące i musisz nauczyć się, jak sobie z tym poradzić.
  • Recenzje kodu są dość powszechne. Czasami dotyczą całego działu kodu. Nasz zespół stosuje podejście kumpla do kodu, w którym w przypadku recenzji dotyczących meldunków jest bardziej indywidualne. Tak czy inaczej, należy spodziewać się, że zostaniesz poproszony o krytyczną analizę kodu innych ludzi.

11

Właśnie ukończyłem 4-miesięczny staż w pracy nad bardzo dużą grą. Projekt był na bardzo późnym etapie, kiedy tam dotarłem, więc większość tego, co zrobiłem, to naprawianie błędów. To i tak prawdopodobnie byłaby przyzwoita część mojego czasu ... wykorzystując moje doświadczenie z kodowaniem do naprawy błędów zamiast mojego braku doświadczenia w tworzeniu gier do projektowania lub rozwijania funkcji.

Wiele z tego, co zrobiłem, było również związane z IT. Opracowanie wewnętrznych narzędzi było bardzo ważne - niektóre z nich bezpośrednio pomagały twórcom gier, inne automatyzowały rzeczy, które były wcześniej wykonywane ręcznie. I oczywiście poprawki błędów dla innych narzędzi, w tym instalatora Microsoft Games for Windows Live.

Testowanie gry było kolejną dość dużą częścią, a także byłem odpowiedzialny za wykonanie niektórych kompilacji, które zostały przekazane testerom. Błędy w świecie gry są dość trudne do wyśledzenia i wymagają dużo pracy, aby znaleźć przyczynę.

Nie specjalizowałem się w grach ani grafice, więc przypuszczalnie każda praca, którą wykonałeś, byłaby bardziej związana z twoją wiedzą niż ta. Ale mam nadzieję, że daje to pomysł.


4

Mój projekt z ostatniego roku dotyczy elementu canvas HTML5. Obecnie pracuję nad stażem przez ostatnie dwa miesiące, w których muszę przenieść istniejącą grę flash na płótno HMTL5.

Z tego, co mogę powiedzieć o moim życiu tutaj, to jest trudne. Zespół wymagań ma bardzo konkretne wymagania. Co ma robić kliknięcie myszą, jak efekty powinny mieć zastosowanie w grze. Niezależnie od tego, jak trudne staje się dla programisty, nawet w przypadku najgłupszego żądania, należy je rozwiązać i po spełnieniu wszystkich wymagań. Rozpocznie się raportowanie błędów. Bóg jest tak denerwujący. To naprawdę zaczyna działać ci na nerwy. Przesunięcie 1 piksela za kliknięcie może uczynić twoje życie piekłem, zaufaj mi! Może to oznaczać nowe ustrukturyzowanie całej przestrzeni pozycjonowania i interakcji, aby dostosować się do ich zachcianek i fantazji.

Ale to także dobra zabawa! :) Radość z pisania tej jednej naprawdę inteligentnej funkcji, interakcja ze społecznością, w jaki sposób można odtworzyć funkcję, którą Flash wykonuje automatycznie. Wszystko. W takich czasach nie żałujesz, że masz tę pracę. Sprawia, że ​​czujesz się jak najlepsza praca na świecie, a moim siostrzeńcom najfajniejsza na świecie.

Więc normalny dzień w mojej pracy przychodziłby do pracy, implementując funkcję. Wyszukiwanie i wyszukiwanie tej jednej funkcji, która umożliwia tę funkcję. Testowanie do diabła z tego kodu. Naprawianie tego kodu. Dyskusje ze społecznością na temat optymalizacji tego kodu. Pisząc to, co uważam za najlepszy program na ziemi: P.

Pod koniec dnia w większości jestem usatysfakcjonowany tym, co osiągnąłem, czasami wciąż napięty, co mogłem zrobić lepiej i co mogłem zrobić inaczej i udoskonalić to. Jestem w fazie początkowej, więc może nie będę w stanie doradzić, jak to będzie wyglądać w przyszłości, ale na razie .. Myślę, że muszę najfajniejszą pracę :)

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.