Czego potencjalni pracodawcy szukają w dobrym portfolio?

21

Kumpel z pracy i ja chcemy wkroczyć na scenę niezależną w celu tworzenia gier. Zrobiłem kilka demonstracji technicznych demonstrujących różne pomysły i podejścia do różnych problemów. Teraz czuję, że nadszedł czas, abyśmy zaangażowali się w projekt w celu opracowania portfolio na później.

Bardzo zmagałem się z tym, jak rozpocząć rzeczywisty projekt, a konkretnie stworzyć silnik lub użyć pakietu OTS, albo użyć jednego, a potem stworzyć jeden, albo stworzyć, a następnie użyć jednego ... itd.

Które wygląda lepiej dla potencjalnych pracodawców? Mniejszy portfel gier, który zawiera Twój silnik, czy (prawdopodobnie) większy, który został zbudowany przy użyciu czegoś OTS?

Jestem programistą. Nie jestem artystą. Będę wykonywał większość programowania dla tego projektu. Mój kumpel jest również programistą, ale biegle posługuje się narzędziami graficznymi (w ten sposób staje się artystą).

W pracy oboje jesteśmy programistami .NET (C #). Wiem, wiem: „Więc używaj XNA”, niektórzy będą na mnie krzyczeć. Dema, które ukończyłem do tej pory, były w XNA. Ale mam pewne obawy związane z budowaniem portfolio XNA. Chociaż miło jest wyodrębnić DirectX, martwię się, że nie zbuduję niezbędnej wiedzy, aby łatwo wyjść poza XNA. Przeciwnie do tego argumentu jest prawdopodobnie „możesz łatwiej przejść do DirectX po XNA”, ale skoro przeniosę kariery z rozwoju biznesu do tworzenia gier, czy warto w ogóle skupić się na XNA? Czy potencjalni pracodawcy będą chichotać, kiedy mówię XNA?

Czy powinienem skorzystać z doświadczenia XNA, wiedząc, że zdobyte koncepcje i wnioski przeważnie się przełożą? Lub gdzie spędzić mój najcenniejszy zasób (czas)?

Szukasz porady od weterynarzy z branży.

Justin Self
źródło
Zadaj sobie pytanie, co chcesz pokazać więcej: elastyczność lub dbałość o szczegóły. To twoja odpowiedź. Osobiście wybieram elastyczność.
Chris Burt-Brown

Odpowiedzi:

44

Od prawie czternastu lat jestem programistą w branży gier konsolowych i często brałem udział w podejmowaniu decyzji o zatrudnieniu.

Mówiąc więc, jako jeden z tych potencjalnych pracodawców, oceniając potencjalnego pracownika, szukam w nowym zatrudnieniu trzech rzeczy i szukam ich w tej kolejności.

  1. Czy ta osoba pasuje do mojego zespołu? (sprawy społeczne, higiena itp.)
  2. Czy ta osoba jest szybkim uczniem? (często niepoprawnie sformułowany jako „czy ta osoba jest mądra?”)
  3. Czy ta osoba ma jakieś odpowiednie doświadczenie, które mi pomoże?

Teraz odpowiadając na twoje pytanie. Cały problem „jaki projekt powinienem wykonać” dotyczy zdecydowanie najmniej ważnego z kryteriów, na których mi zależy. Bardziej zależy mi na tym, czy będziesz społecznie pasował do mojego zespołu, i na tym, jak szybko będziesz mógł się uczyć nowych rzeczy, niż na tym, czy użyłeś XNA lub własnego silnika gry w poprzednim projekcie. Ogólnie rzecz biorąc, zakładam, że będę musiał cię wyszkolić w naszym wewnętrznym silniku gry, więc twoje wcześniejsze projekty nie mają dla mnie żadnego znaczenia. Oczywiście, chyba że masz magiczne doświadczenie z konkretnym narzędziem lub technologią, o której potrzebuję kogoś, kto powinien wiedzieć. Ale to niezwykłe; zazwyczaj zakładam, że będę musiał cię przeszkolić, aby korzystać z naszego API.

Wszystko to nie oznacza, że ​​nie chcę, żebyś wykonywał projekty domowe. Absolutnie tak. Ale tak naprawdę nie dbam o to, jakie są te projekty lub jakie technologie wykorzystały, ponieważ prawdopodobnie nie będą one miały związku z tym, co chcę, abyś dla mnie zrobił, ponieważ będziemy używać różnych bibliotek lub interfejsów API.

Ale chcę, żebyś mi opowiedział o swoich projektach. Chcę zobaczyć, jak entuzjazmujesz się, kiedy o nich mówisz, ponieważ to mówi mi o tym, jaką jesteś osobą (patrz punkt 1 powyżej). Chcę usłyszeć o problemach, które napotkałeś oraz o tym, jak je przezwyciężyłeś, rozwijając swój projekt (patrz punkt 2 powyżej). Absolutnie chcę, żebyś ukończył przynajmniej jeden projekt - będąc w stanie przepchnąć się przez ból i faktycznie coś ukończyć, wiele mówi o tym, kim jesteś, i mówi mi, że jesteś kimś, na kim będę mógł polegać na temat tego, kiedy („kiedy”) sytuacja stanie się trudna.

Tak szczerze mówiąc, żadna opcja nie jest „lepsza”; ważne jest, aby coś ukończyć. Każda technologia, której nauczysz się po drodze, będzie wisienką na torcie, ale prawie na pewno nie jest to, co skłoniłoby mnie do zatrudnienia.

(Ale ze wszystkim, co powiedział .. I będzie oczekiwać, aby być biegły w języku C ++. Tak czy owak, to naprawdę trzeba się nauczyć C ++, aby uzyskać zatrudniony w branży gier głównego nurtu. Twoje projekty domu nie musi być koniecznie w C ++, ale spodziewam się, że będziesz w stanie wykazać się płynnością.)

Trevor Powell
źródło
3
To fantastyczna odpowiedź. Dziękuję bardzo za faktyczną zmianę mojego spojrzenia na proces rekrutacji.
ultifinitus
Możliwość korzystania z oprogramowania innych firm jest zawsze dużym plusem, który może jednak znaleźć się pod „szybko się uczy”.
Valmond,
Nie sądzę, że prawdopodobnie spotkasz programistę, który nie wie, jak współpracować z oprogramowaniem innych firm. Wszyscy piszą już na udokumentowanym interfejsie API innej firmy, niezależnie od tego, czy jest to libc, STL, OpenGL, DirectX, Windows API lub cokolwiek innego. Są to te same umiejętności w branży komercyjnej, często używane są mniej znane biblioteki. :)
Trevor Powell
2
Części portfela +1 nie muszą spełniać rygorystycznych standardów. Chodzi o to, aby służyły one prawie jako fragmenty rozmowy podczas wywiadu, aby były interesujące z punktu widzenia programisty.
ChrisC
1
@ShuvoSarker W przypadku dużych firm jest to nadal prawdą. EA nie spodziewa się, że będziesz ekspertem od silnika Frostbite, gdy będą chcieli cię zatrudnić. Ubisoft nie spodziewa się, że znasz Przebiśnieg. Być może uległo to zmianie w przypadku mniejszych firm w ciągu sześciu lat od opublikowania tej odpowiedzi. Unity stało się wystarczająco dużą siłą w przestrzeni małego studia, że ​​bardzo realistycznie jest myśleć, że znajomość Unity z pewnością może pomóc w twoich szansach w sposób, w jaki nie było tak wcześniej, gdy absolutnie wszyscy używali własnych silników.
Trevor Powell,
12

