Tworzenie gier komputerowych. Kto tak naprawdę tworzy gry komputerowe?

Mateusz Kietlinski
Ikona kalendarza
27 czerwca 2019

Zapewne każdy z was miał kiedyś styczność z grami komputerowymi. Poczynając od łączenia diamentów w trójki na ekranie telefonu, przez trzymające w napięciu wyścigi z padem w ręku, na jeżdżeniu rollercoasterem z headsetem VR na głowie kończąc. Wartość rynku gier komputerowych dynamicznie wzrosła w 2018, osiągając kwotę 135 miliardów dolarów, co stanowi poprawę o około 11 punktów procentowych w stosunku do poprzedniego roku. Współczesny świat powoli przyjmuje gry komputerowe jako nowego “dostawcę” rozrywki. Coraz więcej możemy znaleźć w internecie artykułów o grach, stron streamingowych pozwalających nam na oglądanie jak inne osoby grają w nasze ulubione gry czy gal e-sportowych. Gry komputerowe nie są już tylko towarem luksusowym, projektowanym dla garstki zapaleńców z konsolą Atari w salonie. Stały się one nową rozrywką, projektowaną dla odbiorcy masowego, a ich tworzenie zaczęło być traktowane jak show-biznes.

Tworzenie gry różni się od tworzenia aplikacji użytkowych w kilku aspektach. Patrząc na to z prostego punktu widzenia, zarówno gra jak i aplikacja mają swoją logikę opisaną kodem, którego reprezentacja pojawia się na ekranie użytkownika. Gry jednak oprócz tego mają w nadawanym przez siebie przekazie emocje. Czy będzie to uczucie triumfu nad pokonanym przeciwnikiem, czy satysfakcji z rozwiązanej zagadki, a może smutku po stracie towarzysza, który był z nami od początku fabuły? Gra nie odbywa się wewnątrz procesora, ani nawet na ekranie; prawdziwa gra może być doświadczana tylko i wyłącznie w głowie osoby, która trzyma kontroler.

Gry komputerowe to dzieła, które łączą w sobie wiele elementów estetyki. Oprócz tych oczywistych, takich jak kod, ścieżka dźwiękowa czy szata graficzna, są także projekty mechanik, poziomów czy animacje postaci. Kreowanie doświadczeń płynących z gry wymaga połączonej pracy wielu osób, często znacznie różniących się od siebie. W zespołach spotkamy zarówno ludzi o umysłach ścisłych jak i humanistycznych, którzy muszą umieć porozumiewać się ze sobą, przekazywać swoje wizje i spostrzeżenia, aby w efekcie stworzyć dobry produkt. Wielu deweloperów rozpoczyna swoją karierę w pojedynkę, starając się stworzyć wszystkie potrzebne elementy samemu. Jest to jak najbardziej wykonalne i znamy astronomiczne wręcz przypadki tytułów takich jak “Stardew Valley”, które odniosły olbrzymi sukces mimo powstawania w wyniku pracy pojedynczej osoby. Tutaj skupimy się jednak na pracy w większym zespole, żeby lepiej poznać procesy panujące w profesjonalnych firmach game devowych. Przed wyruszeniem w drogę, należy zebrać drużynę.

Game Designer - ten, przez którego zapamiętujesz grę na zawsze

Zacznijmy od game designera. Na samym początku musimy pozbyć się najczęściej spotykanego, błędnego założenia dotyczącego tej roli, czyli “człowiek od pomysłów”. Każda osoba w zespole ma pomysły. Gdybyś miał(a) teraz wymyślić pomysł na grę, pewnie po maksymalnie 60 sekundach narodziłby Ci się w głowie. Pomysły to jedynie mnożnik wartości wykonania projektu. Celem designera jest jak najszybsza ocena i wdrożenie pomysłu w życie.

Zły pomysł-1Brak wykonania$1
Słaby pomysł1Słabe wykonanie$1.000
Średni pomysł5Średnie wykonanie$10.000
Dobry pomysł10Dobre wykonanie$100.000
Świetny pomysł15Świetne wykonanie$1.000.000
Znakomity pomysł20Znakomite wykonanie$10.000.000

Przykład z książki “Anything You Want” autorstwa Derek Sivers.

Aby poznać wartość produktu, należy przemnożyć wartość pomysłu z wartością wykonania. Przykładowo, znakomity pomysł, ale bez wykonania będzie wart $20, natomiast znakomity pomysł ze świetnym wykonaniem będzie wart $20.000.000. Dlatego pomysły same w sobie są nic nie warte, dopóki nie możemy zobaczyć jakości ich realizacji.

