• Home
  • /
  • GAMEDEV
  • /
  • Jak zacząć programować gry, czyli 5 rzeczy o początkach w gamedevie
Gamedev, unity i tworzenie gier.

Jak zacząć programować gry, czyli 5 rzeczy o początkach w gamedevie

Po rozmowie z Maciejem Aniserowiczem, dostałam wiele ciekawych pytań o moje początki w gamedevie. Moja przygoda z tworzeniem gier trwa nadal, jednak chcę się podzielić tym co bym podpowiedziała młodszej sobie, gdyby mnie zapytała: jak tworzyć gry? 🙂 Jeśli jesteś zainteresowany jak zacząć programować gry w Unity przeczytaj poniższy post a następnie podziel się swoimi spostrzeżeniami!

Początki

Nie da się ukryć, że jeśli chcesz programować gry, to będziesz najpierw musiał nauczyć się programować.

Programowanie jest podstawą wszystkiego, co potem będziesz mógł w stanie zrobić jako programista gier, więc jeśli miałabym dać radę na sam początek: staraj się być coraz lepszym programistą.

Pamiętam swoje początki, gdy dostęp do informacji był bardziej utrudniony niż dzisiaj. Istniało wtedy forum gamedevowe warsztat.gd, na które lubiłam zaglądać. Nie sprawiało to jednak bym chociaż na krok zbliżyła się do mojego celu: nie umiałam wtedy wyłuskać informacji ważnych, wiele osób pisało o własnych silnikach, tworzeniu gier w przeróżnych językach (od C, po C++ i biblioteki javy). Było to środowisko dla mnie nieco przerażające, bardzo zamknięte w sobie i nastawione na mocnych pasjonatów i osoby, które do tej pory np. tworzyły mody do gier.

Gdybym teraz mogła przekazać sobie z przeszłości wiedzę, na pewno usystematyzowałabym wtedy wiedzę na temat technologii używanych na rynku pracy oraz tego, gdzie mogę złapać początek nici, by dostać się do kłębka, tj. od jakiego punktu zacząć swoją przygodę z tworzeniem gier. Zwróciłabym też większą uwagę na poznanie w większym stopniu języka programowania, by nie nadrabiać tej wiedzy łącznie z nauką technologii.

Ten post kieruję do osób, które już coś zaczęły programować, w jakichkolwiek językach i chcą się dowiedzieć: co dalej?

Zacznijmy więc od obecnie używanych silników gier.

W czym programować gry?

Pierwsze co należy powiedzieć mówiąc o silniku gry to to, że nie jest on równoznaczny z silnikiem graficznym. Mówiąc językiem słownikowym, moglibyśmy określić silnik gier jako środowisko programistyczne składające się z różnych bibliotek oraz narzędzi ułatwiających tworzenie gier komputerowych. Silnik gry to program, który wiele rzeczy ma już w siebie wbudowanych: renderowanie grafiki, wykrywanie kolizji, fizykę, zarządzanie plikami, operowanie i zarządzanie dźwiękami i muzyką, debugowanie i profilowanie gry i wiele innych.

Niektóre studia growe korzystają z silników gier ogólnodostepnych (Unity, Unreal Engine, Frostbite, CryEngine itd.), korzystając z ich licencji, a niektóre studia tworzą własne silniki gier do swoich własnych produkcji, gdyż uważają, że lepiej będą spełniać ich wymagania. Z tego też względu, mimo, iż silnik gry jest zwykle podstawą do budowania swoich światów – różne silniki growe sprawdzają się do różnych zastosowań.

Moimi słowami silnik gry jest potężnym narzędziem, które wyręcza twórców, ułatwia i przyśpiesza proces tworzenia gry.

Jeśli jednak twoją pierwszą myślą byłoby: zbuduję więc swój silnik – wyrzuć ją czym prędzej z głowy. O wiele lepiej najpierw zrozumieć to, jak działają na podstawie najpopularniejszych, obecnie dostępnych na rynku technologii.

Na polskim rynku można zauważyć trzy główne tendencje w wykorzystywanych silnikach gier, jeśli chodzi o poszukiwanych pracowników:

  1. Unity Engine w połączeniu ze znajomością C#
  2. Unreal Engine w połączeniu ze znajomością C++
  3. Silniki gier należące do studiów – wymagania czysto językowe, najczęściej C++

Unity

Moja ścieżka zawodowa obecnie jest związana z silnikiem Unity, dlatego to na nim się skupię. Gdybym obecnie miała wybierać silnik do nauki, prawdopodobnie wybór nie zmieniłby się z kilku przyczyn:

  • jest to silnik z bardzo niskim progiem wejścia pod względem poziomu trudności,
  • ma dobrze opisane tutoriale oraz własną platformę do nauki (unity.learn),
  • duża społeczność pozwala wyszukiwać rozwiązania na mniej lub bardziej oczywiste błędy (forum, answers),
  • korzysta z języka C#, a więc łatwo znaleźć rozwiązania problemów niekoniecznie na stronach powiązanych z Unity, lecz również w dokumentacjach i artykułach samego języka
  • coraz więcej mniejszych studiów gier korzysta z silnika Unity, jest dużo ofert pracy,
  • istnieje możliwość wyspecjalizowania się w odpowiednich gałęziach (to akurat dotyczy całej branży gamedevowej) – technical artist, gameplay programmer, UI programmer, network engineer, etc.,
  • posiada dużą bazę darmowych asetów do nauki (asset store),
  • jest wieloplatformowym środowiskiem, pozwalającym na tworzenie gier mobilnych, konsolowych, AR/VR, etc.
  • i ma całkiem przyjemną dokumentację.