Jedną rzeczą, o której jeszcze nie wspomnieli, jest to, że ważne jest, aby zakończyć swoje projekty.

Posiadanie portfela z wieloma niedokończonymi rzeczami nie jest tak imponujące jak portfolio z jedną gotową, dobrze dopracowaną rzeczą.

Ponadto, jeśli oprzesz swoją pracę na czyimś istniejącym dziele (takim jak silnik open source lub ogólnodostępne zasoby sztuki), pamiętaj, aby wspomnieć w swoim portfolio, która część jest twoja.

Jari Komppa
źródło
1
Nie jestem w 100% pewien, że się zgadzam, mamy wielu ludzi z niedokończonymi rzeczami, jest to bardzo powszechne i nie ma dużej korelacji z jakością ich rzeczy. Wykończenie czegoś pokazuje poświęcenie, a nie możliwości.
Chris Burt-Brown
Przypuszczam, że dla każdego z nich.
Jari Komppa
4

Wydaje mi się, że odpowiedź zależy od tego, jakiego rodzaju programowanie gier chcesz wykonać.

Jeśli Twoim celem jest zostać koderem silnika lub graficznym , skorzystaj z przejścia pod maską i poznania zasad działania silników. Nie oznacza to, że nie możesz używać XNA ani innego gotowego silnika, frameworka itp. Zapoznanie się z wnętrzami silnika wysokiej jakości to świetny sposób na nauczenie się, jak zbudować silnik wysokiej jakości! Jeśli pójdziesz tą ścieżką, niekoniecznie musisz nawet pisać rzeczywiste gry. Portfolio samodzielnych demonstracji graficznych i / lub nietrywialnych rozszerzeń istniejącego silnika (np. Implementacja nowego modułu cieniującego w silniku itp.) Dobrze ci zrobi. Można spojrzeć na mojego portfela demo graficznych tutaj; jest już kilka lat nieaktualny, ale w zasadzie to właśnie dostałem pracę programistyczną w studiu gier.

