hello
Każdy, kto gra w gry wideo napotyka błędy programu, wcześniej czy później.
Tego typu usterki utrudniają życie graczom od samego zarania przemysłu growego. Przywykliśmy do nich i niezbyt czule nazywamy je „bugami” (ang. „bugs”). Bugi można znaleźć wszędzie i World of Warships nie stanowi tutaj wyjątku. Na nasz projekt składają się miliony stale aktualizowanych linijek kodu, olbrzymia ilość zawartości i skomplikowany system interakcji pomiędzy komputerami graczy a serwerami. Wszystko to tworzy mnóstwo powiązań, w których mogą wystąpić pomyłki. Dziś dowiecie się, jak zmniejszamy liczbę bugów docierających na serwer główny i jak naprawiamy te, które zostały przeoczone.
Termin bug jest prawdopodobnie znany większości graczy.
Bug to błąd, który powoduje inny od zakładanego wynik operacji programu.
We wczesnych latach gier dzieliliśmy bugi na dwa główne typy: bugi w zawartości gry i bugi w kodzie. Obecnie typów jest znacznie więcej.
Zespoły zapewniania jakości (QA) są odpowiedzialne za odnajdowanie i naprawianie bugów w World of Warships.
Departamenty QA istnieją w większości zespołów deweloperskich World of Warships. Na przykład:
Zadaniem QA jest zrozumienie, jak pewne rzeczy powinny być zaimplementowane w grze. Aby tego dokonać, badają dokumentację i komunikują się z deweloperami. Następnie opracowują procedury testowe i schematy, które używane są do sprawdzenia zgodności programu z jego oczekiwanym zachowaniem.
Wykonywane są zarówno negatywne, jak i pozytywne testy podczas sprawdzania programu:
W wymagających tego wypadkach przeprowadzane są inne typy weryfikacji: testy wydajności, testy przyjazności dla użytkownika i pozostałe.
W World of Warships testowanie może zostać uproszczone do kilku głównych etapów.
Testy wewnętrzne:
Build to określona wersja klienta gry, którą można również wykorzystać do testów.
Sprawdzenie absolutnie wszystkich powiązań i ich wyników w różnych elementach tak dużego projektu, jakim jest World of Warships, jest niemożliwe, nawet dla największych zespołów QA.
Dlatego też testy zewnętrzne rozpoczynają się równolegle z ostatnimi etapami testów wewnętrznych:
Zewnętrzne testowanie pozwala nam również na sprawdzenie działania gry na wielu konfiguracjach komputerów i oprogramowania.
Zespół deweloperski World of Warships również jest zaangażowany w testy zewnętrzne. Mamy w studiu mechanizm pod nazwą „sygnalizacja świetlna”. To specjalna strona, którą uzupełniają wszystkie zespoły po rozgrywkach na serwerze testu publicznego. Na tej stronie personel może zostawić swoje uwagi o każdym, nowo testowanym rozwiązaniu, a także wystawić ocenę, która później jest uwzględniana podczas podsumowania wyników testu.
Na podstawie wyników testów zewnętrznych naprawiamy ostatnio zidentyfikowane błędy w obecnym buildzie gry. Jeśli naprawa błędów jest niemożliwa, możemy również wycofać pewne rozwiązania z nadchodzącej aktualizacji.
Tak było w przypadku bitew asymetrycznych w aktualizacji 0.10.9. Błąd, który prowadził do niepoprawnego działania tego trybu i wymagał dodatkowego czasu na naprawę, został odkryty na etapie testu publicznego. W związku z tym tryb został usunięty z aktualizacji.
Dlaczego na serwerze głównym pojawiają się błędy? Bugi występują z różnych powodów i na różnych etapach produkcji. Od banalnych błędów w kodzie programu i spowodowanych przez czynnik ludzki, po nieoczywiste interakcje i błędy na etapie tworzenia dokumentacji projektowej dla nowej wersji.
Błąd może być obecny już na etapie rozwoju pomysłu i wciąż być postrzegany jako bug.
Na przykład mechanika tymczasowej odporności eskadr lotniskowców natychmiast po ataku, która wcześniej mogła być używana do uporania się z obroną przeciwlotniczą przeciwnika, może również być traktowana jako bug. To konkretne wykorzystanie mechaniki nie zostało przewidziane na etapie projektowania aktualizacji lotniskowców i naprawiono je później.
Aby zapobiec podobnym sytuacjom, staramy się rozpoczynać testy już na etapie dyskusji o nowych pomysłach.
Dodatkowo elementy gry, które działają bez zarzutu w odosobnieniu, mogą „się zepsuć”, gdy połączy się je z innymi elementami gry, z powodu występujących różnych korelacji i konfliktów.
Na przykład w jednym z naszych wewnętrznych testów aktualizacji bitew rankingowych, zorientowaliśmy się, że powodują one błędy w działaniu bitew klanowych — gracze nie mogli rozpocząć bitwy, ponieważ dobieranie przeciwników trwało w nieskończoność. W tym przypadku powodem nie była oczywista zależność, lecz szczęśliwie został on wyłapany i nie dotarł do serwera głównego.
Inną przyczyną bugów — dość trudną do wychwycenia — jest olbrzymia różnorodność konfiguracji komputerowych użytkowników, które wraz ze złożoną architekturą serwera klienta gry, mogą doprowadzić do niespodziewanego zachowania kodu gry na niektórych komputerach.
Na przykład w jednej aktualizacji z powodu innego formatu daty stosowanego w Japonii od tego używanego w Europie i Ameryce, kod gry nie był w stanie przetworzyć tej informacji, a statystyki po bitwie nie były wyświetlane dla części graczy.
Coś, co gracze postrzegają jako bug, czasem w ogóle nim nie jest, ponieważ zachowanie programu widoczne dla graczy jest tak naprawdę oczekiwanym wynikiem. W takich sytuacjach ważne jest, by przeanalizować uwagi gracza i, w miarę możliwości, coś zmienić. Może być też odwrotnie — bug czasem bywa częścią gry, a decyzja o tym, by go nie naprawiać, może być celowa.
Na przykład do unikalnego dźwięku dział okrętu X Shikishima wkradł się błąd w ustawieniu zasięgu słyszalności (mógł być słyszany z większej niż zamierzona odległości), który to został naprawiony. Niemniej jednak stwierdziliście, że po poprawce dźwięk stracił swój unikalny charakter, więc przywróciliśmy ten „błąd” do gry.
Bugi mogą być również wstępnie przypisywane do problemów technicznych w centrach danych lub u dostawców Internetu. Niestety niewiele możemy zdziałać w takich sytuacjach i nie zawsze możemy pomóc graczom, niezależnie od tego, czy znamy źródło problemu, czy nie.
Ważne, by zrozumieć, że nie da się wykryć absolutnie wszystkich bugów. Rezultatem pracy zespołu QA jest działanie nowej funkcjonalności w zakładany sposób, bez bugów krytycznych oraz wad, a także możliwość wprowadzenia jej na serwer główny.
Dlaczego naprawianie niektórych bugów trwa tak długo? Czas potrzebny na naprawę konkretnego błędu zależy głównie od jego natury. Niektóre defekty wymagają znacznego nakładu czasu, już na samym etapie analizy błędu. Aby naprawić błąd, potrzebujemy oczywiście dokładnie go odtworzyć i zrozumieć powód lub powody jego występowania.
Na przykład niedawny bug powodował niepoprawne wystrzeliwanie torped, gdy strzelający nimi okręt skręcał. Był to błąd w logice gry, a jakiekolwiek zmiany i poprawki w logice gry są zawsze bardzo ryzykowne, ponieważ wpływają na absolutnie wszystkich graczy i samą podstawę gry — rozgrywkę.
W związku z tym, aby naprawić błąd, ważne jest precyzyjne przeanalizowanie uwag graczy i raportów, znalezienie przyczyny problemu oraz opracowanie i zweryfikowanie rozwiązania. W szczególnych przypadkach, by naprawić bug lub zoptymalizować go z użyciem nowej technologii, konieczne może być przepisanie kodu gry. Proces ten nazywamy refaktoryzacją. Pomimo tego, że z punktu widzenia gracza może się wydawać, że nie zostały wprowadzone żadne zmiany, proces ten jest dość czasochłonny.
Dodatkowo ramy czasowe na naprawę błędów zależne są od sposobów, jakimi poprawki dostarczane są do graczy. Na przykład:
Decyzja o sposobie wprowadzenia każdej poprawki i przyznawaniu pierwszeństwa naprawie bugów jest zależna od kilku czynników:
Niestety pomimo naszych usiłowań naprawy wszystkich możliwych błędów, zasoby zespołu World of Warships są ograniczone, więc skupiamy się na skorygowaniu najbardziej krytycznych i najczęściej napotykanych bugów.
Zawsze możecie nas poinformować o znalezionych przez Was błędach za pośrednictwem:
Aby pomóc w szybszej i skuteczniejszej naprawie błędu, prosimy o dodanie do Waszego raportu:
ź: WoWsW dzisiejszym artykule dołożyliśmy wszelkich starań, aby w jak najprostszy sposób opowiedzieć Wam o „niewidzialnym froncie” walki z bugami. Pragniemy podziękować Wam za wszystkie raporty o błędach, opinie, udział w naszych testach i grę w World of Warships! Bez Waszego wkładu, nie bylibyśmy w stanie szybko znaleźć i poprawić różnych błędów, które występują w grze.