Devblog 107

2016-04-21_10-24-14.jpg

W tym tygodniu mamy olbrzymiego devbloga (-.-): pierwsze spojrzenie na ekspresję twarzy (grr, ups i seryjny morderca*), rozszerzyliśmy używalność wody, i możecie teraz udostępniać swoje benchmarki z poziomu gry.
Jest tutaj więcej balansów, ubrań, rzeczy do stawiania, rzygania i wiele więcej.

Mieszanka kształtów twarzy (Taylor Reynolds)

W trwającym wysiłku próbujemy zrobić tak, by gracze Rust'a wyglądali jak żywi, pracuję nad oddychającą mieszanką kształtów. Te mieszanki połączą normalne mapy i cele morph, by uzyskać realistyczne wrażenie skóry i mięśnie poruszające się z kością

(Filmik możecie zobaczyć tu: https://files.facepunch.com/taylor/2016/04/test1 (49).mp4)

Głownie będą używane, do oceny stanu gracza: jeśli ktoś będzie głodny i będzie mu zimno, to będzie wyglądał jak ktoś w depresji, albo jeśli są samotni w ciemności, to będą przestraszeni. Jest duży zakres z tym materiałem, jak możliwość zaawansowanych emotikon, albo wasz awatar wyrażający emocje, w zależności od tego co napiszecie na czacie.

Włosy (Taylor Reynolds) (Matt Isaac)

To jest coś, co idzie ramię w ramię z mieszanką nad którą pracowałam. Nie jest to również konieczny wyznacznik tego, że włosy i brody będą wkrótce wydane, ale jest to bardziej przypadek zapewniający, że wszystko co zrobimy teraz z modelem gracza, będzie w przyszłości kompatybilne z włosami. Są to wczesne testy, głównie sprawdzające, czy włosy działają z motoryką twarzy, specjalnie łącząc wariacje głowy z mieszanką emocji w bardziej efektywny sposób.

(Filmik możecie zobaczyć tu: https://files.facepunch.com/taylor/2016/04/test1 (51).mp4)

Używamy szorstkich siatek, nad którymi Matt pracował chwilę temu, i nadal jest przedmiotem kontroli wydajności, więc wiele może się zmienić. Warto zauważyć, że praca ta obejmuje wszystkie włosy, nie tylko brody, więc nie martwcie się, jeśli jesteście kobietami: też dostaniecie fajny rzeczy.

Słona woda (Maurino Berry)

Dalsze wprowadzenie zeszło-blogowego tematu o beczkach z wodą i kubełkach, znacznie rozszerzyłem system wody. Dodałem słoną wodę, która oczywiście pochodzi z oceanu i nie jest do picia. Wciąż możecie gasić nią pożar, ale wzięcie łyka skutkuje odniesieniem obrażeń i zmniejszenie poziomu jedzenia i wody.

Świeża woda (Maurino Berry)

Świeża woda może zostać znaleziona w jeziorach i strumykach... gruntownie w każdym miejscu powyżej poziomu morza. Działa jak stara woda: uzupełniając wasze nawodnienie i dające małe życiowe korzyści. Jednakże, została znerfiona. by nie dawała powyżej 40 hp. Dodałem również nowy przedmiot, dzban z wodą, który jest gruntownie większą wersją kubełka z wodą.

Aspekty przetrwania (Maurino Nerry)

20160421185830_1.jpg


W nawiązaniu do powyższych zmian, przeszedłem przez nie i zrobiłem kilka zmian do metabolizmu, swoiście będziecie tracić więcej kalorii, przez bieganie przez świat i używanie narzędzi. Również będziecie używać o wiele więcej wody z przedłużających się wymagających aktywności fizycznych i od przebywania w wysokich temperaturach. Jeśli poziom nawodnienia spadnie zbyt nisko, to nie będziecie mogli biegać, dopóki nie weźmiecie łyka świeżej wody i się ochłodzicie. Zmniejszyłem o połowę ilość kalorii/nawodnienia które gracz może składować w ciele. Liczby te mogą być wyłączone i mogą być potrzebne pewne korekty, ale nie powinniście mieć zbyt dużego problemu z znalezieniem źródła świeżej wody, którą można pic bezpośrednio ze świata, poprzez popatrzenie w dół i naciśnięcie E (chociaż oprócz oceanów)

Bukłak (Maurino Berry)

Przebrnąłem przez to i zmieniłem bukłak tak, że pracuje podobnie do kubełka z wodą. To znaczy, że możecie go napełnić przy jakimkolwiek źródle wody i pić bezpośrednio z niego za pomocą LPM, można również użyć jej do ugaszenia pożarów. Posiada pokrywkę, więc możecie zachować ją w swoim ekwipunku na później! Zredukowałem też koszt wytworzenia do 15 skór (zamiast 100 i 30 tłuszczów zwierzęcych, łał). Jako domyślny przedmiot, przedmioty do wytworzenia nie powinny być trudne do znalezienia. Żłopcie!

Nerf krwawienia (Maurino Berry)

Jedną z rzeczy którą nie lubiłem, było krwawienia, które zabijało zbyt szybko. Wykrwawianie się w ciągu kilku sekund, nie jest tym, nad czym myślałem, więc przebrnąłem przez to i znerfinłem to, by robiło o 1/4 obrażeń którą robiło poprzednio. Jeśli jesteście ranni, będziecie mieć czas by wytworzyć bandaż albo by znaleźć kogoś kto was opatrzy. Będziemy musieli zobaczyć jak to zadziała i prawdopodobnie będziemy potrzebowali więcej zmian w balansie. Będę nasłuchiwał.

Pojemność wody (Maurino Berry)

Wraz z wprowadzeniem bukłaku i dzbanku, dwukrotnie zwiększyłem pojemność beczek z wodą i kubełków. by zrobić je bardziej opłacalne dla trzymania/transportu dużych ilości wody. To będzie ważniejsze w nadchodzących tygodniach, gdy dodamy do gry odsalarkę. (zobacz sekcję Howe'ego)

Benchmarking (Garry Newman)

Gdy myślimy, że zwiększyliśmy optymalizację, nie mamy dowodów by to poprzeć. Ślepo strzelamy w ciemności, mając nadzieję trafienia w coś. To jest okropne. Od dłuższego czasu mówiłem, że potrzebujemy benchmarku, i że musimy uruchomić go na tych samych komputerach, na każdym buildzie, i tak w kółko. Tym sposobem możemy porównywać zmiany zestawów do poprzednich i mamy twardy dowód, że ten zestaw kodów jest szybszy od innego.

Więc to jest to, nad czym zaczęliśmy pracować. Założyliśmy kilka serwerów z punktów sprzętowych które chcemy kierować (z tego co zostało leżąc wokół). Więc mamy jeden niskiej specyfikacji, jeden średni, iMac, i kilka innych, wszystkie mają uruchomiony benchmark na każdej wersji Rust'a którą zbudowaliśmy i wrzuciliśmy wyniki na stronę.

Potem możemy iść i zobaczyć, czy wyniki są spójne w całym buildzie.

8422.png


Więc jeśli zaktualizujemy Unity, nie będziemy musieli pytać na Reddit'cie czy wydajność jest lepsza czy gorsza, my już wiemy czy jest jakaś zmiana.

Udostępnij swojego benchmarka

Też możecie zostać zaangażowani: po prostu otwórzcie grę, otwórzcie konsolę i wpiszcie benchmark. Uruchomi to kilka testów, a wtedy otworzy stronę z waszymi wynikami. Możecie udostępnić URL swoim przyjaciołom albo z nami, byśmy zobaczyli jakiego rodzaju wydajność dostajecie. Tutaj jest mój PC do pracy. Jeśli zachowacie swoje wyniki, to będziecie mogli porównać je z wynikami wzdłuż wersji, i napisać nam o jakiejkolwiek zmianie wydajności.

Wydajność gry jest ostatnimi czasy gówniana, i zrobiło się gorzej. Ten system był dla nas ważny by go dodać - nie tylko przez to, że wykrywa pozytywne zmiany - ale powinna również pozwalić nam zidentyfikować i cofnąć zmiany, które sprawiają, że jest gorzej.

Wyniki testów są podawane w milisekundach, gdzie mniejsza jest prawie zawsze lepsza. Dodamy więcej benchmarków z biegiem czasu: gdy będziemy chcieli udowodnić, że coś jest wolne, czy optymalizacja zadziałała itd. Tutaj macie szybkie wytłumaczenie aktualnych testów:

Player Model

Renderowanie i animacja setek modeli graczy. Prędkość ta testuje nasz kod animacji, takielunek i oczek skórowania.

PlayerModelRebuild

Gdy model gracza jest wyświetlany po raz pierwszy, lub gdy gracz zmienia ubranie, my musimy przebudować model. To mógłby być potencjalnie wolny proces, szczególnie gdy odradza się zgraja śpiochów, więc chcemy mieć oko na wydajność tego.

Procmap.Gen

Jak długo trwa generacja mapy proceduralnej? Jest to ogromna większość czasu ładowania aktualnie w Rust'cie. Chcemy to udoskonalić, nie chcemy tego pogorszyć. Czas zależy również od sprzętu, celując w 30 sekund do 3 minut.

ProcMap.Normal

Renderowanie mapy proceduralnej wraz z trawą i dekoracjami, ale bez drzew. Dla mnie jest to zaskakujące, jak wolne to jest, gdyż poprzednio przypuszczaliśmy, że złe klatki był spowodowane budynkami. Jeśli to zwalnia nawet bez budynków, to wtedy będziemy mieli problem.

ProcMap.noGrass

Wielu ludzi narzeka, że przez trawę mają problemy wydajnościowe. Ten test ma raz i na zawsze dowieść, czy jest to słuszne, czy nie.

ProcMap.NoDecor

Dekoracjami są rzeczy takie jak krzaki, kwiatki, driftwood. Ten test jest podobny do testu trawy, chcemy zobaczyć jak bardzo te rzeczy mają wpływ na wydajność, i czy powinny one być włączone, czy nie.

ProcMap.Rain

Czy deszcz powoduje spadki klatek? Historycznie tak, ale czy aktualnie? Badanie to wydaje się sugerować, że deszcz zwiększa klatki... powodem tego może być mgła.

SkinnedMeshCollider

Ten test wystrzeliwuje masę niewidzialnych pocisków w masę modeli graczy, by przetestować szybkość generacji hitboxów. Jest to potencjalnie wolna operacja, i ten sam kod jest używany dla masy innych rzeczy, które potencjalnie mogą być wezwane w każdej klatce.

Dalsza część w poście poniżej!
 
Wydajność (André Straubmeier)

Popracowałem więcej nad wydajnością w tym tygodniu. Naprawiłem błąd, gdzie ekstremalnie mogły spadać klatki, gdy patrzyło się na pobliskich graczy w niektórych sytuacjach, co mogło się zdarzyć, nawet znacznie dalej, od dozwolonego dystansu interakcji. Wciąż zostało trochę miejsca dla optymalizacji w poszyciu siatek, który jest wykorzystywany przez graczy, ale to było z pewnością powodowało najbardziej ekstremalne błędy wydajności. Wyeliminowałem również kolce klatek, spowodowane przez naszą budowę siatki gracza i inicjowanie kolizji, za każdym razem, gdy śpiochy i gracze byli transmitowani przez serwer, które działo się prawie cały czas chodzenia w okolicy.

Menu interakcji (André Straubmeier)

Dodałem nowy koncept interakcji nazwany "self interaction menu". Aż do teraz tylko połączone jednostki dawać menu interakcji, które może zostać wywołane przez kliknięcie lub przytrzymanie klawisza "E". Do picia również potrzebowaliśmy sieciowych interakcji dla statycznych obiektów, takich jak rzeki, jeziora i oceany oraz rozwiązałem to sposobem, w którym gracz otrzymał własne menu interakcji, dostępne pod przyciskiem "E", zawsze gdy nie patrzymy się na inną rzecz z możliwością interakcji. Opcje menu interakcji może być zależne, więc dla picia możemy tylko pokazać takową opcję, gdy jesteście blisko wody.

Aktualnie jest to wykorzystywane tylko przez nowy mechanizm picia, ale być może znajdziemy dla tego inne zastosowanie w przyszłości. Sekcja Maurino posiada informacje o nowym systemie picia.

Irytacja rzeczy do kładzenia (deployments) (André Straubmeier)

Naprawiłem błąd związany z naszym systemem wdrążania. Najbardziej denerwujący był fakt, że niektóre przedmioty do położenia był ekstremalnie trudne do poprawnego położenia, jak skrzynki lub półki. Naprawiłem również kilka exploit'ów, które umożliwiały kładzenie przedmiotów pod kątem z dala sensownego.

Exploit'y plądrowania (André Straubmeier)

Był błąd, przez który ludzie byli w stanie przejąć zawartość skrzynki przez tycie szczeliny pomiędzy zderzakami bloków budowlanych. Już zostało to naprawione.

Załamanie pocisków] (André Straubmeier)

Chciałem to dodać już od dłuższego czasu i w końcu mam czas by to zrobić w tym tygodniu. Pociski od teraz zmieniają swoją trajektorię lotu w dość realistyczny sposób, gdy penetrują obiekty. Trajektoria lotu zależy od podłoża i pocisku.

Screen%20Shot%202016-04-21%20at%2014.42.58.png


Wyrównanie collidera surowców (André Straubmeier)

Z debugowałem błąd, który powodował przesunięcie niektórych obiektów w stosunku do serwera. Było to najbardziej zauważalne na złożach rudy, przez które okazyjnie stawaliście się gumowi gdy staliście na górze, ale również mogło to być problemem dla innych surowców.

Błędy czatu (André Straubmeier)

Było kilka problemów odnośnie renderowania i recyklingu wiadomości na czacie. To mogło powodować spadki wydajności gdy czat był ruchliwy oraz na niektórych zmodowanych serwerach ludzie mogli użyć tego exploita do zjebania wydajności dla innych graczy, lub nawet spowodować crasha. To wszystko jest już naprawione.

Dźwięki wymiocin (Alex Rehberg)

Zrobiłem kilka dźwięków rzygania, w wypadku gdy będziecie tak głupi, by wypić słoną wodę. Zrobiłem kilka dźwięków zbierania się na mdłości za pomocą mojej twarzy i je nagrałem, a następnie zwróciłem grubą zupę z powrotem i pomiędzy czterema miskami. Potem wziąłem te dźwięki, pokroiłem je i złączyłem w całość. Dodałem też wodę wyrzuconą na trawę (którą nagrałem dla kubełka z wodą w ostatnim tygodniu) i kilka plusków po upuszczeniu puree z kantalupy na podłogę, które nagrałem kilka miesięcy temu.

(Dźwięk rzygania: https://soundcloud.com/facepunchstudios/rust-vomit-sample)

Praca nad tym mnie zadowoliło, bo nie mam słabego żołądka, ponieważ to było bardzo ohydne.

Wypolerowane odgłosy kroków (Alex Rehberg)

Nagrałem kilka innych odgłosów kroków w tym tygodniu. Dużą część pracy związaną z aktualizacją dźwięków regularnych odgłosów butów skończyłem. Odgłosy bosych stóp są następne. Jest nieco większe brzemię i przejrzystość dla nich i wiele więcej spójności między różnymi powierzchniami. Również zwiększam liczbę wariacji, która mamy dla każdego typu podłoża. Mamy 4 dźwięki każdego podłoża, i zamierzam przynajmniej to podwoić.

Pracują nad tym wzdłuż mieszanki zmian, więc póki co nie możecie ich usłyszeć w grze, ale tutaj macie małą zapowiedź niektórych nowych dźwięków vs stare dźwięki. Ich dźwięk jest lekko dziwnie zaprezentowany, odkąd pauza pomiędzy dźwiękami jest za długa, ale przynajmniej możecie się poczuć. Usłyszycie stare dźwięki kroków po ziemi, nowe dźwięki kroków, starą trawę, nową trawę, stary piasek, oraz nowy piasek.

(Oto owe dźwięki: https://soundcloud.com/facepunchstudios/rust-footstep-polish-preview)

Mieszanka audio i polerowanie (Alex Rehberg)

W tym tygodniu znowu zmniejszyłem prace nad mixem. Jestem naprawdę szczęśliwy, jak to ładnie łączy się teraz w całość, więc jest dobra szansa, że scalę je z główną gałęzią w następnym tygodniu i kontynuuję rafinację rzeczy w miarę postępów.

Budynki dungeon'ów (Vincent Mayeur)

Dziś skończyłem te budynki i czuję się dobrze! To reprezentowało duży kawał dungeon'owego szarego materiału (niektórzy z was sądzili, że to efekt końcowy). Niektóre budynki zostały jeszcze do skończenia, takie jak wieża ciśnień i kilka średnich struktur. Ogółem to bardzo pomaga w wyglądzie większości dungeon'ów.

dungeons_art_039.jpg
dungeons_art_040.jpg
dungeons_art_041.jpg
dungeons_art_042.jpg
dungeons_art_043.jpg
dungeons_art_044.jpg
dungeons_art_045.jpg
dungeons_art_046.jpg
dungeons_art_047.jpg
dungeons_art_048.jpg
dungeons_art_049.jpg


Dalsza część w poście poniżej!
 
Odnowienie animacji gracza (Minh Le)

Skończyłem konwertować wszystkie stare animacje graczy do nowego system, nad którym zacząłem pracować w ostatnim tygodniu. Nowy system animacji gracza używa o wiele mniej pamięci i jest o wiele bardziej zoptymalizowane. Nowy system naprawia również kilka błędów, gdzie gracz nie celował z 100% precyzją.

Groty strzał/kusz (Minh Le)

Zrobiłem nowe zestawy grotów strzał i kusz, w zależności od wybranego typu strzały, którą wybrał gracz. Groty strzał zostały stworzone przez Toma Buttersa i przyszły w 5 innych smakach. Tutaj macie próbkę jak one wyglądają.
unity_2016-04-21_07-59-32.jpg
download.jpg


Usprawnienia animacji konia/niedźwiedzia (Minh Le)

Podszedłem kilka animacji dla koni i niedźwiedzi i usprawniłem ich animacje ataku. Nowe animacje są znacznie gładsze i mają większa wagę za nimi.

(1 film: http://files.facepunch.com/minhle/2016/April/20/2016-04-20-1115-58.mp4)

(2 film: https://files.facepunch.com/minhle/2016/April/20/2016-04-20-1103-29.mp4)

Podajnik wody i odsalacz (Howard Schechtman)

Pracowałem na kilkoma konceptami nadchodzących struktur graczy do trzymania wody.

waterdispenser_01.jpg


Podajnik wody (Tom Butters)

W tym tygodniu pracowałem nad podajnikiem wody, który zkonceptował Howie. Jest to rzecz do postawienia, więc będziecie mogli składować tam tyle wody, ile będziecie chcieli. Podziękowania dla Vincenta za jego niesamowite tekstury.

Możecie zabrać się na przejażdżkę poniżej!

(Nie byłem w stanie tego wrzucić)

Uprząż na bronie/narzędzia (koncept) (Paul Bradley)

Pracowałem nad prymitywną solucją do przyczepiania broni i narzędzi do graczy. Mówimy o możliwości posiadania prostej uprzęży, gdy gracz się odrodzi, więc będą mogli powiesić narzędzia i podwiesić włócznię na ich ciałach.

RUSTweaponharness1.jpg


Skórzane ubrania dla kobiet (koncept) (Paul Bradley)

Teraz mamy kopiące dupę modele kobiet od Taylor, pomyślałem, że powinniśmy rozważyć dodanie kilku kobiecych ubrań, zaczynając od niskiego-tieru plemiennych typu rzeczy, które mogą być szybko wytworzone z tkaniny z konopi.

RUSTfemalecloth1.jpg


Lista zmian
  • Dodano benchmark
  • Dodano zmianę trajektorii pocisków po penetracji obiektów
  • Dodano menu interakcji dla gracza (aktualnie używane dla picia)
  • Ulepszono wydajność graczy i śpiochów strumieniujących z serwera
  • Naprawiono gigantyczne spadki wydajności podczas patrzenia na najbliższego gracza w niektórych sytuacjach
  • Naprawiono wkurzające kładzenia skrzyń i półek
  • Naprawiono niektóre rzeczy do kładzenia, mogące być położone w nierealnych kątach
  • Naprawiono rzadki błąd, który powodował latanie zamku szyfrowego podczas otwierania lub zamykania drzwi
  • Naprawiono błąd, przez który można było ograbić skrzynkę przez tycią szczelinę pomiędzy blokami budowlanymi
  • Naprawiono błąd, przez który mógł spowodować niepoprawne pozycje collidera gracza
  • Naprawiono błąd, przez który dwie C4 położone obok siebie, blokowały się w powietrzu
  • Naprawiono niespójne łuski kości pomiędzy przeglądem modelu gracza i modelem gracza
  • Naprawiono błąd, przez który wiadomości na czacie mogły zabierać dużo pamięci
  • Obiekty UI czatu są teraz łączone (mniejsze zbiorowisko śmieci)
  • Naprawiono migoczący wzór słońca na horyzoncie w OpenGL
  • Maksymalne nawodnienie zostało zmniejszone o połowę
  • Maksymalne kalorie zostały zmniejszone o połowę
  • Obrażenia o krwawienia zadają teraz 1/4 ich poprzednich obrażeń
  • Bukłak może zostać napełniony ze świata
  • Koszty wytworzenia bukłaku zostały zredukowane
  • Woda nie daje powyżej 40 HP
  • Poruszanie się w okół używa o wiele więcej kalorii/wody
  • Nie można biec, gdy jest się odwodnionym
  • Zwiększono pojemność beczki/wiaderka
  • Dodano słoną wodę
  • Można pić z każdej wody, wystarczy patrzeć się na nią i wcisnąć "E"
  • Miotacz ognia znajduje amunicje, jeśli jest położona na pasku
*Zrobiłem te nazwy. Dobra robota za przewijanie w dół dla wyjaśnienia.
 
Back
Do góry