Skoro już wiemy, że designer nie jest od wymyślania pomysłów, to czym w takim razie się zajmuje? Zadaniem takiej osoby jest prototypowanie mechanik, które występują w grze. Polega to najczęściej na szybkiej implementacji nowej funkcjonalności, oraz testów na pozostałych członkach zespołu w celu zebrania feedbacku. Sam designer jest ostatnią osobą, która powinna testować swój pomysł. Wie, jak powinna działać testowana mechanika, przez co nie dostrzega błędów, które mogą w niej występować. Kolejnym zadaniem takiej osoby, jest kreowanie poziomów (ang. Level Design) - tak, żeby gracz mógł nauczyć się nowych mechanik w naturalny sposób lub przetestować umiejętności, których uczył się wcześniej. Designer jest także odpowiedzialny za balans rozgrywki. Nie mówimy tutaj tylko o dbaniu, by numerki w Excelu się zgadzały, ale także o zapewnieniu prawidłowego tempa rozgrywki (ang. Pacing). Gracz powinien odczuwać momenty wysokiej stymulacji, ale także chwile wytchnienia i odpoczynku. Czasami designerzy odpowiadają też za balans monetyzacji gry. Tyczy się to głównie gier mobilnych lub darmowych, gdzie designerzy kontrolują ceny przedmiotów, dokonują symulacji wydatków graczy i dostosowują ceny zakupów w aplikacji, zwanych też mikropłatnościami.

fig1.webp

Grafik, a raczej cała armia grafików

Pomówmy teraz o grafikach, którzy uczestniczą przy produkcji gier komputerowych. Najłatwiej będzie nam omówić ich rolę przez podział na zadania, jakimi się zajmują, a wbrew pozorom nie jest to tylko tworzenie grafik. Praca nad elementami gry rozpoczyna się na biurku koncept artysty (ang. Concept Artist), który na podstawie przygotowanych przez designerów informacji szkicuje wizję danego obiektu bądź postaci. Dzięki takiemu zabiegowi łatwo jest wizualnie ocenić, czy dany obiekt będzie pasował do świata gry, czy nie. Po akceptacji przez głównego grafika projektu (ang. Art Director), koncepty trafiają do modelarza (ang. 3D artist) lub ilustratora (ang. 2D artist) w zależności od tego, jakiego typu obiekt chcemy zrobić. Praca modelarza polega na stworzeniu trójwymiarowego modelu. W tym celu wykorzystuje się technikę rzeźbienia (ang. sculpting), która po części przypomina rzeźbienie za pomocą gliny. Taki artysta musi pamiętać o złożoności swojego modelu, gdyż gry muszą być wyświetlane na ekranie w czasie rzeczywistym, najlepiej w 60 klatkach na sekundę. Im bardziej skomplikowany jest model (składa się z większej ilości trójkątów), tym więcej czasu zajmie karcie graficznej narysowanie go. Ilustrator natomiast nie ma takich ograniczeń, jego praca polega na przygotowaniu elementów dwuwymiarowych, np. fragmenty interfejsu użytkownika lub rysunki postaci występujących w grze. Pracę takiego grafika można w uproszczeniu porównać do fizycznego malowania za pomocą pędzla na płótnie.

fig2.webp

Concept art postaci "Atreus" do gry "God of War"

Następnym grafikiem, którego spotkamy na ścieżce do gotowego modelu to rigger. Jego zadaniem jest przygotowanie trójwymiarowego modelu do animacji. Polega to na rozmieszczeniu szkieletu wewnątrz modelu i przypisanie elementów powierzchni do poszczególnych kości. Dzięki temu, gdy ruszymy kością, trójkąty do niej przypisane także wykonają ruch. Tak przygotowany model trafia do animatora, który wprawia go w ruch. Animator porusza kończynami i zapisuje ich położenie w punktach kluczowych dla animacji (ang. keyframes). Po ustawieniu wszystkich kluczy na całej długości animacji zobaczymy skończony efekt (np. poruszającej się postaci) gotowy do umieszczenia w grze. Nie możemy też zapomnieć o grafikach technicznych (ang. technical artist), którzy są odpowiedzialni za tworzenie efektów specjalnych. Jeśli nasza postać miałaby władać płonącym ostrzem, właśnie ten grafik przygotowałby efekty cząsteczkowe płomieni i dymu, który ten oręż pozostawia.

fig3.webp

Szkielet postaci "Geralt" z gry "Wiedźmin 3"

Dźwiękowiec - podejmuje decyzję o tym, co usłyszysz

