Pytanie:
Co to jest kleszcz?
korrasaur
2015-03-18 00:27:45 UTC
view on stackexchange narkive permalink

Co to jest tik?

Słyszałem wiele przypadków tików. Na przykład ludzie powiedzą, że dema są nagrywane w 16 taktach, że serwery działają w 64 taktach, ale naprawdę dobre serwery będą działać w 128 taktach.

Nie rozumiem dokładnie, co to jest tyknięcie. Dlaczego posiadanie wyższych potęg 2 byłoby lepsze? Widziałem wiele wątków na temat proszenia Valve o dodanie serwerów z wyższym tikiem, ale co daje ci wyższy „tick”?

Owad wysysający krew.Gdy napotkasz dużą liczbę, masz polikliki, co wiele wyjaśnia.
@MasonWheeler Widzę, co tam zrobiłeś
Dźwięk, który wydaje zegar analogowy podczas odliczania sekund.
Pięć odpowiedzi:
user101016
2015-03-18 01:15:34 UTC
view on stackexchange narkive permalink

Co to jest tik?

Aby zrozumieć znaczenie tiku, musisz najpierw dobrze zrozumieć pętlę gry. W standardowej pętli gry masz trzy główne funkcje:

  1. Przetwarzaj dane wejściowe użytkownika
  2. Aktualizuj stan gry
  3. Renderuj na ekran
  4. Będą się powtarzać przez całą grę. W pętli znajdują się elementy sterujące, dzięki czemu 2 różne elementy sprzętu (np. Komputery PC) nie uruchamiają pętli z różnymi szybkościami. Jest to również ważne w konfiguracjach serwera-klienta, takich jak Counter-Strike, aby wszyscy klienci działali zsynchronizowani. Częstotliwość taktowania służy do kontrolowania częstotliwości aktualizacji stanu gry. Częstotliwość odświeżania 60 aktualizowałaby stan gry 60 razy na sekundę. Często zobaczysz tę liczbę przedstawioną jako ticks , tickrate , ticks per second and tps .

    Zwróć uwagę, że renderowanie na ekranie jest często kontrolowane w inny sposób (często pojawia się 60 klatek na sekundę lub 60 fps ). Złożone pętle próbują rozdzielić częstotliwość taktowania i liczbę klatek na sekundę, aby dłuższy czas przetwarzania nie powodował skoków w grafice. Mimo że są połączone, ważne jest, aby zrozumieć, że aktualizacje gry (kontrolowane przez tiki na sekundę ) różnią się od aktualizacji ekranu (kontrolowane przez klatki na sekundę ).

    Niektóre gry online, takie jak Titanfall, mają znacznie niższe tickrates (20). Oznacza to, że w każdej sekundzie świat gry był aktualizowany 20 razy i renderowany na ekranie 60 razy (zakładając 60 fps ).

    Widziałem wiele wątków na temat proszenie Valve o dodanie serwerów z wyższym tikiem, ale co daje wyższe tikowanie?

    Wysoki współczynnik tikowania sprawi, że gra będzie wyglądać na bardziej responsywną, ponieważ Twoje działania (poruszanie się, strzelanie itp.) są odzwierciedlane w stanie gry bardziej regularnym. Jest jednak bardziej wymagający na twoim komputerze / serwerze i potencjalnej sieci klienta.

    W przypadku wyższej częstotliwości taktowania maszyny niższej klasy mogą mieć problemy. Ponadto, w zależności od kodu sieciowego (który może być zoptymalizowany dla 60 zamiast 100+), możesz zobaczyć inne błędy związane z synchronizacją, problemy z liczbami zmiennoprzecinkowymi itp.

    Krótko mówiąc, wyższy współczynnik taktowania przyniesie korzyści klienci mogą nadążyć (z procesorem i przepustowością). Jeśli to się nie uda, napotkają więcej lagów / problemów niż na serwerze 60 ticków. Ponadto koszt będzie wyższy dla serwerów, aby działały z wyższymi częstotliwościami taktowania (plus koszty przepustowości, ponieważ częściej aktualizujesz klientów).

    Inne gry z serwerami dedykowanymi będą miały znacznie niższe wskaźniki taktowania niż 60, zarówno po to, aby zwiększyć widownię (więcej osób zdolnych do pracy bez problemów), jak i zmniejszyć koszty. Gra nie reaguje tak szybko, jak gra / serwer o wyższej częstotliwości taktowania, co jest bardzo niewielkie, biorąc pod uwagę, że mówimy o szybkości aktualizacji 20 lub 60 razy na sekundę. Ile razy możesz kliknąć myszą w ciągu jednej sekundy?

    Więcej informacji:

Znany jest fakt, że EVE Online to gra czasu rzeczywistego, która działa z prędkością 1 ticka na sekundę, aw sytuacjach obciążenia serwera spowalnia do 1/10 ticka (ma to miejsce, gdy kilka tysięcy graczy walczy ze sobą w jednym miejscu).Jednak nie stanowi to większego problemu, ponieważ szybkie reakcje dają pierwszeństwo lepszej taktyce i przygotowaniu do godzinnej walki.W grach TBS „tick” może nastąpić w ciągu kilku minut, więc nie wszystkie gry korzystają z wysokich wskaźników taktu.
@Ordous Podejrzewam, że nawet gry TBS mają współczynnik tikowania, mimo że działania gracza nie są z nim bezpośrednio powiązane: byłby potrzebny do renderowania ładnych animacji, jeśli nic innego.
Sean Allred
2015-03-18 03:11:14 UTC
view on stackexchange narkive permalink

Mówiąc najprościej, `` tik '' dotyczy najmniejszego czasu, z jakim silnik gry ma do czynienia - jest to liczba dyskretnych kroków, które gra może przejść w ciągu jednej sekundy. Przy wyższym współczynniku taktowania fizyka gry może wydawać się płynniejsza lub bardziej realistyczne, ale wiąże się to z dużymi kosztami mocy obliczeniowej.

W innym sensie jest to liczba „próbek” pobranych z (teoretycznego) scenariusza z rzeczywistego życia. Im więcej próbek pobierasz, tym mniej skokowe są dane.

Powerlord
2015-03-18 01:26:50 UTC
view on stackexchange narkive permalink

tickrate serwera to liczba klatek w grze, które serwer przetwarza w ciągu jednej sekundy. Czasami jest to również określane jako serwer FPS, co jest mylące, ponieważ serwer nadal ma polecenie max_fps .

W każdej klatce gry gra wywołuje metodę GameFrame jednostki ( jeśli ma) do przetwarzania dowolnej logiki gry. W przypadku pocisków, graczy, drzwi itp. Obejmuje to przetwarzanie fizyki. W tej chwili gra ma również wewnętrzną logikę ... a wszelkie wtyczki Valve Server (VSP), takie jak MetaMod: Source i SourceMod, mogą również przechwytywać własne wywołania GameFrame (w przypadku SourceMod jest to używane dla timerów SourceMod i wszelkich wtyczek, które mają Haki OnGameFrame).

Jak można się domyślić, im wyższa jest ustawiona częstotliwość taktowania, tym więcej mocy procesora będzie zużywać gra.

Nie zawsze musi to być potęga W rzeczywistości, niektórzy właściciele serwerów CS: GO przysięgają na 102 / 102,4 taktów zamiast domyślnych 64 i 128 taktów. Twierdzą, że to sprawia, że ​​wydajność serwera jest bardziej spójna i zmniejsza skoki procesora.

Jednak mogło się to zmienić, gdy Valve zaktualizowało grę.

Pamiętaj, że samo ustawienie szybkości taktowania nie poprawi wrażeń graczy. Musisz także upewnić się, że stawki są ustawione prawidłowo dla dostępnej przepustowości.

Podobnie jak w innych grach Valve, wiele z nich używa zablokowanych częstotliwości taktowania:

  • 30 klatek w grze na sekundę
    • Left 4 Dead
    • Left 4 Dead 2
  • 66 klatek w grze na sekundę
    • Day of Defeat: Source
    • Counter-Strike: Source
    • Team Fortress 2