Jeśli bym miała brać pod uwagę moje ambicje i marzenia następnym etapem byłoby nauczyć się programować gry w Unreal Engine’a i C++. Mam wrażenie, że kolejnym krokiem, gdy marzy się o grach AAA jest jednak pójście w technologię opartej na tym języku i pokrewnych technologiach. Nie polecałabym jednak zaczynania od Unreala i C++ dla osoby kompletnie zielonej w temacie programowania gier, bez umiejętności programistycznych.

Mity i strachy

W liceum traktowałam gamedev jako odległe marzenie, które nigdy nie zdoła się ziścić. Oczywiście nie przeszkadzało mi to w zmierzaniu do niego małymi krokami, jednak mało we mnie było wiary w to, że ostatecznie będę robić gry. Na szczęście to się zmieniło i zobaczyłam jak bardzo wpływ na moje postrzeganie tej gałęzi rynku miały pewne mity, które funkcjonowały wokół mnie na temat branży.

Matematyka i fizyka

Ten temat prawdopodobnie jeszcze rozwinę, ale chciałabym ci już teraz napisać, że nie musisz być wcale geniuszem z matematyki, który do owsianki rano oblicza całki oznaczone. Oczywiście, dobrze znać matematykę, umieć wyszukiwać potrzebne informacje w internecie i rozumieć i korzystać ze wzorów w praktycznych zastosowaniach. Jest jednak tak wiele różnych ról dla programisty w gamedevie, że każdy znajdzie coś dla siebie. Lubisz estetykę i tworzenie frontu? Specjalizuj się w programowaniu UI, lubisz pisać narzędzia dla innych, by pomagać im w codziennej pracy: zostań programistą narzędzi. Każdy znajdzie w branży gier obszar, w którym poczuje się dobrze.

Dziewczyny nie tworzą gier

Kolejnym mitem, a może bardziej wyobrażeniem o tej branży, był brak kobiet. Co prawda nawet jak na branżę IT procent kobiet pracujących przy grach jest mały, jednak ten odsetek zwiększy się, jeśli włączymy w to analityczki, marketing, PR, HR oraz product ownerki i scrum masterki. Nie jest nigdzie napisane, że tworzyć i programować gry mogą tylko faceci 😉

Nałogowy i zawodowy gracz

Na początku miałam też takie wrażenie, że muszę być nałogowym graczem. Mało tego, nie tylko nałogowym graczem, ale i znawcą, który kojarzy wszystkie tytuły, o których ktoś wspomni (“A jak ci się podobał system strzelania w nowych Borderlandsach? Nie grałaś? Szkoda, a ta mała indie gierka od studia, którego nazwa mi nic nie mówi?”). No bo przecież chcesz pracować przy grach, więc chyba grasz na co dzień? Otóż obecnie już z nieco mniejszymi kompleksami potrafię powiedzieć, że nie gram nałogowo. Po studiach, gdy włącza się tryb: praca – dom – pranie – sen – praca – dom… nie zawsze jest czas, by poświęcić kilka godzin na nowości, gdy chciałoby się ten czas poświęcić też swojemu partnerowi, swojemu hobby, rozwojowi zawodowemu, etc. Nie znaczy to też, że nie granie w gry jest ok. W końcu to gry są materiałem źrodłowym, referencja i inspiracją. Granie w gry dodaje nam nowym doświadczeń. Grając w Quaka możemy dostrzec jak mozna zrobić mapy, które pozwalają graczom na szybką i emocjonującą rozgrywkę. Jak system strzelania i rodzaj broni ma wpływ na tempo rozgrywki. Grając w Red Dead Redemption lub Wiedźmina możemy dostrzec jak warstwa fabularna i narracyjna poprawia immercję i pozwala graczowi się odnaleźć w otwartym, olbrzymim, wykreowanym świecie.

Nie miej jednak poczucia, że musisz spędzać długie godziny na ogrywanie wszystkich gier, o których usłyszysz, nie miej poczucia, że musisz je przechodzić na 100% i zdobywać w nich platyny. Zacznij patrzeć na gry pod kątem tego, jak zostały stworzone i baw się tym, co ci dostarczają jako rozrywka 🙂 Spróbuj pobawić się dostrzeganymi motywami w swoich grach. Ja np. zobaczyłam jak irytujące mogą być collidery (obiekty, z którymi gracz dosł. koliduje), gdy grając w God of War musiałam przeskakiwać z liny na linę – a elementy zręcznościowe w grach nigdy nie były moją ulubioną formą rozrywki. W Dead Space zobaczyłam, jak w dużym tytule działa level design i gdzie i kiedy zostanie coś aktywowane. Jeśli masz podobne spostrzeżenia, podziel się nimi w komentarzu!