Kiedy w naszej grze jest już obraz, czas zabrać się za jej udźwiękowienie. Tworzenie muzyki i efektów dźwiękowych do gier różni się trochę od pracy przy filmach. Montując film, znamy każdy moment, w którym dany dźwięk się odegra i wiemy, w której scenie, jaka będzie muzyka. Gry są kontrolowane przez gracza - to on decyduje, co stanie się w danym momencie, a efekty i muzyka powinny na to reagować. Dźwiękowiec będzie miał zatem kilka dodatkowych zadań do wykonania. Oprócz przygotowania efektów dźwiękowych do każdej interakcji oraz muzyki do sytuacji dziejących się w świecie gry będzie także odpowiadał za mieszanie się tych dźwięków (ang. blending) w odpowiedni sposób.

Blending dźwięków w grach polega na przypisaniu odpowiednich priorytetów do akcji tak, aby odtwarzane były głośnej te dźwięki, które są w danym momencie ważniejsze, a te mniej istotne znikały w szumie lub były całkowicie wyłączone. Złotą zasadą jest patrzenie na priorytet akcji, szacując, jak duży wpływ będzie miała na gracza. Odgłosy kroków przechodniów dookoła mają mały wpływ dla rozgrywki, natomiast wyciągający broń z kabury bandyta stanowi realne zagrożenie dla głównej postaci, zatem dźwiękowiec powinien mieć pewność, że gracz go usłyszy. Można ten efekt zaobserwować w grze “GTA V”. Używając powyższego przykładu - dźwięk wyciągania broni z kabury jest w rzeczywistym świecie prawie niesłyszalny, w grze natomiast wybija się ponad trąbiące akurat samochody.

Producent pilnuje, żebyśmy jechali w dobrą stronę

Wiemy już, jak wiele różniących się od siebie osób bierze udział w tworzeniu gry komputerowej. Jak więc zapanować nad całym tym procesem? Odpowiedzi musimy szukać u producenta. Chciałbym pozbyć się błędnego przeświadczenia, które wiele osób ma na temat tego stanowiska: producent nie zarządza zespołem. Za zarządzanie odpowiadają team liderzy, którzy wiedzą, jak ich zespół pracuje najlepiej, znają technologie, z jakich korzystają i wiedzą, jak rozdzielić ludzi, aby zadania zostały wykonane terminowo. Producent odpowiada za kreowanie ścieżki, którą podąża projekt, tak aby jak najbardziej spełniała wyznaczone założenia. Jeśli gra jest robiona dla klienta zewnętrznego, producent pilnuje, aby produkt zgadzał się z zatwierdzoną wizją, a jeśli jest robiona wewnętrznie, to żeby powstawała według planu produkcji.

Do organizacji tworzenia gier, podobnie jak aplikacji użytkowych, najlepiej sprawdzają się metodyki zarządzania projektami (np. SCRUM). Odnosząc się do tej metodyki można porównać producenta do SCRUM Mastera, którego rolą jest dobieranie zadań, tak aby projekt podążał zgodnie z wyznaczonymi terminami, ale nie przejmuje się on już tym, jak wybrane zadania zostaną wykonane. To już pozostaje po stronie zespołu.

Tester zadba, aby gra działała częściej niż rzadziej

Gdybyśmy mieli wskazać największą część wspólną pomiędzy grami komputerowymi a aplikacjami użytkowymi, z pewnością byłyby to występujące w nich błędy. Zespół, który od dłuższego czasu pracuje nad swoją produkcją, ma utarte schematy, w jaki z niej korzystają. Kiedy zaczniemy wykonywać czynności w nieprzewidziany przez designera sposób lub w nietypowej kolejności, możemy natrafić na sporo niedociągnięć. Osobą, która próbuje “zepsuć” powstającą grę będzie tester ( ang. Quality Assurance).

Wyróżniamy kilka typów testów, które stosowane są przy grach. Najpopularniejszymi z nich będą testy poczytalności (ang. Sanity Tests). Polegają one na pobieżnym przeglądzie systemów, sprawdzając, czy funkcjonują one zgodnie z przewidywaniami. Bardziej specyficznymi testami będą np. testy kompatybilności (ang. Compatibility Testing), których zadaniem jest między innymi sprawdzenie, czy po zaktualizowaniu gry, użytkownik nie straci swojego postępu. Testy regresji ( ang. Regression Testing ) polegają na powtarzaniu poprzednich testów na sprawdzonych już funkcjonalnościach, aby upewnić się, że nie przestały działać tak, jak powinny. Bardzo istotne są też testy lokalizacji (ang. Localization Testing), podczas których sprawdzane są teksty występujące w grze we wszystkich wersjach językowych, czy mieszczą się w wyznaczonych na nie miejscach.

fig4.webp

"Asana", przykładowy program używany do bug trackingu.

Programista, czyli ten, który z przerażeniem patrzy na to, co wymyślili designerzy

Czym zajmuje się programista, raczej każdy z nas jest w stanie się domyślić. Tworzy on część gry, której nie widać na pierwszy rzut oka, a sprawia, że wszystko łączy się w funkcjonalną całość. Spróbujmy zatem podzielić programistów pracujących przy grach, aby lepiej zrozumieć, co dokładnie dzięki nim powstaje. Gdy myślimy o grze, widzimy w niej rozgrywkę. Wszystko, co na ekranie lata, strzela czy skacze zostało stworzone przez programistę gameplay’a (ang. Gameplay Programmer). Ci programiści podczas swojej codziennej pracy spędzają najwięcej czasu designerami. Dbają o to, aby mechaniki działały zgodnie z założeniem albo mogły być na bieżąco modyfikowane i dostosowywane do aktualnego stanu gry i zebranego feedbacku.

Gdy gra staje się rozbudowana, ilość małych zmian i elementów wymagających balansu drastycznie się zwiększa. Pojawia się potrzeba, by designerzy mogli w szybki sposób edytować konfigurację świata gry, najlepiej bez pomocy programisty. Programista narzędzi (ang. Tool Programmer) odpowiada za przygotowanie specjalnych edytorów dla designerów, aby w intuicyjny sposób mogli testować kolejne iteracje balansu rozgrywki bez ciągłej ingerencji w kod gry.

Aby przyspieszyć produkcję, programiści zaczęli tworzyć tak zwane silniki do gier komputerowych. Możemy je sobie wyobrazić jako zbiór narzędzi, które pozwalają nam szybciej i łatwiej stworzyć gotowy produkt. Wiele firm profesjonalnie tworzących gry decyduje się jednak na pracę z użyciem autorskiego silnika. W tym wypadku potrzebny jest programista silnika (ang. Engine Programmer). Jego zadaniem jest utrzymanie i rozbudowa narzędzia, tak aby mógł on wykonać zadania przewidziane przez designerów, wspierał najnowsze technologie i działał w optymalny sposób.

fig5.webp

Silnik do tworzenia gier "Unity".

Ostatnią rolą, o której wspomnę, jest programista części serwerowej (ang. Back-end Developer), który odpowiada za możliwość gry ze znajomymi przez internet. Jego zadaniem jest także obsługa baz danych, tak aby postęp naszej rozgrywki był bezpieczny i mógł być przenoszony w łatwy sposób między urządzeniami. W uproszczeniu - obszar jego pracy jest bardzo zbliżony z programistami odpowiadającymi za aplikacje użytkowe - w szczególności stron www. Większa różnica pojawia się dopiero przy obsłudze rozgrywki w czasie rzeczywistym, która musi być cały czas synchronizowana między wszystkimi graczami.

Czy warto robić gry komputerowe?

Tworzenie gier to moja ulubiona ścieżka kariery w IT. Pozwala ona na współpracę z ciekawymi ludźmi z różnych dziedzin, poznanie innych kultur i walkę z wyzwaniami, które różnią się z dnia na dzień. Gdybym miał wymienić zalety, na pewno na pierwszym miejscu postawiłbym różnorodność zadań, z którymi będziemy się zmagać. Dodatkowo moment, w którym możemy obejrzeć na YouTube film, na którym nieznajomi nam ludzie bawią się przy naszej grze, jest niezastąpiony.

Przeczytaj także

Ikona kalendarza

29 marzec

To be or not to be a multi cloud company? Przewodnik dla kadry kierowniczej, doradców ds. chmury i architektów IT. (część 2)

Po przeczytaniu pierwszej części poradnika zauważymy, że strategie organizacji są różne. Część firm oparło swój biznes wyłącznie na j...

Ikona kalendarza

27 wrzesień

Sages wdraża system Omega-PSIR oraz System Oceny Pracowniczej w SGH

Wdrożenie Omega-PSIR i Systemu Oceny Pracowniczej w SGH. Sprawdź, jak nasze rozwiązania wspierają zarządzanie uczelnią i potencjałem ...

Ikona kalendarza

12 wrzesień

Playwright vs Cypress vs Selenium - czy warto postawić na nowe?

Playwright, Selenium czy Cypress? Odkryj kluczowe różnice i zalety każdego z tych narzędzi do automatyzacji testów aplikacji internet...