Jason. Cała informatyka w jednym miejscu!

Zastanawiasz się co musisz wiedzieć, żeby otrzymać pracę jako programista gier, szczególnie przy obecnym kryzysie na rynku IT? Oto 7 najważniejszych umiejętności, które zidentyfikowałem na podstawie wielu ofert pracy. Jeśli interesuje Cię temat, serdecznie zapraszam i dowiedz się gdzie musisz się podszkolić 😄.

7 NAJWAŻNIEJSZYCH UMIEJĘTNOŚCI PROGRAMISTY GIER (W DZISIEJSZYCH CZASACH)

Przedstawione wnioski pochodzą z analizy wielu ofert pracy m.in. takich serwisów, jak znany Skillshot. Obserwując ich częste występowanie uznaję je za tak istotne, że bez nich Twoje szanse na otrzymanie zatrudnienia są znikome 🤯.

Postaram się pisać zwięźle i na temat dodając od siebie grubszy komentarz pod każdym z punktów.

JĘZYK ANGIELSKI

Chyba nie ma na twarzy zdziwienia. Angielski jest absolutnym fundamentem jaki musisz posiadać w sekcji umiejętności, nie tylko na stanowisku programisty gier.

Teraz pytanie: jaki poziom 🤔? Waha się pomiędzy B1, a C1. Nie spotkałem się jeszcze z obowiązkową znajomością na poziomie "near-native speaker" (C2). Według moich analiz, największy odsetek ofert celuje w poziom B2 i taki najlepiej żebyś posiadał(a), a jeszcze lepiej z potwierdzonym certyfikatem. Wiadomo - im wyżej, tym lepiej dla Ciebie 👍. Są oferty, w których oczekuje się jedynie poziomu B1, aczkolwiek są trochę rzadziej spotykane, stąd najlepiej sobie wyrobić B2 i mieć święty spokój.

Zdarza się, że nie jest jasno zdefiniowane jakiego poziomu oczekują pracodawcy i jest napisane słownie (biegłość w mowie i piśmie, znajomość na poziomie komunikatywnym itp.). Wtedy sugeruję to interpretować jak B1/B2. Często możesz natrafić na sytuację, w której oczekiwany stopień biegłości jest o jedno "oczko" wyższe w sekcji "Mile widziane", niż w wymaganiach obowiązkowych np. oczekują od Ciebie B1 jako minimum, a B2+ jest już "tylko" mile widziane, co daje wyraźnie do zrozumienia, że to może podnieść Twoje szanse 🙂.

Chyba nic już nie trzeba dodawać. Ucz się angielskiego, zrób sobie certyfikat potwierdzający Twoje umiejętności i jeżeli nie masz wygórowanych ambicji, to poziom B2 jest minimalnym "recommended" w mojej ocenie, który z całą pewnością wystarczy.

ZNAJOMOŚĆ JĘZYKA PROGRAMOWANIA

To też rozumie się samo przez się 🙂. Jeśli startujesz na rynek pracy tak zwany "komercyjny", spodziewaj się korzystania z zaawansowanych i rozbudowanych programów, w których jest wsparcie pisania kodu w określonym języku.

Właśnie, język. Jaki? Zależy od stanowiska. Zwróć uwagę na dzisiejsze trenda. Dzisiaj króluje silnik Unity i Unreal Engine, zatem Twoim celem nadrzędnym powinno być nauczenie się podstaw języków C# i C++. Tak się składa, że C# możesz się zacząć uczyć już teraz klikając tutaj 😊. Czasami pojawiają się oferty dotyczące programowania w silniku Godot (w końcu doczekał się po latach, pewnie za sprawą "ucieczki" od Unity po ogłoszeniu nowego systemu płatności 😏) i wtedy pomocna okaże się znajomość języka GDScript (składnią zbliżony do Pythona). Warto poznać też podstawy Lua, który mimo swoich wad jest bardzo popularny w różnych narzędziach do tworzenia gier z uwagi na możliwość "podpięcia" go razem z innym językiem oraz prostą i elegancką składnię, której możesz się nauczyć w 2 dni.

PISANIE SHADER'ÓW

Shader to program wpływający na wygląd pojedynczych pikseli i wierzchołków nadając obrazowi zupełnie nowy wygląd. To może być na przykład efekt rys znany z filmów PRL kiedy pojawiają się w losowych miejscach na ułamek sekundy. Wygląda jak animacja, jednak to jest coś, co można dziś nazwać shaderem.

Podejście do znajomości pisania shader'ów jest inaczej interpretowane, bo każde narzędzie rządzi się swoimi prawami. W jednym może być "podpinanie" węzłów, w innym zaś może być żywe pisanie kodu źródłowego w specjalnym do tego celu języku programowania. Niezależnie od szczegółów, spodziewaj się bardzo często takiego wymagania, bez którego nie da się obejść.

ZNAJOMOŚĆ WZORCÓW PROJEKTOWYCH

Absolutna konieczność! Ten wymóg ma co najmniej 80% ofert jakie widziałem na oczy (a trochę ich widziałem)!!!