Pierwsze projekty

Rzecz, której mnie zabrakło na początku swojej przygody z programowaniem (oprócz samodyscypliny, punktu zaczepienia i mentora) były własnoręcznie robione projekty.

Jeśli ściągnąłeś silnik gry z dostępnymi tutorialami – świetnie! Przerób jeden czy dwa kursy lub darmowe tutoriale na stronie unity, stwórz pierwszą działającą gierkę. Nie wymagaj od siebie doskonałej gry. Nawet jeśli assety, czyli materiały użyte w grze (grafiki, dźwięki) są darmowe, a estetyka leży, bo każdy przedmiot ma teksturę w innym stylu – trudno! Grunt to wychwycić podstawowe umiejętności poruszania się w silniku gry, to jak się tworzy kod oraz poczuć satysfakcję z własnoręcznie stworzonej gierki!

Praca przy własnym projekcie nauczy cię radzić sobie z błędami, wyszukiwać rozwiązań na nie w internecie, sprawdzać jak przekształcić pomysł na mechanikę i rozgrywkę – i przede wszystkim – nauczy programować gry! Przy okazji nauczysz się korzystać z dokumentacji silnika i dokumentacji sprzętu docelowego.

Staż, praktyki, praca

Najbardziej popularnym obecnie portalem agregującym oferty pracy z branży gamedevowej w Polsce jest skillshot.pl. Znajdziesz tam oferty z całego kraju z podziałem na konkretne pozycje: audio, programowanie, testowanie, grafika, etc. I tu dochodzimy do momentu, gdy wiele osób na starcie uważa, że świetną drogą do zostania programistą gier jest na początku… zostanie testerem.

jak programować gry - portal skillshot.pl
Skillshot.pl – Agregat ofert pracy w polskim gamedevie.

Oczywiście, jest w tym jakaś logika. Zaczynamy w firmie, gdzie mogą nas poznać i zobaczyć naszą chęć do dalszego rozwoju. Ponadto mamy pierwsze kontakty z grą i bezpośredni kontakt z programistami. Jednak praca testera jest bardzo odpowiedzialną działką, w której umiejętności oraz technologie używane na co dzień nieco się różnią od codziennej pracy programisty. Poza tym pracodawca, szukając testera, chciałby zatrudnić osobę, która z biegiem lat nabierze doświadczenia i będzie wymiatała w testowaniu, a nie osobę która ucieknie na inne stanowisko, powodując, że znów trzeba będzie szukać testera.

Ja bym polecała ( i sobie z przeszłości i tobie) zacząć szukać najpierw praktyk lub stażu już na docelowym stanowisku. Szczególnie, gdy pierwsze projekty masz za sobą, ogarniasz podstawy silnika i programowania najszybciej rozwiniesz swoje skrzydła trafiając do zespołu programistów. Według mnie zbyt długie samodzielne tworzenie aplikacji bardziej zamyka na rozwój niż otwiera na nowe umiejętności. Jestem zwolenniczką twierdzenia, że przy innych uczymy się szybciej, bo mamy na co dzień od kogo czerpać wiedzę. Dużą uwagę więc zwróciłabym, czy na miejscu praktyk i stażu masz osoby na stanowisku seniorskim, które sa doświadczone oraz czy będziesz aktwnie uczestniczył w programowaniu gry. Oprócz tego warto zapytać czy jest wykonywany code review, czyli przegląd kodu przez osobę z zespołu, mający na celu poprawę błędów i sprawdzenie, czy czegoś nie udałoby się napisać w łatwiejszy sposób.

Przeskoczenie z takich praktyk czy stażu do normalnej pracy będzie tylko formalnością. 🙂 Sama ogromnie żałuję, że spędziłam zbyt dużo czasu nie posiadając mentora ani teamu osób bardziej doświadczonych ode mnie.

Podsumowanie

Osobie, która chce programować gry, poleciłabym najpierw zapoznać się z silnikiem Unity i C# poprzez tutoriale i kursy. Pozwoli to na poznanie satysfakcji ze stworzenia swoich pierwszych gier. Następnie, gdy mamy już zajawkę na tworzenie gier, a nasze pierwsze projekty w bólach i mękach się tworzą – poszukajmy osób, które robią to samo co my, np. na grupach na Facebooku ( Polski GameDev, GameDev Polska: Praca ), konferencjach lub meetupach. Wspieranie się oraz pomoc innych osób jest bardzo motywujące do dalszej pracy. Gdy mamy już pierwsze projekty za sobą, i nadal uważamy, że gamedev jest dla nas, poszukajmy stażu lub pracy w studiach, które umożliwią nam ciągły rozwój. 😉

Zapisz się do newslettera, odbieraj darmowe materiały do nauki i bądź na bieżąco z nowymi artykułami!

Invalid email address
Zgadzam się na wysyłkę newslettera.
Polityka prywatności