20-9-2017

Zmodyfikowanie odrzutu broni

Podczas Operacji Health, po przeanalizowaniu filmów nagranych przez członka naszej społeczności o pseudonimie ExecCS, zidentyfikowaliśmy problem z L85A2. Początkowo wyglądało to jedynie na przesunięcie celownika, ale po głębszej analizie okazało się, że problem dotyczy wszystkich broni.

Problem wynika z faktu, że w chwili pojawienia się odrzutu, odsuwamy celownik od środka ekranu. Miało to na celu stworzenie systemu rozrzutu, gdzie kula trafia w to miejsce, w które wycelowana jest aktualnie broń. Niestety system nie działa zgodnie z naszymi intencjami. Przesunięcie broni w widoku z pierwszej osoby spowodowało problem z paralaksą pomiędzy bronią, a resztą świata gry. Broń, którą trzyma gracz, renderowana jest na poziomie FOV ("Field of View" - pole widzenia) o wartości 50, ale świat renderowany jest na 60 FOV na konsolach i pomiędzy 60 i 90 FOV na pecetach. Z tego względu dowolne przesunięcie centralnego punktu kamery w widoku z pierwszej osoby powoduje natychmiastowe problemy z ustawieniem broni.

To oznacza, że kule nie zawsze trafiają dokładnie tam, gdzie wskazuje celownik. Czasami jest to niewielka, niemal pomijalna różnica, ale w niektórych wypadkach kule trafiają daleko od punktu celowania.

Zmiana systemu

Pierwszym naszym krokiem było całkowite usunięcie przesunięcia. Niestety wiele parametrów odrzutu wyliczanych było na podstawie przesunięcia broni, przez co kontrolowanie odrzutu stało się zbyt proste. Nie potrafiliśmy znaleźć rozwiązania tego problemu, dlatego też postanowiliśmy zmienić odrzut wszystkich broni.

Gdy zabraliśmy się za to zadanie, natychmiast pojawił się kolejny problem. Stary system odrzutu pozwalał nam na określenie tylko jednej definicji na jego wzór.

Przykład: powiedzmy, że w starym systemie strzelasz ogniem ciągłym, zużywając cały magazynek. Pierwsza kula trafia dokładnie tam, gdzie celujesz. W celu wyliczenia miejsca, w które trafi druga kula, program gry wybiera losowy punkt znajdujący się wewnątrz zestawu parametrów, określających wzór odrzutu jako diament. Wyliczenie miejsca trafienia trzeciej kuli to wzięcie pozycji drugiej kuli i znów wylosowanie miejsca wewnątrz diamentu, którego środkiem (punktem 0,0) jest miejsce trafienia drugiej kuli. Proces jest powtarzany dla każdej kolejnej kuli.

To rozwiązanie oznacza system, który wciąż niezwykle mocno polega na generatorze liczb losowych (RNG); mocno zależy od pozycji kamery; a na dodatek niektóre bronie wydają się w nim kompletnie nieprzewidywalne. Takie rozwiązanie nie odpowiadało naszym potrzebom. Uznaliśmy, że to niezła okazja przerobienia naszego systemu odrzutu.

Odrzut wieloetapowy

Tak narodził się odrzut wieloetapowy. Ten system pozwala nam na zdefiniowanie dowolnej liczby zestawów odrzutu na dowolnym etapie strzelania ogniem automatycznym. Wróćmy do naszego przykładu. Oczywiście pierwsza kula trafia dokładnie tam, gdzie celujesz. Miejsce trafienia drugiej wyliczane jest na podstawie prostego algorytmu w lewo/w prawo. Tym razem jednak możemy powiedzieć programowi gry "Dla drugiej kuli używaj tego zestawu danych odrzutu, dla trzeciej innego" i tak dalej. W ten sposób możemy określić, gdzie ma trafić każda kolejna kula w odniesieniu do poprzedniej.

To oznacza, że mamy pełną kontrolę nad tym, gdzie trafia każda z kul, bez żadnej dodatkowej losowości. Dzięki temu systemowi udało nam się stworzyć znacznie dokładniejsze wzory odrzutu.

Nasza wizja dotycząca systemu odrzutu w przyszłości

Chcemy mieć system odrzutu, który odpowiada duchowi i dynamice Siege, jednocześnie dbając o to, aby gracze nie czuli się oszukani przy mistrzowskim strzale, ani nie uważali, że niebywale im się poszczęściło przy nieumiejętnym celowaniu.

Nie chcemy przytłoczyć graczy olbrzymią liczbą wzorów odrzutu do nauczenia, dlatego też podzieliliśmy je na grupy. Każda grupa ma swój jednolity wzór odrzutu przy jednoczesnym zachowaniu niewielkich różnic, dzięki czemu gracze czują, że bronie nawet w ramach jednej grupy zachowują się nieco inaczej.

Podział broni wygląda następująco:

AUG A2, Type-89, F2, C7E, AR33, G36C, L85A2, 556xi, PARA-308

552 commando, AK-12, C8SFW, 416-C, R4C

G8A1, M249, 6P41, T-95 LSW, PDW9, P90, Scorpion EVO 3 A1

MP5k, MP5, FMG-9, T-5, MP5SD, MPX, 9x19VSN, MP7, Scorpion EVO 3 A1

MK17 CQB

SMG-11, Bearing 9, Vector .45 ACP

Strzelby, pistolety, karabiny snajperskie i niektóre mniej szybkostrzelne pistolety maszynowe nie trafiły na tę listę, ponieważ ich wzór odrzutu nie został w pełni zmieniony. Usunęliśmy z nich niewielkie przesunięcie broni, ale nie wpłynęło to na odrzut w stopniu, który usprawiedliwiałby zmianę.

Nadchodzące testy

Oczywiście nie jest to zmiana, którą chcemy wprowadzać bez odpowiedniego przetestowania. Nowy system odrzutu będzie dostępny na serwerze testowym od 20 września.

Nie możemy się doczekać, aż wypróbujecie ten nowy system i gorąco zachęcamy do dzielenia się swoimi wrażeniami na subreddicie serwera testowego Rainbow 6.

Sprawdź pozostałe media społecznościowe

facebook icontwitter iconyoutube icontwitch icon