66 klatki na sekundę gry nie zawsze były zablokowane na 66. Valve zmieniło to jakiś czas temu po wprowadzeniu zmian w kodzie gry. Te zmiany sprawiły, że niektóre gry (w szczególności TF2) były znacznie bardziej wrażliwe na zmiany częstotliwości kleszczy ... ustawienie zbyt wysokiego lub zbyt niskiego zmieniło prędkość otwierania / zamykania drzwi i powodowało problemy.

Na marginesie, tickrate serwera i tickrate klienta mogą nie być takie same.Klient może ograniczyć częstotliwość otrzymywania ramek z serwera („cl_updaterate”).Powiedziawszy to, serwer może ustawić minimalne i maksymalne wartości dla tych ustawień (`sv_minupdaterate` i` sv_maxupdaterate`).Bez względu na to, jakie wartości minimalne i maksymalne ustawisz, serwer będzie przetwarzał klatki z gry typu „-tickrate” na sekundę do najbliższej liczby milisekund (tj. 66 klatek na sekundę to 1000/66 lub 15 ms).
Jak więc wysoki tickrate zamienia się z powrotem w niższe tick rate, w przypadku, gdy demo jest robione na serwerze Valve (ponieważ wszystkie dema są najwyraźniej robione z 16 tickami).
@0-framelinks Plik .dem po stronie klienta zawiera wszystkie pakiety, które klient otrzymał i tym samym zapisałby w jakimkolwiek `cl_updaterate` używanym przez klienta (zakładając, że ich` rate` był wystarczająco wysoki, aby go utrzymać).Plik .dem po stronie serwera utworzony za pomocą SourceTV / GoTV po stronie serwera (przy użyciu `tv_record`) zawiera znacznie więcej informacji, ponieważ rejestruje wszystko, co dzieje się w każdej klatce gry na całej mapie i nie ma ustalonej perspektywy.
Zwróć uwagę, że tickrate i framerate są często oddzielone.Wiele gier ma znacznie wyższy FPS niż TPS, a DwarfFortress ma znacznie wyższy TPS niż FPS.
TheFaster
2015-03-18 00:30:28 UTC
view on stackexchange narkive permalink

Z forum Counter-Strike:

Podczas każdego tiku serwer przetwarza przychodzące polecenia użytkownika, przeprowadza fizyczną symulację, sprawdza zasady gry i aktualizuje wszystkie stany obiektów. Po zasymulowaniu taktu serwer decyduje, czy klient potrzebuje aktualizacji świata, i w razie potrzeby wykonuje migawkę aktualnego stanu świata. Wyższa częstotliwość taktowania zwiększa precyzję symulacji, ale wymaga również większej mocy procesora i dostępnej przepustowości zarówno na serwerze, jak i kliencie.

Proszę podać swoje źródło.
Co to jest precyzja symulacji?Nie do końca tego rozumiem
No to jedziemy.Miałem to w schowku, po prostu zapomniałem połączyć.Dzięki.
@0-framelinks Cóż, jeśli więcej obliczeń jest wykonywanych na sekundę, otrzymasz dokładniejszą i dokładniejszą symulację, prawda?
Zasadniczo zaznaczenie oznacza, jak dokładne informacje są przekazywane do serwera od klienta?
@0-framelinks Tak.Zasadniczo zmniejsza wszelkie opóźnienia między tym, co robi gracz, a tym, co znajduje odzwierciedlenie w świecie.
Valid
2015-03-19 01:15:02 UTC
view on stackexchange narkive permalink

Za jednym kliknięciem silnik gry przetwarza wszystkie działania (wykonane przez użytkownika, sztuczną inteligencję lub inny proces wewnętrzny) i odpowiednio aktualizuje stan i lokalizację wszystkich obiektów na świecie. Silnik renderujący przyjmuje wszystkie stany i lokalizacje i wyświetla obiekty na ekranie, korzystając z Twojej lokalizacji na świecie. W przypadku samodzielnej gry zwykle występuje renderowanie na takt. W przypadku gry online relacja zależy od gry - np. Twój klient World of Warcraft otrzymuje informacje o stanie i lokalizacji z serwera, a lokalna maszyna po prostu renderuje obiekty we własnym tempie.



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...