Z drugiej strony, jeśli wolisz być programistą gry , jedną z osób, które pracują nad mechaniką gry, sterowaniem, wrogą AI itp., To twój czas nie będzie dobrze spędzony na kopaniu w Direct3D. Oczywiście dobrze jest mieć ogólne zrozumienie działania grafiki na wysokim poziomie, ale w kontekście zawodowym prawdopodobnie nie będziesz miał bezpośredniego kontaktu z grafiką niskiego poziomu. W takim przypadku absolutnie polecam użycie gotowego silnika, abyś mógł poświęcić czas na tworzenie rzeczywistych gier.

Podsumowując, jeśli chcesz grać, po prostu użyj istniejącego silnika; jeśli chcesz zrobić silnik / grafikę, zbuduj własne rzeczy i / lub rozbuduj istniejący silnik.

Nathan Reed
źródło
Doceniam twoją odpowiedź. To daje mi lepsze wyczucie kierunku. Widzę siebie bardziej jako programistę silnika. Czy według czasu spędzonego (na podstawie twojego doświadczenia) lepiej jest pominąć abstrakcję i zanurzyć się w D3D?
Justin Self
1
D3D byłoby świetnym miejscem do rozpoczęcia. Później możesz również wypróbować niektóre silniki open source, aby przekonać się, jak inni zrobili strukturę i organizację na dużą skalę. Dobrą praktyką jest także wskakiwanie do dużej i nieznanej bazy kodu i próba zrozumienia tego bez czytania każdej linii kodu.
Nathan Reed,
Ok, twoja odpowiedź w połączeniu z Trevorem naprawdę dała mi to, czego potrzebuję. Szkoda, że ​​nie mogę wybrać dwóch odpowiedzi; więc +1. Dzięki, Nathan. Bardzo to doceniam.
Justin Self
2

kiedy właśnie kończyłem uni, moje portfolio zostało przedstawione w tym artykule. wydaje się dobrym pomysłem, co robić, a czego nie robić, łącząc swoje portfolio

http://leewinder.co.uk/blog/?p=23

Stowelly
źródło
1

Nie rób swojego portfela na podstawie tego, jak postrzegasz „standard”. Powinieneś pracować nad projektami, które Cię interesują . Jeśli lubisz mechanikę gry, zrób kilka gier. Jeśli lubisz tworzyć ciekawe sztucznej inteligencji, może zrób demo dla konfiguracji podobnej do RTS. Jako przykład mam rosnące zainteresowanie programowaniem graficznym i poświęcaniem więcej czasu na naukę koncepcji renderowania i stosowanie ich w moim silniku. (W konsekwencji mój projekt gry został tymczasowo umieszczony na półce).

Kiedy pracujesz głównie nad rzeczami, które lubisz, to naprawdę uwypukla „ciebie” w portfolio. Z drugiej strony posiadanie co najmniej jednej ukończonej gry pokazuje, że możesz przejść przez „nieciekawe” etapy tworzenia gry. Dobrze jest mieć pewien stopień elastyczności, aby włamać się na mniej znane terytorium, ale nie zmuszaj się do niego zbyt intensywnie. Możesz odróżnić dobre portfolio od poziomu entuzjazmu i zainteresowania włożonym w pracę, a projekty oparte na twoich zainteresowaniach będą naturalnie najbardziej polskie. Niezależnie od tego, czym się interesujesz, w końcu będziesz musiał skupić się na tym obszarze programowania pracy.

ChrisC
źródło