Wzorzec projektowy to prostymi słowy szablon czy przepis na taki zapis kodu źródłowego, który rozwiązuje jakiś konkretny problem. Jednym z nich jest "singleton", który odpowiada za to, żeby dana klasa miała dokładnie JEDNĄ instancję (czyli obiekt) i żeby potem w chwili takiego zapotrzebowania, "sięgnąć" do tego unikatowego obiektu, wykonać działania i koniec. Piszę serio - na 7 najważniejszych umiejętności programisty gier tej przypisałbym jeszcze większą wagę, jeśli chodzi o kolejność ich opanowywania.

ZNAJOMOŚĆ SYSTEMU KONTROLI WERSJI

Tego wpisu też spodziewaj się dosyć często. System kontroli wersji ma za zadanie monitorowanie zmian dokonanych w projekcie na całej przestrzeni czasowej pracowania nad nim. Dzięki niemu można tworzyć kopie zapasowe gdyby jakaś nowa funkcjonalność się posypała i była tak duża, że nie da się odtworzyć wersji sprzed modyfikacji, można tworzyć rozgałęzienia od wersji oficjalnej i w ten sposób eksperymentować z różnymi implementacjami i rzecz najważniejsza, umieszczać zmiany w chmurze dzięki czemu nad jednym projektem może w tym samym czasie pracować wiele osób, co jest nieuniknione w dzisiejszej branży gier.

Najczęściej w ofertach pojawia się Git, popularny darmowy system kontroli wersji i jeśli dopiero zaczynasz przygodę z posługiwaniem się nimi, najlepiej zacząć od niego. Jeszcze lepiej jest nauczyć się nim posługiwać do tego stopnia, żebyś mógł/mogła umieszczać własne repozytoria, miejsca do których osadzasz projekt gry, ponieważ to najlepsza droga do pokazania swoich kompetencji programistycznych w postaci portfolio! Umieszczając link do repozytorium w CV wstawionym na GitHub, potwierdzasz posługiwanie się Gitem na dzień dobry. Warto jednak stale nabywać wiedzy na temat innych mniej wykorzystywanych poleceń, ponieważ może paść pytanie na temat Gita 😳.

PORTOWANIE I/LUB OPTYMALIZACJA POD RÓŻNE PLATFORMY

W jednych ofertach będzie widniało portowanie, w innych optymalizowanie. W niektórych pojawi się jedno i drugie. Oba przypadki dotykają tego samego tematu - zdolności do wdrażania produkcji na konsole np. PlayStation 4 / Nintendo Switch (pojawia się prawie zawsze) oraz urządzenia mobilne z systemem Android i iOS (trochę rzadziej). Portowanie to inaczej eksport (wykonanie "build'a"), a optymalizowanie dotyczy parametryzowania ustawień grafiki w taki sposób, żeby zachować płynność przez cały czas działania gry i stracić przy tym jak najmniej detali.

ZNAJOMOŚĆ METODYK ZWINNYCH

Metodyki zwinne (Agile) dotyczą bardzo ważnej dziedziny określonej jako zarządzanie projektami. Chodzi o stosowanie się do dawno opracowanych reguł w celu utrzymania wysokiej efektywności w pracy zespołowej. Jest to bardzo mocno uproszczone wyjaśnienie po co one w ogóle są i proponuję zasięgnąć wiedzy na ten temat zaczynając od tzw. Scruma. SCRUM to ramy postępowania, które składają się tylko z ogólnych zasad ("ram") postępowania podczas pracy nad projektem i można je swobodnie dostosowywać do zespołu, jak i do samego projektu. Nie myl proszę metodyk zwinnych ze Scrumem - Scrum jest częścią metodyk zwinnych, a sam Agile (powszechnie stosowana nazwa metodyk zwinnych) jest o wiele szerszym podzbiorem w skład którego wchodzą inne metodyki np. "extreme programming".

Oferty pracy różnie to definiują - mogą oczekiwać samej znajomości Scruma, znajomości metodyk Agile "ogólnie" lub jakichś innych ściśle określonych np. Kanban. Natomiast rozpoczęcie od Scruma będzie dobrym punktem startowym do zrozumienia czym są metodyki zwinne.

7 najważniejszych umiejętności programisty gier

Żeby w 2023 roku otrzymać pracę na stanowisku programisty gier, trzeba opanować (chociaż przelotnie) wszystkie siedem wspomnianych umiejętności!


Oto 7 najważniejszych umiejętności programisty gier, jakie uważam w tym momencie za fundamentalne, żeby móc zdobyć pracę na tym stanowisku. Bądź jednak świadomy(-a), że wciąż mogą nie zapewniać Tobie sukcesu z powodu kryzysu jaki obecnie występuje w branży IT, nie tylko w branży "game dev" 😥. Ja mimo tego życzę powodzenia i wiary w siebie, że któregoś dnia uda Ci się zdobyć zatrudnienie 🏆!

PODOBNE ARTYKUŁY