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 choćby 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ącę 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ł | -1 | Brak wykonania | $1 |
| Słaby pomysł | 1 | Słabe wykonanie | $1.000 |
| Średni pomysł | 5 | Średnie wykonanie | $10.000 |
| Dobry pomysł | 10 | Dobre wykonanie | $100.000 |
| Świetny pomysł | 15 | Świetne wykonanie | $1.000.000 |
| Znakomity pomysł | 20 | Znakomite 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, iż 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](/uploads/fig1_606629961b.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 dzięki 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 dzięki pędzla na płótnie.
![fig2.webp](/uploads/fig2_e6f73a9361.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żeli 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](/uploads/fig3_3d69acae64.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ść iż 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żeli gra jest robiona dla klienta zewnętrznego, producent pilnuje aby produkt zgadzał się z zatwierdzoną wizją, a jeżeli 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 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ę iż 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](/uploads/fig4_c8eb6aa6f1.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 iż 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](/uploads/fig5_b328da792a.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.