Ako sa mi dostala do rúk herná sieťovka Killer Xeno tak som hladal čo najobjektívnejší spôsob merania jej výkonu a dopadu tohoto výkonu práve na online hry. Isté jadro metodiky sa mi s pomocou hry Ultima Online podarilo vyvinäť avšak nieje to ešte úplne hotové takže pomoc by sa mi hodila.
1. Nieje možné znížiť ping.
Pokial pri výmene sietovej karty vnímate a aj nameriate lepší ping tak tá čo ste používali predtým musela byť bud vadná alebo velmi velmi stará.
Ping vo väčšine prípadov určuje váš internetový provider v dôsledku toho aká kvalitná je linka a servre ktoré používa.
2. Komunikácia v rámci online hry prebieha na úrovni "Half and quarter-Duplex."
Full Duplex znamená že komunikácia medzi dvoma sieťovými komponentmi prebieha tak že súčastne môže jedna karta posielať aj príjímať dáta.
U online hier mnoho komunikácie klient VS server vyzerá skôr systémom "pošlem príkaz, server mi ho povolí-nepovolí a túto informáciu s výslednými dátami pošle späť".
Rozdiel od úplneho halfduplexu robí ešte to že tomuto sa ešte pripočítajú dáta ktoré server odosiela bez vašej aktivity v hre. To môže byť herný environment (npc) alebo činnosť iných hráčov
V dôsledku tohoto straty na komunikácii činia približne 25-50 percent
3. Actions per second
Aj ked servre s klientmi používajú rôzne formy predikcie pohybu (kedy sa lag utlmí tým že si hra "domyslí" kam sa sa chcete pohnúť) tak väčšina akcií závisí na priamej komunikácii.
Ak mám teda povedzme ping 25 ms tak teoreticky môžem servru odoslať 40 rôznych príkazov za sekundu (1000 / 25 = 40). Treba ale brať v úvahu to že server informácie prevezme, spracuje a odošle späť výsledok. O tento výkon sa teda delia server s klientom (takto znižuje potenciál siete ten približný half duplex). Reálne teda komunikácia Server-Klient pri takomto pingu spracuje len 20 rôznych požiadaviek od klienta, pričom dalších 10 môže server poslať klientovi v rámci zmien v environmente hry.
4. Kedy online hra vyvoláva plynulý dojem?
Možno sa to bude zdať zvláštne ale už pri pingu 250 kde hráč vykoná maximálne 4 akcie za sekundu sa môžu online hry zdať dokonale plynulé. Reálne však práve featury na predikciu pohybu môžu postavou pohnúť niekam kde nestojí, alebo kde nieje čo sa prejaví ako lag.
250ms je totiž považovaná za najrýchlejšiu dobu ludskej reakcie, avšak to znamená že vaša reakcia je navýšená o lag na dvojnásobok.
Pokial by ste sa ale rozhodli bojovať s hráčom ktorý má výrazne lepší ping tak kvôli pingom a aj množstve APS určite prehráte.
5. Metodika Merania
V rámci Ultimy online sme si vytvorili prostredie s nasledovnými vlastnosťami. Dvere na pozemok na ktorý nemám oprávnenie vstúpiť a samotnú plochu. Pri vstupe na túto plochu mi server pošle správu "you may not enter" a posunie moju pozíciu mimo tohoto pozemku o políčko späť.
Najprv nastavím hernú postavičku aby utekala smerom do dverí, Následne dvere otvorím a začnú sa spočítavať hlášky generované servrom. Dvere sa automaticky o 20 sekúnd zavrú a mne ostane na číselníku hodnota s tým kolkokrát sa hláška vypísala. Deleno 20 sekúnd je to aktuálna hodnota Actions per second (APS)
Kolko APS bolo nameraných?
Killer xeno Ping 26-26-32
263
420
350
417
478
503
510 - maximum
505
263 - minimum
280
----
398,9 = 20 APS
Marvell Ping 25-26-40
352
339
367
386 - maximum
315
340
375
311
330
308 - minimum
----
342,3 / 20 = 17 APS
U oboch sieťoviek som test opakoval 10 krát a výsledok spriemeroval. Pingy sú uvedené systémom Min-AVG-MAX. Vo výsledku karta Xeno pridala 3 akcie za sekundu čo činí 15% zlepsenie a zhruba zodpovedá tomu akokeby som u marvel sietovky mal ping 20ms.
Pri dalšom hodnotení sa ukázalo že pri danom pingu nemá karta Xeno v podstate nijakú časovú ani výkonnostnú stratu, a že celá strata na výkone je spôsobená internetom. Teoreticky pri hodnote 25ms, TJ 40 APS teoretických a strate 50% kvôli "halfduplex" chovaniu by sa viac ako 20APS ani nemalo dať namerať.
Pri stave 25 ms na ping to aspoň tak je, avšak otázkou ostáva ako sa tieto hodnoty menia s rôznymi pingami, rovnako je otázkou ako bude reagovať sieťová karta Intel na test ktorej sa ešte chystám.
je teda zisk 3 APS vela alebo málo? Dalo by sa povedať že celkom dosť.
_________________ Immolator:
MB: Abit VH6-T Mod "Immolator" * CPU: Intel Pentium III-S "Tualatin" 1.400 @ 1.628 Mhz 512 L2 Cache * RAM: 1526Mb PQI SDRam 133 @ 155MHz CL2 * VGA: ATI Radeon x850xt 256 Mb * Monitor: IBM G96* Sieť: Intel Pro 10/1000 GT * TV Tuner: Pinnacle 300i * Zvuk: SB LIVE! 5.1 * Repro: Philips A2.5 * SCSI Radič: Adaptec 19160 * SCSI HDD: 2x Seagate Cheetah 15k * SCSI Scanner: Canon 2700f * Zdroj: Enermax 535W * OS: Win98SE SESP1+KEX *
Sharp MZ-800, Z80a. 64kb Ram, 32 kb Vram, QuickDisk, Cassete Recorder. |