Praca nad narzędziami i silnikiem Overwatch
Wygląda na to, że świat potrzebuje dziś bohaterów bardziej niż kiedykolwiek wcześniej. A do stworzenia cyfrowych bohaterów potrzeba naprawdę sporo: dramatycznych motywów działania, epickich wątków fabularnych, niezapomnianej oprawy graficznej i wyjątkowych projektów. Ale to, czego potrzebują najwięcej, to kod. Ponad 2,7 miliona linijek wciąż ewoluującego kodu wchodzi w skład narzędzi obsługujących dziś Overwatch.
Architekci pracujący nad silnikiem i narzędziami gry są strażnikami tego niezwykłego dziedzictwa. Bez ich pracy nie powstałaby żadna gra.
Zespół ds. silnika gry
Zespół ds. silnika Overwatch buduje infrastrukturę techniczną wielu systemów gry, w tym grafiki, efektów wizualnych, fizyki rozgrywki, a także dźwięku. Są to „cegiełki”, dzięki którym możliwy jest rozwój gry. Główny inżynier oprogramowania Phil Teschner, który przed dołączeniem do Blizzarda pracował nad serią Halo oraz Kingdoms of Amalur: Reckoning, jest głównym budowniczym w zespole ds. silnika.
Teschner postawił sobie za cel zagranie we wszystkie tytuły Blizzarda i – jak sam twierdzi – poświęcił tej misji „zbyt wiele godzin”. Stało się to jeszcze zanim zdobył doświadczenie w pracy nad grami multiplatformowymi i tworzeniem grafiki, co ostatecznie sprawiło, że w 2012 roku przyjął ofertę pracy w naszej firmie i został przydzielony do projektu o kryptonimie „Project Titan”, który miał zaowocować powstaniem nowego MMO. Choć „Project Titan” został ostatecznie anulowany, to Teschner pomógł zrekonstruować niektóre z jego elementów składowych, dzięki czemu DNA tamtej gry przetrwało w Overwatch.
Dzięki Philowi i reszcie zespołu ds. silnika gra Overwatch może działać na różnych platformach (PC, PlayStation 4, Xbox One i Nintendo Switch) z najlepszą możliwą liczbą klatek na sekundę. Ich praca ze złożonym kodem charakteryzującym każde z tych urządzeń pozwala innym inżynierom i programistom Overwatch skupić się bardziej na rozwoju funkcji gry niż na programistycznych zagadkach poszczególnych platform. Podobnie jak ma to miejsce w przypadku prawie wszystkich projektów w ekipie Overwatch, jest to w stu procentach praca zespołowa. Phil zauważa, że „nie przypomina sobie żadnego problemu, nad rozwiązaniem którego nie pracowaliby jako grupa i nie próbowali wspólnymi siłami znaleźć drogi naprzód”.
Do obowiązków zespołu ds. silnika należy również śledzenie i ulepszanie statystyk wydajności, zużycia pamięci, wielkości aktualizacji i długości czasów wczytywania – nie tylko ze względu na własną wygodę jego członków, ale także w celu zapewnienia miejsca na nowe funkcje. Przykładowo: graficy, którzy chcą stworzyć bardziej realistyczną skórkę postaci lub dodać nowe sposoby symulowania ruchu ubrań, współpracują z zespołem ds. silnika, aby zmienić te podstawowe elementy składowe bez konieczności przebudowywania gry od podstaw.
Oczywiście, nowe elementy składowe, czyli te „cegiełki”, wciąż muszą zostać przedstawiane projektantom, grafikom oraz innym inżynierom z zespołu Overwatch w sposób użyteczny i skuteczny, tak aby mogły zostać przełożone na funkcjonalną i sprawiającą frajdę rozgrywkę. Tu właśnie wkraczają narzędzia deweloperskie (całe na biało).
Zespół ds. narzędzi
Zespół ds. narzędzi w Overwatch jest odpowiedzialny za działanie „TED-a” – edytora gry. Jest to nic innego, jak interfejs wizualny, za pomocą którego graficy, projektanci i programiści mogą składać i dopracowywać funkcje silnika gry: tworzenie poziomów, pisanie skryptów dla bohaterów, dostosowywanie czasów odnowienia, tworzenie animacji i dźwięków, które ożywiają poszczególne elementy i łączą je w spójną całość. Zespół ds. narzędzi kieruje się w pracy dwoma zasadniczymi pytaniami:
1. Nad jakimi aspektami tworzenia gry spędzają najwięcej czasu pozostali członkowie zespołu?
2. Czy możemy to zadanie ułatwić i sprawić, by praca nad nim stała się przyjemniejsza?
Główny inżynier oprogramowania Rowan Hamilton przed przejściem do ekipy Overwatch pracował nad serią Killzone (i podobnie jak Phil, projektem „Titan”). Swoją pierwszą grę, którą sam określa klonem Diablo, stworzył na studiach. Spędzenie wielu godzin na graniu w Diablo i StarCraft przypłacił co najmniej jednym niezaliczonym w terminie egzaminem.
Rowan wprowadził dla zespołu ds. narzędzi jedną podstawową zasadę: każdy, kto wprowadza zmiany w rozgrywce Overwatch, powinien być w stanie sprawdzać je w grze szybko i często. „Im bardziej lubisz pracować nad swoją grą, tym lepszą grę stworzysz” – podkreśla Hamilton.
Aby ta praca była przyjemniejsza, TED został dostosowany do potrzeb twórców Overwatch w oparciu o ich wieloletnie doświadczenie. Dzięki TED-owi możliwe są nowatorskie procesy modyfikowania treści tak szczegółowych, jak wybór bohaterów lub generowanie najlepszego zagrania meczu, a także wdrażanie koncepcji związanych ściśle z Overwatch, takich jak skórki i kolory drużyn.
Ale TED nie służy jedynie do tworzenia tego Overwatch, które znamy dzisiaj – jest również na tyle elastyczny, by wspierać kreatywne eksperymenty związane z kształtem gry w przyszłości. „Bez względu na to, co [programiści] zechcą wypróbować, mają pewność, że nie pozwolimy im zepsuć gry. Wszelkie zmiany łatwo jest cofnąć, wrócić do punktu wyjścia i przyjąć inne podejście” – zapewnia Hamilton. Wizualizacja wykonywana przez TED-a pomaga programistom zobaczyć, jak pasują do siebie 3 miliony zasobów Overwatch i terabajty danych źródłowych, co umożliwia szybkie wykorzystanie istniejących komponentów Overwatch do stworzenia czegoś znajomego… lub wykonania prototypu czegoś całkowicie nowatorskiego z wykorzystaniem zupełnie nowych pomysłów.
Nowe horyzonty
Praca nad funkcjami umożliwiającymi istnienie Overwatch to nie tylko proces udoskonalania i aktualizacji. Każdego dnia wykonywane są kolejne testy. Niektóre z nich przytłaczają wręcz swoim rozmachem. Narzędzia deweloperskie i silnik gry muszą uwzględniać postępy w zakresie sprzętu i obsługiwać je zarówno na bieżące potrzeby Overwatch, jak i przyszłe potrzeby innowacji w rozgrywce Overwatch 2.
Na BlizzConie 2019 zespół po raz pierwszy zaprezentował szerszej publiczności pierwszą grywalną wersję mapy z Overwatch 2 – Rio. Ale nim Rio pojawiło się na BlizzConie, Phil Teschner i zespół ds. silnika musieli podołać pozornie nieskomplikowanemu wyzwaniu: projektanci chcieli wysadzić w powietrze statek.
Nie miała to być niewielka eksplozja na niebie, ale całkowite zniszczenie ogromnego statku-matki omników z walczącymi agentami Overwatch na pokładzie i ogniem buchającym z jego trzewi. Możliwości silnika miały zostać wystawione na próbę, ponieważ zgodnie z planem oświetlenie zmieniało się na całej mapie w chwili, gdy reaktor statku osiągał stan krytyczny.
Kiedy elementy poziomu wybuchają, spodziewamy się, że zmieni się sposób, w jaki są oświetlone. W prawdziwym świecie oświetlenie zmienia się wraz z upływem czasu. Zmienia się widoczność, a nasze oczy dostosowują się do nowych warunków. Wpływ tych zmian jest bardziej widoczny bliżej źródeł światła, a mniej widoczny w dalszej odległości. Co więcej: zmiana oświetlenia w danym miejscu może wpłynąć na oświetlenie w sąsiednim pomieszczeniu.
Dynamiczne oświetlenie w czasie rzeczywistym – a o takim mowa – może wymagać dużej wydajności, szczególnie w sytuacji, gdy w grę wchodzi zmiana oświetlenia na całej mapie. Overwatch jest stworzone do działania na różnych systemach, tak więc zespół ds. silnika musiał wymyślić rozwiązanie, które umożliwiłoby przeprowadzanie zakrojonego na tak dużą skalę wydarzenia bez uszczerbku dla wydajności gry.
Po pierwsze, zespół wyodrębnił te dynamiczne zmiany oświetlenia w określonych częściach mapy Rio. Graficy zajmujący się oświetleniem umieścili małe sondy na całym tworzonym poziomie, aby zidentyfikować powierzchnie, na które zmiany oświetlenia powinny wpływać w sposób znaczący (np. płonące elementy konstrukcji). Następnie programiści napisali skrypt dzięki któremu podczas eksplozji statku dynamiczne oświetlenie było włączone tylko dla tych powierzchni i wyłączało się po zakończeniu wydarzenia.
Mapy PvE (gracz kontra środowisko gry) z Overwatch 2 są większe i bardziej złożone niż mapy z Overwatch, takie jak Odwet czy Czarne Chmury. Oznacza to nie tylko większe odległości do pokonania przez bohaterów, ale także dłuższe misje z udziałem większej liczby wrogów i bardziej skomplikowane walki. Dodanie nowych typów wrogów prowadzi do złożonych interakcji zdolności nie tylko między bohaterami a przeciwnikami, ale także między samymi przeciwnikami, np. jednostkami bliskiego i dalekiego zasięgu, które koordynują ataki.
Projektanci pracujący nad narzędziami deweloperskimi Overwatch muszą jakoś zwizualizować takie wieloetapowe walki, które mogą trwać nawet kilka minut. Aby stworzyć coś ekscytującego, muszą mieć możliwość podglądu, gdzie pojawi się wróg i jak będzie się poruszał po danym poziomie, nim dzielny agent lub agentka Overwatch wyeliminuje go z gry. Oczywiście, ta dodatkowa złożoność wymaga ostrożnego zarządzania jej wpływem na wydajność całej gry.
Nie jest to wyzwanie, z którym zespół ds. narzędzi uporał się już całkowicie, ale do rozwiązania takich właśnie problemów został on powołany.
Jak to działa?
Twórcy narzędzi i silnika współpracują z innymi członkami ekipy Overwatch, aby wcielić w życie nowe pomysły na elementy rozgrywki. Wprowadzenie każdej ważnej funkcji, jak np. dodanie nowych technik umieszczania jednostek na mapie, rozpoczyna się od wstępnego spotkania członków ekipy inżynierii rozgrywki z projektantami pracującymi nad poziomami, bohaterami i zdolnościami. Spotkania takie mają na celu zrozumienie, co i jakim sposobem chcemy osiągnąć. W tym samym czasie zespół ds. narzędzi stara się zidentyfikować aspekty tych elementów rozgrywki, których tworzenie jest trudne i skomplikowane, a następnie wykonywać kolejne wersje ich prototypów aż do momentu, gdy budowanie dziesiątek lub setek takich elementów staje się „banalnie proste”.
Zmiany w istniejących funkcjach również mogą mieć ogromne konsekwencje. Kiedy zespół projektantów postanowił przerobić superzdolność Symmetry i wymienić Teleporter na funkcjonującą obecnie Barierę Fotonową, wiedzieli, że projektowana bariera będzie musiała rozciągnąć się przez cały poziom, aby mogła sprawiać wrażenie, że ma ogromny wpływ na przebieg rozgrywki. Członkowie zespołu ds. silnika i graficy efektów zjednoczyli siły, aby dopracować wygląd i zachowanie bariery bez wprowadzania nieestetycznych elementów graficznych lub problemów z wydajnością.
Zespół ds. silnika gry pomaga również grafikom i projektantom udoskonalać i wdrażać bardziej szalone pomysły – takie jak superzdolność polegająca na sklonowaniu bohatera. Sprawiają, że projekty pozornie niemożliwe stają się możliwe, działając w ramach ograniczeń każdej obsługiwanej platformy. Przykładowo: zdolność Duplikacja Echo została zdefiniowana tak, aby sklonowani bohaterowie, którzy zostali wyeliminowani, nie mogli wybrać nowej postaci (co wymagałoby od gry dodania trzynastego bohatera).
W chwili powstania tego artykułu członkowie zespołów ds. narzędzi i silnika gry, podobnie jak wielu z nas, pracują z domu – i odkrywają, że pomimo odległości dzielącej ich od współpracowników są z nimi w pewnym sensie bliżej niż kiedykolwiek. Spotykają się kilka razy w tygodniu, aby przeprowadzać testy wewnętrzne, z entuzjazmem rozmawiają o wszystkich zmianach i nowościach, które trafiły do gry w ciągu ostatniego tygodnia, i wykorzystują wiedzę wyniesioną z tych dyskusji w dalszej pracy.
Phil i Rowan lubią swoją pracę z analogicznych powodów. Ich współpracownicy są utalentowani i pełni entuzjazmu. Każdy członek zespołu ma wpływ na podejmowanie ważnych decyzji. Wszyscy wnoszą swój wkład w grę, którą uwielbiają nie tylko jako twórcy, ale również jako gracze.
I obaj zgadzają się co do tego, że w Overwatch jest grą naprawdę wyjątkową.
Teschner uważa, że to zasługa graczy. „Pracowałem w życiu nad mnóstwem różnych gier, ale reakcja społeczności fanów na świat Overwatch nadała zupełnie nowy sens całej mojej karierze. Podekscytowanie związane z grą, fanowskie grafiki, które otrzymujemy, oglądanie cosplayerów wcielających się w nasze postacie – to dla mnie zupełnie nowe doświadczenie”.
Dla Hamiltona, który przybył do Irvine z Holandii 7 lat temu, zespół stał się jak rodzina. „Przeprowadziłem się do Kalifornii z drugiego końca świata, żeby pracować nad tą grą” – mówi. „Współpracownicy stają się sobie naprawdę bliscy, kiedy tyle lat pracują w zgranej grupie nad pojedynczym projektem”.
„Nie wyobrażam sobie poświęcać czasu na coś innego”.
Ekipa Overwatch poszukuje inteligentnych, zmotywowanych programistów, którzy mogliby zasilić nasze szeregi. Szczegółowe informacje znajdziecie na stronie z ofertami pracy!