Przeskocz nawigację

Jaki jest idealny programista wg Producenta?

Ktoś zadał mi takie pytanie, więc postaram się z mojej perspektywy to naświetlić. Pamiętać trzeba, że moja perspektywa nie oznacza ‚tej dobrej perspektywy’, która jest mile-widziana we wszystkich firmach.

Generalnie pierw trzeba sobie odpowiedzieć na parę pytań:

– Czym zajmować się może programista w branży gier?
– Jakie obowiązki w codziennej pracy ma programista?
– Z Kim współpracuje?

Na dzień dzisiejszy specjalizacji w których programista może się wyszkolić jest masa: programista fizyki, programista AI, programista Menu, programista 2d, programista 3d, programista efektów specjalnych, programista gameplayu, programista audio, programista portowania, techniczny programista, główny programista, programista PHP…oj nie będę nawet tego wymieniał – generalnie każdy programista jest inny. Producent będzie uwielbiał tych, którzy pasują do projektu, który prowadzi.

Przykład: Gra Point&Click 2d na różne platformy na nie znanym developerowi silniku.

Na pewno będzie potrzeba głównego programisty w takim projekcie, który zaznajomi się z silnikiem. Musi znakomicie znać angielski. Będzie musiał zorganizować pracę innych programistów, więc musi mieć ogromne doświadczenie tak by jego Code Review i organizacja pracy pomagała a nie przeszkadzała. Na pewno ktoś będzie musiał stworzyć podwaliny wyświetlania grafik – więc programistę 2d potrzeba, nie musi znać angielskiego, nie musi mieć dużego doświadczenia. W takim projekcie trzeba pewnie będzie zaprojektować konkretny system skryptowy, poprzez który gameplay będzie obsługiwany na wszystkich platformach więc wszyscy programiści powinni mieć doświadczenie z portowaniem i wiedzieli z czym to się je. Do takiego projektu na pewno potrzebny będzie gemeplay programmer, z dobrym angielskim i doświadczeniu w takich projektach na różne platformy. Dodatkowo można wrzucić osobę zajmującą się tylko skryptami, od której dużo wymagać się nie będzie.

Jak widać nie potrzebny jest ‚dream team’.
Idealny programista dla mnie to taki, który sprawdza się na swojej pozycji, ważne by miał pewne cechy:

– Musi być rozmowny. Nie może się bać podejść i powiedzieć: „To chyba będzie głupi pomysł”, „Nie dam rady tego zrobić”, „Nie zrobię tego w takim czasie”. Dla mnie ważny jest feedback od programisty, tak bym mógł dokładnie i bez crunch-time’u zaplanować jego pracę.
– Powinien znać angielski na poziomie w którym jest w stanie rozmawiać z Kimś po angielsku. Musi umieć wytłumaczyć dlaczego coś jest trudne do zaimplementowania i dlaczego tyle czasu na to potrzeba
– Nie powinien być zamknięty w sobie, często powinien latać, pytać. Uwielbiam gdy programiści współpracują między sobą/producentem/designerem/klientem. Nie może być sytuacji gdzie stawiam 5 programistów w jednym pokoju, a oni po prostu ze sobą nie rozmawiają.
– Idealny programista na pewno potrafić będzie dokładnie zaplanować swoje zadania. W każdym projekcie prędzej czy później mogą pojawić się pytania: „Ile czasu Ci to zajmie”, „Rozpisz mi zadania jakie widzisz dla programisty w tym projekcie”. Raczej nie planuje wszystkiego sam, tylko zbieram jak najwięcej informacji od osób które bezpośrednio mają pracować przy projekcie. To w sumie kwestia doświadczenia. Nie lubię jak programista mówi mi, że coś mu zajmie 2 dni, a siedzi nad tym 2 tygodnie. Programista powinien wiedzieć z czym jakie zadanie jest związane.
– Powinien być znakomity w swojej dziedzinie i nie być ograniczony. Przykład: programista fizyki jest w stanie ogarnąć AI. Mieszane zadania czasami się zdarzają i fajnie mieć programistę, który jest wszechstronny. Kwestia doświadczenia i samego talentu.
– Nie powinien zmywać testerów z kwitkiem. Nie lubię jak programista mówi testerowi „sorry nie zrobię tego”, wole jak programista wytłumaczy testerowi DOKŁADNIE w czym jest problem i powie mu dlaczego tak a nie inaczej jest to zrobione. Testerzy to nie są debile, można im sporo wytłumaczyć i już nie będą raportować błędów które są z dupy. Programista który pogada z testerem zamiast go spławić jest bliżej idealności dla mnie. To samo tyczy się designerów. Programista, który mówi designerowi „nie zrobię tego” też jest do dupy. W produkcji chodzi o to by wszyscy rozumieli jakie są ograniczenia (tym bardziej designer, który kreuje całą grę) by się ich trzymać. Programista musi takie rzeczy umieć wytłumaczyć
– Idealny programista musi mieć chęć rozwoju, a jego praca musi dawać mu ogromną radość.
– Idealny programista musi umieć wytłumaczyć innym co jak jest zrobione. Przykład: grafik techniczny skalujący grafiki do innej rozdzielczości, musi wiedzieć jak ma to zrobić, czy użyć alphy, jakie odstępy pomiędzy animacjami, co z koordynatami, jaki format.
– Na pewno musi komentować swój kod, nie musi nikt mu o tym przypominać
– Potrafi pracować pod presją. Presja = wydawca właśnie robi review bety, prosi o pare poprawek i mowi, ze w ciagu 30 minut musi zamknąć review. Programista ma 25 minut na tweaki tak by mieć approve Bety dzień wcześniej. Zdarzają się takie sytuacje, które uzależnione są od różnych rzeczy – choroba CEO, bądź producenta od strony wydawcy. Programista który szybko połapie się w kodzie i będzie w stanie poprzestawiać parametry pod wpływem presji = idealny.
– Programista nie powinien narzekać, tylko profesjonalnie podchodzić do swojej pracy, a narzekać tylko wtedy gdy producent spyta się go „co Ci się nie podoba”
– Programista powinien być kreatywny nie tylko w kodzie ale i w designie. Zdarza się ze programista coś implementuje – i nawet nie zajrzy co zrobił. Programista który gra w to co zaimplementował i poprawia swoje błędy (widzi je), jest idealny. Programiści którzy potrafią stwierdzić czy coś jest fun czy nie – są idealni. Zanim tester dostanie gre do reki większość błędów jest już wyłapana przez programistę
– Lubie jak programista potrafi się postawić. Jak daje mu termin 2 tygodnie, on potrafi powiedzieć sorry ale zrobię to w 3 – nie będę siedział po godzinach. Dzięki temu wiem, ze mogę na niego liczyć przez te 3 tygodnie.
– Generalnie powinien być komunikatywny (może się powtarzam)
– Powinien być miły i z pasją podchodzić do każdego swojego zadania 🙂
– Idealny programista zna się troszkę na tworzeniu grafiki 2d/3d – zna zasady, nie wymaga nie wiadomo czego od grafika
– Idealny programista zna wszelkiego rodzaju podstawowe technologiczne aspekty wielu rzeczy (:D) przykład: nitro, XNA, fizyka, xcode, iphone, mobile, psp, pc, ps3, psn, gc, etc etc spytany na przykład o to jaką rozdzielczość ma PSP od razu to wie.
– Idealny programista zna wszystkie podstawowe języki programowania (C, C++, Java, C# – dla mnie) i jest w stanie nauczyć się szybko innego języka na tyle by móc skończyć swoje zadanie.

Jest jeszcze masa pomniejszych rzeczy o których raczej nie chcę pisać bo bym już przeciągał. Generalnie idealni programiści nie istnieją, programistów trzeba odpowiednio dobierać do projektu tak by zachować harmonię 😉 Producent może programiście w tym wszystkim oczywiście pomóc.

Reklamy

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj /  Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj /  Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj /  Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj /  Zmień )

Connecting to %s

%d blogerów lubi to: