Devblog 107

Ryst teeth

Mamy w tym tygodniu spory devblog: pierwsze spojrzenie na nadchodzące wyrazy twarzy (grr, ups i seryjny morderca*), zużycie wody zostało rozszerzone, możecie też udostępniać benchmarki w grze. Jest trochę balansu, ubrań, przedmiotów do stawiania, wymiotowania i wiele więcej.

 

Blendshape’y Twarzy Taylor Reynolds

Jako część pracy nad sprawieniem, żeby gracze w Rust wyglądali na żyjących, oddychających ludzi, pracowałem nad blendshape’ami. Te blendshape’y kombinują normalne mapy i morph targety, żeby sprawić wrażenie realistycznej skóry i mięśni.

Przede wszystkim będą one wykorzystywane, żeby określić stan, w którym jest gracz: jeśli ktoś jest głodny i jest mu zimno, to będzie wyglądać na smutnego, jeśli są sami w ciemności, mogą wyglądać na przerażonych. Jest sporo możliwości, takich jak możliwość zaawansowanych emotikon lub nawet wyświetlania przez wasz avatar emocji na podstawie słów, które wymawiacie na czacie.

Włosy Taylor Reynolds Matt Isaac

Jest to coś, co idzie w parze z blendshape’ami, nad którymi pracowałem. Nie jest to koniecznie wskazówka, że brody i włosy będą niedługo w grze, ale jest to czymś w rodzaju zapewnienia, że wszystko, co robimy teraz z modelem gracza będzie kompatybilne z włosami w przyszłości. Są to wczesne testy, głównie w celu sprawdzenia, czy włosy działają dobrze w ruchu na twarzy, szczególnie, jeśli skombinujemy różne głowy z blendshape’ami emocjonalnymi w wydajny sposób.

Korzystamy z szorstkiej siatki, nad którą pracował Matt jakiś czas temu, która nadal jest przedmiotem testów wydajności, więc może się to zmienić. Warto wspomnieć, że ta praca pokrywa wszelkie rodzaje włosów, nie tylko brody, więc jeśli jesteście kobietą, to nie martwcie się: Też dostaniecie spoko rzeczy.

Słona Woda Maurino Berry

Jako kontynuacja wprowadzenia beczki i wiadra z wodą w zeszłym tygodniu, poszerzyłem znacząco system wody. Dodałem Słoną Wodę, która oczywiście pochodzi z oceanu i nie jest zdatna do spożycia. Możecie gasić nią pożary, ale łyknięcie jej zada wam obrażenia i spowoduje, że wyplujecie trochę jedzenia/wody.

Świeża Woda Maurino Berry

Świeża woda może być znaleziona w jeziorach i strumieniach… ogólnie w każdym miejscu ponad poziomem morza. Działa tak samo jak stara woda: uzupełnia wasze nawodnienie i daje wam trochę korzyści zdrowotnych. Jednakże, została ona osłabiona, nie daje już żadnych punktów życia powyżej 40. Dodałem też nowy przedmiot, Manierkę z Wodą, która w zasadzie jest większą wersją butelki z wodą.

Aspekty Przetrwania Maurino Berry

Rust flask

Idą dalej do uprzednio wspomnianych zmian, wprowadziłem trochę zmian do metabolizmu, szczególnie do tego, że będziecie tracić o wiele więcej kalorii biegając przez świat i korzystając z narzędzi. Będziecie też zużywać o wiele więcej wody przez długotrwałą wysoką aktywność i przez bycie na gorącu. Jeśli wasze nawodnienie spadnie do zbyt niskiego poziomu, nie będziecie mogli już sprintować, dopóki nie weźmiecie łyka wody. Zmniejszyłem też o połowę ilość kalorii/nawodnienia, którą gracz może składować w ciele. Te numery mogą nie pasować i być może będzie trzeba je zbalansować, ale nie powinniście mieć zbyt dużo problemów ze znalezieniem źródła świeżej wody, ponieważ od teraz możecie pić bezpośrednio ze świata, poprzez patrzenie w dół na jakiekolwiek zbiornik wodny i kliknięcie E (unikajcie jednak morza).

Torba Bota Maurino Berry

Zmieniłem Torbę Bota, żeby działała podobnie jak wiadro z wodą. To znaczy, że możecie ją wypełnić z jakiegokolwiek zbiornika wodnego i pić z niej bezpośrednio klikając lewy przycisk myszy, możecie też wylać wodę, żeby ugasić pożar. Można ją zamknąć, dzięki czemu można ją schować do ekwipunku i zostawić na później! Zmniejszyłem też wymogi jej wytworzenia do 15 materiału (zamiast 100 i 30 tłuszczów zwierzęcych, wow). Jako podstawowy przedmiot nie powinno być zbyt trudno znaleźć surowców do stworzenia jednej i bycia nawodnionym. Zdrowie!

Nerf Krwawienia Maurino Berry

Jedną z rzeczy, której nie lubiłem, jeśli chodzi o krwawienie, to to, jak szybko was zabijało. Wykrwawienie w ciągu kilkunastu sekund nie było czymś, w co celowałem, więc osłabiłem je do około jednej czwartej obrażeń. Jeśli jesteście ranni, to macie czas stworzyć bandaż lub znaleźć pomoc, zanim umrzecie. Będziemy musieli zobaczyć jak to wyjdzie i prawdopodobnie trzeba będzie to jeszcze zbalansować, będę słuchał opinii.

Pojemność Wody Maurino Berry

Razem z wprowadzeniem Manierki i Torby Bota, podwoiłem pojemność beczki z wodą i wiadra z wodą, żeby sprawić, żeby były lepsze do magazynowania/transportowania dużych ilości wody. Będzie to jeszcze ważniejsze w ciągu najbliższych tygodni, kiedy dodamy stawianą odsalarkę do gry (Sprawdźcie sekcję Howie’go).

Benchmarking Garry Newman

Kiedy wydaje się nam, że ulepszyliśmy wydajność, nie możemy tego udowodnić. Strzelamy na ślepo, mając nadzieję, że coś trafimy. Jest to słabe. Długo rozmawiałem o tym, że musimy mieć benchmark, oraz że musimy go odpalić na tych samych komputerach, na każdej konfiguracji, setki razy. W ten sposób możemy porównywać stan z poprzednim stanem i mieć porządne dowody na to, że ten zestaw kodu jest szybszy od innego.

Właśnie to zaczęliśmy robić. Ustawiliśmy kilka serwerów z punktami sprzętu, w które chcemy celować (ze wszystkiego, co było w pobliżu). Mamy jeden ze słabą konfiguracją, jeden ze średnią konfiguracją, jeden iMac, oraz kilka innych odtwarzających benchmark na każdej wersji Rust, którą zbudowaliśmy, i wrzucają one wyniki na stronę.

Następnie możemy sprawdzić, czy wyniki są spójne zależnie od konfiguracji.

Rust ProcMap

Dzięki temu, gdy zaktualizujemy Unity, nie musimy pytać na reddicie, czy wydajność jest lepsza czy niższa, wiemy już czy coś się zmieniło.

Udostępniajcie Swoje Benchmarki

Też możecie pomóc: po prostu włączcie grę, otwórzcie konsolę i wpiszcie benchmark. Włączy się kilka testów i otworzy się strona z wynikami. Możecie podzielić się waszym URL z kolegami, bądź z nami, żeby zobaczyć, jaka jest u was wydajność. Oto mój komputer w pracy. Jeśli zatrzymacie swoje wyniki, to będziecie mogli je porównać pomiędzy wersjami, i zaznaczyć jakiekolwiek zmiany w wydajności z nami.

Wydajność gry była ostatnio słaba, i pogorszyła się. Ten system był dla nas ważny – nie tylko dlatego, że wykrywa pozytywne zmiany – powinien też pomóc nam zidentyfikować negatywne zmiany, które pogarszają sprawę.

Wyniki testu są pokazywane w milisekundach, gdzie im niżej, tym najczęściej lepiej. Dodamy więcej benchmarków z czasem: kiedy będziemy chcieli udowodnić, że coś jest wolne, kiedy będziemy chcieli zobaczyć, czy optymalizacja zadziałała, itp. Oto szybkie wytłumaczenie obecnych testów.

Player Model

Renderowanie i animowanie setek modeli graczy. Sprawdza to nasz kod animacji, skórowania i siatek.

PlayerModelRebuild

Kiedy model gracza jest pokazany po raz pierwszy, lub kiedy gracz zmienia ubrania, musimy przebudować model. Może być to potencjalnie wolny proces, szczególnie, kiedy pojawia się sporo śpiących, więc chcemy zobaczyć, jak wygląda wydajność w tej sprawie.

Procmap.Gen

Jak długo zajmuje generacja proceduralnej mapy? Jest to duża większość czasów ładowania w Rust na ten moment. Chcemy to ulepszyć, nie chcemy tego pogorszyć. Jest to mocno zależne od sprzętu, jeśli chodzi o czasy, od 30 sekund do 3 minut.

ProcMap.Normal

Renderowanie proceduralnej mapy z trawą i dekoracjami, ale bez drzew. Dziwi mnie to, że działa to tak wolno, ponieważ poprzednio założyliśmy, że słaba ilość klatek na sekundę była spowodowana budynkami. Jeśli działa to wolno nawet bez budynków, to mamy problem.

ProcMap.noGrass

Sporo ludzi narzeka na to, że trawa powoduje problemy z wydajnością. Ten test ma na celu udowodnienie że mają rację, lub że nie mają racji raz na zawsze.

ProcMap.NoDecor

Dekoracje to rzeczy takie jak krzaki, kwiaty, dryfujące drewno. Ten test jest podobny do testu trawy, chcemy sprawdzić, jak bardzo te rzeczy wpływają na wydajność, i czy powinny być włączone, czy nie.

ProcMap.Rain

Czy deszcz obniża ilość klatek na sekundę? W przeszłości obniżał, ale czy nadal to robi? Ten test ma na celu zasugerowanie, że deszcz zwiększa ilość klatek na sekundę… co może być spowodowane obecnością mgły.

SkinnedMeshCollider

Ten test wystrzela wiele niewidzialnych kul na wiele modeli graczy, żeby przetestować szybkość generacji hitboxów. Jest to potencjalnie wolna operacja, i ten sam kod jest wykorzystywany do duzej ilości innych rzeczy, które mogą być potencjalnie wywoływane co każdą klatkę.

Wydajność André Straubmeier

Popracowałem w tym tygodniu nad wydajnością. Naprawiłem problem, który polegał na tym, że bardzo poważnie spadały klatki na sekundę, gdy patrzyło się na pobliskich graczy w pewnych sytuacjach, co mogło się zdarzyć nawet z dalszej odległości, niż pozwalało się na interakcję. Nadal jest jeszcze kilka rzeczy do zoptymalizowania w colliderze siatek skóry, który jest wykorzystywany przez graczy, ale był to najpoważniejszy problem związany z wydajnością. Wyeliminowałem też skoki ilości klatek na sekundę spowodowane przez budowanie się siatek naszych graczy i przez inicjalizację kolizji, kiedykolwiek śpiący bądź gracze byli strumieniowani z serwera, co zdarzało się praktycznie cały czas podczas chodzenia po mapie.

Menu Samo-interakcji André Straubmeier

Dodałem nowy koncept interakcji, nazwany ‘menu samo-interakcji’. Do teraz tylko sieciowane jednostki mogły dostarczać menu interakcji, które mogły być wykorzystywane poprzez klikanie, bądź przytrzymywanie E. Dla picia dodaliśmy sieciowane interakcje dla statycznych obiektów takich jak rzeki, jeziora i oceany, a sposób, w jaki to rozwiązałem, polegał na dodaniu menu samo-interakcji dla gracza, do którego można wejść poprzez kliknięcie E kiedykolwiek nie patrzycie na jakąś jednostkę do interakcji. Opcje menu samo-interakcji mogą być też warunkowe, więc dla picia możemy zrobić rzeczy w stylu wyświetlania opcji tylko wtedy, kiedy jesteście w pobliżu wody.

Jest to jak na razie wykorzystywane tylko przez nowe mechaniki picia, ale być może znajdziemy jakiś inny sposób wykorzystania tego w przyszłości. Sekcja Maurino ma informacje dotyczące nowego systemu picia.

Kłopoty z Rozstawianiem André Straubmeier

Naprawiliśmy parę błędów z systemem rozstawiania. Najbardziej denerwującym był fakt, że niektóre rozstawiane przedmioty były zbyt trudne do poprawnego rozłożenia, na przykład skrzynki na półkach. Naprawiłem też parę możliwych nadużyć, które pozwalały rozstawiać przedmioty pod takimi kątami, które były zbyt ekstremalne, by miały jakikolwiek sens.

Nadużycia Lootowania André Straubmeier

Istniał problem z lootowaniem w zasięgu wzroku, który pozwalał graczom zabierać przedmioty przez szczeliny pomiędzy Colliderami bloków budynków. Teraz jest to naprawione.

Załamania Pocisków André Straubmeier

Chciałem to dodać już od dłuższego czasu i wreszcie w tym tygodniu się za to zabrałem. Pociski teraz zmieniają kierunek w miarę realistyczny sposób, kiedy penetrują obiekty. To, jak bardzo zmieniają kierunek zależy od powierzchni i pocisku.

Rust bullets

Margines Collidera Surowców André Straubmeier

Zdebugowałem problem, który sprawiał, że collider surowców po stronie klienta trochę różnił się od tego po stronie serwera. Było to najbardziej zauważalne na żyłach surowców, które czasami odskakiwały, kiedy na nich kucaliście, ale pewnie sprawiało to problemy z innymi jednostkami surowców.

Problem z Chatem André Straubmeier

Mieliśmy parę problemów z tym, jak wiadomości były renderowane i jak szybko przewijał się chat. To powodowało spadek wydajności, kiedy chat był dość aktywny, przez co na niektórych modowanych serverach ludzie specjalnie to wykorzystywali, aby spierdolić wydajność dla innych graczy, albo spowodować wysypanie się gry. Wszystko to zostało naprawione.

Dźwięki Wymiotowania Alex Rehberg

Zrobiłem trochę dźwięków wymiotowania, w wypadku kiedy ktoś byłby na tyle głupi aby wypić wodę morską. Wydałem z siebie parę dźwięków mdłości i nagrałem je, a poźniej wylałem trochę gęstej zupy pomiędzy paroma miskami i to też nagrałem. Potem wziąłem te dźwięki, pokroiłem je i skleiłem w jedno. Dodałem też trochę wody rozlewanej na trawę (co nagrałem tydzień temu dla wiadra z wodą) i parę mocno wilgotnych plusków od upuszczania przeze mnie na ziemię zmieszanych kantalup, co nagrałem parę miesięcy temu.

Praca nad nimi sprawiła, że jestem wdzięczny, że nie mam słabego żołądka, bo są one trochę obrzydliwe.

Polerowanie Odgłosów Kroków Alex Rehberg

W tym tygodniu nagrałem parę nowych dźwięków kroków. W zasadzie już skończyłem aktualizować zwykłe dźwięki butów. Następne są gołe stopy. Do nich trzeba dodać więcej ciężaru i przejrzystości i więcej regularności pomiędzy różnymi powierzchniami. Zwiększam też ilość wariacji dla poszczególnych powierzchni. W tym momencie mamy cztery na powierzchnię i chciałbym to co najmniej podwoić.
Pracuję nad tym wraz z miksowaniem, więc nie usłyszycie ich jeszcze w grze, ale tutaj macie małe porównanie nowych i starych dźwięków. Brzmi to trochę dziwnie, kiedy przerwy między dźwiękami są trochę za długie, ale przynajmniej możecie je poczuć. Usłyszycie stary dźwięk kroków po ziemi, nowy dźwięk kroku po ziemi, stary dźwięk trawy, nowy dźwięk trawy, stary dźwięk piasku i nowy dźwięk piasku.

Miksowanie i Polerowanie Audio Alex Rehberg

Znowu w tym tygodniu łupałem to miksowanie. Jestem już dość zadowolony z tego, jak to wszystko razem jest ułożone, więc jest to dobra szansa na wklejenie tego do głównej gałęzi w następnym tygodniu i kontynuowanie polepszania rzeczy w miarę posuwania się do przodu.

Budynki Podziemi Vincent Mayeur

Właśnie skończyłem dziś te budynki i czuję się z tym dobrze. Reprezentuje to duży kawał podziemi bez tekstur (o którym myśleliście, że jest to końcowy produkt). Parę budynków jeszcze zostało do przerobienia, na przykład wieża ciśnień i parę średniej wielkości budynków. Ogólnie poprawia to wygląd większości podziemi.

Rust dungeonsRust dungeons Rust dungeonsRust dungeons Rust dungeonsRust dungeons Rust dungeonsRust dungeons Rust dungeonsRust dungeons Rust dungeons

Remont Animacji Graczy Minh Le

Skończyłem zamianę wszystkich starych animacji graczy na nowy system, zaczętą w zeszłym tygodniu. Nowy system animacji graczy zabiera o wiele mniej pamięci i jest o wiele bardziej zoptymalizowany. Nowy system naprawił też błąd, w którym to, jak była zwrócona postać nie była w 100% zgodna z tym, jak dany gracz rzeczywiście celował.

Groty Strzał i Bełtów Minh Le

Zrobiłem tak, że łuk i kusza pokazują różne groty strzał, zależnie od typu zaekwipowanych strzał. Modele grotów zostały zrobione przez Toma Buttersa i mają 5 różnych wariantów. Tutaj macie próbkę tego, jak niektóre z nich będą wyglądać.

Rust bowRust crossbow

Poprawki Animacji Konia/Niedźwiedzia Minh Le

Przeleciałem przez parę animacji koni i niedźwiedzi i wprowadziłem parę ulepszeń w ich animacji ataku. Są teraz bardziej płynne i pokazują ich ciężar.

Dozownik i Odsalarka Wody (Koncept) Howard Schechtman

Pracowałem nad paroma pomysłami na nadchodzące budowle graczy, dotyczące wody.

Rust water containerRust Desalinator

Dozownik Wody Tom Butters

W tym tygodniu pracowałem nad dozownikiem wody który wymyślił Howie. Jest to przedmiot do położenia, więc będziecie mogli zmagazynować tyle wody ile chcecie. Dzięki Vincent za twoje wspaniałe tekstury!
Możecie się nim też pobawić.

Uprząż dla Broni/Narzędzi (Koncept) Paul Bradley

Pracowałem nad prymitywnym rozwiązaniem na przyczepianie narzędzi i broni do graczy. Myśleliśmy nad możliwością pojawiania się nowego gracza z podstawową uprzężą, żeby od początku mogli zawieszać włócznie i narzędzia w widoczny sposób.

Rust playerRust player

Żeńskie Ubrania z Materiału Paul Bradley

Jak już mamy zajebiste żeńskie modele Taylora, pomyślałem że można by dodać bardziej kobiece ubrania, zaczynając od plemiennych ciuchów, które szybko można stworzyć z płótna z roślin konopii.

Rust clothes

Wprowadzone zmiany

Dodano benchmarki
Dodano refrakcje pocisku podczas penetrowania obiektów
Dodano menu samo-interakcji gracza (obecnie używane tylko do picia)
Udoskonalono wydajność strumieniowania gracza i śpiącego z serwera
Naprawiono spadki wydajności podczas patrzenia na pobliskich graczy w pewnych sytuacjach
Poprawiono irytujące ułożenie pudeł na półkach
Naprawiono niektóre przedmioty do stawiania, które można było ustawić pod nierealistycznym kątem
Naprawiono rzadko spotykany problem, który mógł powodować unoszenie się zamków szyfrowych przy otwieraniu lub zamykaniu drzwi
Usunięto możliwość zbierania lootu przez małe szczeliny pomiędzy colliderami bloków budynków
Naprawiono problem, który powodował złe ustawienie punktów zderzeniowych po stronie klienta
Usunięto problem, który powodował lewitowanie w powietrzu ładunków C4, gdy się je do siebie przyczepiło
Usunięto niespójne skale kości pomiędzy podglądem modelu gracza i modelem gracza
Usunięto problem, gdzie nadmiar wiadomości czatu mógł powodować zużywanie dużej ilości pamięci
Połączono wiadomości czatu obiektów UI (mniej śmieci)
Naprawiono błąd powodujący świecenie na kalkomaniach pomników w OpenGL
Usunięto migotanie modelu słońca na horyzoncie w OpenGL
Zmniejszono maksymalne nawodnienie o połowę
Zmniejszono maksymalne kalorie o połowę
Czterokrotnie zmniejszono obrażenia od krwawienia
Torba Bota może być uzupełniona ze świata
Zmniejszono koszt Torby Bota
Woda nie dostarcza życia powyżej 40hp
Poruszanie się w kółko/Krążenie zużywa dużo więcej kalorii/wody
Nie można sprintować, kiedy jest się całkowicie odwodnionym
Zwiększono pojemność Wiadra/Beczki
Dodano wodę morską/słoną
Można pić z dowolnego zbiornika wody patrząc na niego i naciskając E
Miotacz ognia znajduję amunicję, jeśli jest założona na pas
*Wymyśliłem te nazwy. Dobra robota, przewinęliście cały post, żeby sprawdzić.

Prawa do wszelkich zamieszczonych we wpisie multimediów należą do firmy Facepunch Studios LTD lub twórców contentu. Wpis ten ma charakter informacyjny, jest skierowany do graczy Rust w wersji polskiej.

The rights to all media included in this blog post belong to Facepunch Studios LTD or the content’s creators. This post is only informative and it is addressed to polish players of Rust.

Facebooktwittergoogle_plusredditpinterestlinkedinmail

Komentarze Facebook

komentarzy. Jeżeli nie widzisz okienka wpisu i komentarzy blokuje je któraś z Twoich wtyczek w przeglądarce. Możliwe też że działasz w trybie incognito gdzie Twoja przeglądarka również blokuje tutaj dostęp.