Lag, Latency og Nettverkskode

Her kan dere diskutere alt som har med Halo 2 å gjøre, inkludert den oppussede "anniversary"-utgaven av spillet.
Svar
Brukeravatar
Oby
Master Sjef
Master Sjef
Innlegg: 7298
Registrert: 05 jan 2004, 21:55
Gamertag: iB l Oby
Sted: Oslo/Fredrikstad
Kontakt:

Lag, Latency og Nettverkskode

Legg inn av Oby »

Ettersom mange spør både her og på andre forum o.l. om hvorfor ting lagger og hva som gjør det, tenkte jeg at jeg skulle skrive en liten FAQ på det hele.

Først vil jeg bare skrive kort forskjellene på nettkodene i de forskjellige Halo-spillene. Vi har nemlig tre hovedtyper, som hver har sitt spill.


Versjon: 1.1



Halo 1 Xbox: Synkron nettkode
Synkron nettkode fungerer egentlig bare på LAN. Her er spillet avhengig av en dedikert oppkobling som ikke brytes. Hvis noe informasjon blir borte, fryser spillet, og informasjonen må sykroniseres før spillet fortsetter. Synkron nettkode fører også til "bullet-delay", der kulene rett og slett ikke treffer der du skyter, og alle som har spilt xbc har vel merket noe slikt. Problemene med denne type nettkode er at den ikke takler de variable forholdene på nettet så bra, og en ping under 20 er nødvendig for veldig gode games. For generelt om inteernett, se Halo 2-delen.

God, engelsk beskrivelse av Halo XBC lag:
The first thing you need to know about lag is EVERYONE who joins has to deal with it in some portion.  If you aren't hosting there is always lag.  There are a few types of lag though that you need to know the difference between.

Movement Lag: This is lag that prevents you from moving correctly as far as running jumping etc.  We suggest that you join games with less than 100 ms ping so you can avoid this lag as much as possible.  If you do encounter movement lag we suggest that you quit out of the game and leave. There is no need to act like a hardass or waste time bickering about it because no one cares.

Bullet Delay: This type of 'lag' is your best friend.  You may not think so at first, but dealing with this 'lag' can make you an incredible halo player.  This delay causes your bullets to shoot behind an object which is moving or shoot in a direction you do intend.

Lag is an online players best friend.  If you want to improve you should join at least 75% of the time.  The reason for this is it will make you become a smarter halo player.  Instead of just blazing away every time you see someone it will force you to hit them with a  grenade before they see you or have your partner blindside them.  When you get good enough that you start winning on other people's host you will notice a huge improvement in your LAN abilities.

Halo 1 PC: Server-side nettkode
I HaloPC ble en mer eller mindre ny type nettkode prøvd ut av Gearbox. Her blir retningen du skyter sendt til serveren, og du får beskjed tilbake om det er en treff eller ikke. På grunn av dette vil man måtte skyte der motstanderen er om ca. 0,3 sekunder. Denne metoden forhindrer hacking, som er et stort problem i f.eks. Counter-Strike (se klient-side nettkode under) ved at man kan lage 'aimboter' som sier at "DU traff X i hodet", og serveren tar det som god fisk. I Halo PC måtte man beregne forholdene, og det føltes som om kulene gikk i 50 km/h. Du så også skuddene traff på bakken på din skjerm, men hørte 'plingene' fra serveren som rapporterte treff. Mye likt problemene på XBC, men om en person lagger ødelegger dette ikke for alle, men bare for den spilleren selv. Serveren mater deg også alltid korrekt informasjon, men man må lese spillet for å kunne treffe folk. 'Warping' er også et problem med slik nettkode, siden den enkelte spillers linje kan rapportere feil til serveren. Problemene med denne typen nettkode er at internett ikke er raskt nok - informasjonen til og fra serveren går ikke raskt nok til å sikre en god nok spillopplevelse. Her kan man også treffe midt i hodet på egen skjerm uten å være i nærheten fra serverens synspunkt. Men, en fordel er at selv ved enormt høy ping kan man alltid beregne laggen og ha sjangs til å treffe - i teorien. Men, Packet loss og annet kan lett knekke idyllen.
Mye infor rundt HaloPC og manglene: http://gbxforums.gearboxsoftware.com/sh ... hp?t=23429


Halo 2 - Client-side nettkode
Så kommer Halo 2, det første spillet med en nettkode som er mer eller mindre klientside. Cheating-problemet er også ganske fraværende (når det gjelder aimbots), siden Xbox LIVE kontrollerer det meste. Selv ved meget høy latency (over atlanteren) er det fortsatt mulig å drepe en person. Din XBox sin versjon av gamet vil også til en hver tid bli trodd av serveren. Skyter du en i hodet skal serveren (i teorien) ta det for god fisk. Ved laggy games kan det resultere i at man blir skutt rundt hjørner. Det er fordi du på din skjerm er rundt, men motstanderen ser de fortsatt på sin skjerm. På en måte kan man si at Client-side produserer "Backside Lag", mens Server-side (HPC) produserer "Frontside lag". Frontside er lettere å beregne, men mer stadig, mens "Backside lag" kun forekommer ved høy ping. Haglas ineffektivitet og andre merverdige hendelser kan komme av at Halo 2's nettkode ikke er 100% klient-basert (dette er også antydet flere steder). Dermed kan noe informasjon bli server-bestemt, til forskjell fra f.eks. CS, som er nesten helt klient-basert.


Generelt om LIVE (fra xbox.xom) - en grei forklaring på hvorfor det oppstår lag:
Alle hater spill som lagger, dvs som har hakking eller reduksjon i farten på spillet.  Xbox Live har vært et stort skritt i retning av å redusere lidelsene. Det er imidlertid dessverre fortsatt mulig å oppleve lag i et spill, og vi får ofte høre fra spillere som ikke forstår hvorfor dette er tilfelle… Xbox Live er tross alt en bredbåndstjeneste, ikke sant?

Ja, Live er så klart en bredbåndstjeneste.  Men det å ha bredbånd betyr bare at ’veien’ informasjonen følger når den går inn i huset ditt er bredere, men ikke uendelig mye bredere. Tenk på Internett som en motorvei som er fullstendig dekket av en trang tunnel. Tenk så på bredbåndsforbindelsen din til Internett som en avkjøring på motorveien. Det er riktignok en litt merkelig avkjøring. Filen som fører til huset ditt kan være seks felter bred, mens filen som fører bort fra huset ditt kan være bare ett felt.  Dette er fordi bredbåndsforbindelser ofte er asymmetriske – dvs. at de ikke er av samme størrelse/hastighet i begge retninger.

Den bredere filen som fører til huset ditt gjør at du kan få mye mer informasjon sendt til huset ditt enn du kan sende ut selv (husk at veien bare har én fil). Dette er grunnen til at du kan laste ned filer mye raskere med kabel- eller DSL-modemet ditt enn du kan laste opp.

Ulike spill oppfører seg også ulikt når det gjelder båndbredde. Ett spill som sender informasjon kan tilsvare et attenhjuls vogntog som kjører opp og ned avkjøringen din, mens et annet kan være en liten, kjapp motorsykkel. For å unngå lag i spillet, må du passe på at veien du bruker har kapasitet nok til å håndtere trafikken.

Når en Xbox fungerer som vert for et spill, må spillet sende informasjon til alle som spiller. Filen fra huset ditt til Internett (dvs. når du laster opp) er den knappe ressursen her. La oss bruke enfeltsveien vi snakket om tidligere.  Å sende en liten bit informasjon fra spillet ditt er som å bruke motorsykler til å levere pakker – ved å bruke flere motorsykler vil du kunne sende informasjon til mange flere spillere enn du må hvis du spiller et spill som sender større pakker som trenger et attenhjuls vogntog for å levere dem. (Du husker den trange tunnelen? Du kan forestille deg at flere motorsykler kan få plass i ett enkelt felt samtidig, og de vil ha mer plass til å manøvrere, mens vogntoget kan oppta hele feltet og kanskje til og med skrubbe oppi taket iblant!)

Å få lagfrie spill er dessverre ikke fullt så enkelt som å bruke båndbredde-vennlige spill (som bruker motorsykler). Du må også ta ’latency’ med i beregningen, dvs. tiden det tar for en pakke å reise gjennom et nettverk. Et uheldig aspekt ved Internett er at veiene trafikken din følger er av høyst variabel kvalitet. Tenk deg at du kjører langs en strak seksfelts motorvei av asfalt, og ligger helt opp mot fartsgrensen, før veien plutselig går over i en humpete grusvei med huller overalt. Du har kjørt denne ruten en million ganger tidligere, og den har alltid vært ypperlig – men ikke i dag, og du skjønner at leveransen kommer til å bli forsinket. Dette er lag i et nøtteskall – en forsinkelse i leveransen av informasjonen. Veien kan plutselig bli litt bedre, men den kan også fortsette å være like ille. Uansett er det en del tilfeldigheter med i spillet som du overhodet ikke har kontroll over, men som påvirker farten og påliteligheten til informasjonen som leveres hjemme hos deg. (Og husk, dette er et separat problem fra antall felter og bredden på feltene i avkjøringen til huset ditt!)

Poenget her er at det finnes faktorer som ingen rår over (heller ikke Xbox Live), men som kan påvirke kvaliteten til et online-spill. Det finnes imidlertid en del ting du kan gjøre for å øke sjansene til å finne et spill som kjører kjapt og velsmurt.

Det beste trikset for å finne et lagfritt spill er å passe på at spillverten enten A) har en høyhastighets oppstrøms-tilkobling (en seksfelts vei fra huset til Internett) som kan håndtere mye trafikk av alle typer, eller B) er vert for et spill med kun maksimal anbefalt trafikk. Et vanlig problem vi ser er at folk ofte prøver å være vert for et spill for flere personer enn det som er anbefalt for spillet. Resultatet er at det blir trafikkork i Internett-avkjøringen deres, informasjonen flyter ikke fritt til (og fra) andre spillere i spillet, og alle deltakerne opplever lag i spillet.

Båndbreddekrav:
Selv om båndbredden ikke er det viktigste, da lite loss og lav latency er über alles når det kommer til nettspill, så har alle spill noen krav. For å kjøre HaloPC dedicated server med 16 personer kreves ca. 600kbps - det vi si 600 ut. At opp tl 1 mbps (1000 kbps) vil gjøre linja mer stabil, men over det vil man merke ingen eller lite forandring. Når det gjelder Halo 2 er kravene mindre. 400 kbps regnes som et krav for spill med 16 mann, og alt opp imot 750 kbps øker stabiliteten. Når det gjelder Halo 1 til xbox, så er tommelfingerreglen 300 kbps + 250 kbps per Xbox som joiner. For 4 xboxer (16 spillere) burde 1 mbps være nok, men hastigheter opp imot 1,5 mbps vil hjelpe på kvaliteten. Alt dette blir dog hemmet om man bruker linja til andre ting (f.eks. PCer som bare står på bruker et par kbps, og har de spyware kan de brått bruke mye mer linje - virusfrie systemer er essensielt for gode forhold).


Host-record i Halo 2

For å feie unna all tvil: Ja, det er en "rankingliste" over folk linjer. Dette er tydeligvis knyttet til Xbox OG gamertag kombinert etter mine erfaringer, og bygges opp både i Custom games og i Matchmaking. I Matchmaking kan man delvis kontrollere hvem sm er host, men host-recorden er essensiell. I Custom games vil Party-leader få host om han har god nok linje til å hoste et game med det antall spillere som er i gamet. Har han en god linje på 700++ kbps ut, så vil han dermed få hosten i nesten alle situasjoner om han lager partyet (å utnevne en som leader har liten eller ingen effekt). Det regnes også som et faktum at amerikanere blir favorisert når det kommer til å få hosten da deres ping til LIVE-serveren er langt lavere enn vi Europeere.


Begrepsordbok:
Lag - Faktisk Hakking - man spretter rundt. Ofte brukt om Latency/høy ping (se under)
Latency/ Høy Ping - Forsinkelse som kan føre til bullet-delay, dreping rundt hjørner osv. (Latency er IKKE lagg på xbc f.eks.  - et game er ikke "laggy" om det er forsinkelse, lagg er når spillet fryser)
Packet Loss - Når informasjon blir borte under overføring på nettet. Kan forårsake lagg.
Dedicated/Dedikert server: En maskin som hoster som ingen spiller på. Mest vanig på PC, men også sett i blant annet Rainbow Six 3 på Xbox.



Legger til mer, og skriver sikkert om litt senere. Kom gjerne med forslag til forbedringer, rettelser og teknisk informasjon jeg kan ta med :)
Sist redigert av Oby den 15 feb 2007, 21:33, redigert 1 gang totalt.
Brukeravatar
WaKKa
Crew
Crew
Innlegg: 1439
Registrert: 13 feb 2005, 19:40
Gamertag: rG WakKa
Sted: Oppegård, Akershus

Lag, Latency og Nettverkskode

Legg inn av WaKKa »

Dedicated servere til CS Xbox også... :P
Bilde
Faking Bull
Medlem
Innlegg: 13
Registrert: 17 jan 2005, 10:41

Lag, Latency og Nettverkskode

Legg inn av Faking Bull »

Takk for mye god info om lag og latency, Oby.

Halo 2 opererer med både host side og klient side nettkode. Når du skyter på en spiller slik at du på din skjerm opplever en treff, vil din xbox sende info om denne treffen til host xboxen. Du trenger mao ikke å treffe det stedet hvor motstanderen er i forhold til den infoen som host xboxen har. Sannsynligheten for at motstanderen er et annet sted enn der du ser han er stor fordi spillet forutberegner spillernes bevegelser for å unngå synlig lagg og etterslep. Problemet er at info om ditt treff sendes hosten. Hosten avgjør så om dette er en lovlig handling i forhold til den informasjonen om spillet hosten har. Denne delen av nettkoden er host side. For eksempel er problemet med rocket og granater som sendes av gårde like før man dør men som aldri eksploderer et utslag av dette. Hosten har allerede registrert deg som død, men før info om din død er nådd deg skyter du en rocket. Rocketen vil da være en ulovlig operasjon som hosten ikke kan tillate. Til sammen utgjør dette et i utgangspunktet godt system.

Problemet er imidlertid at spillet matcher spillere som har ekstrem høy ping til hverandre i samme game. Dette skaper så høy latency (forsinkelse) at nettkoden ikke kan håndtere slik at resultatet blir rettferdig. Hovedproblemet med høy latency skyldes en bug i hvordan matchmaking-prosessen på Live fungerer. Bungies plan var at spillet skulle matche spillere med lav ping mot hverandre. Dette fungerte ikke. Det som skjer nå er at spillet matcher deg med den første og beste spilleren som er tilgjengelig mht level og playlist. Ping-tiden spiller ingen rolle. Det er derfor vi nordmenn blir matchet mot amerikanere selv om det er plenty av europeere tilgjengelig. Bungie har beklaget dette i en Weekly Update men sagt at de neppe kommer til å fikse det.

For tiden er det en engelskmann som jobber med et program som har muligheten til å filtrere bort IP-adresser. Dvs. at dersom matchmaking forsøker å matche deg mot noen med f eks amerikansk IP-adresse, så blir ikke dette videreformidlet din xbox og søket fortsetter. Dersom programmet er stilt inn til å bare akseptere europeiske IP-adresser så forstsetter søket inntil gamet består av kun europeere. Jeg synes det ser lovende ut. For de som er interessert anbefaler jeg å ta en kikk på linken nedenfor.

http://www.bungie.net/Forums/posts.aspx?postID=3483230
Gamertag: Big A112
Når jeg spiller alene og forventer mye lag bruker jeg (tulle)gamertag: Faking Bull
Brukeravatar
Oby
Master Sjef
Master Sjef
Innlegg: 7298
Registrert: 05 jan 2004, 21:55
Gamertag: iB l Oby
Sted: Oslo/Fredrikstad
Kontakt:

Lag, Latency og Nettverkskode

Legg inn av Oby »

Hmm.. Det programmet virket litt ulovlig (se spess svaret fra den ene forum-ninjaen). Men, vi vet vel lite før det blir tatt opp internt i Bungie.

Dessuten må vel PCen stå som router for å kunne filtrere IPene, og dermed blir det ikke heller så utrolig effektivt - jeg tror heller dette vil gjøre mer skade enn det gangner folk for å være ærlig. Cheatere kommer fort til å utnytte dette til det fulleste og kun matche seg selv østover, mot folk med dårligere linjer osv.

Forhåpentligvis retter de opp dette i kommende playlist-oppdateringer e.l.
Faking Bull
Medlem
Innlegg: 13
Registrert: 17 jan 2005, 10:41

Lag, Latency og Nettverkskode

Legg inn av Faking Bull »

Jeg er i grunnen ikke så bekymret for lovligheten av programmet. Jeg vil anta at man selv kan bestemme hvilken trafikk man vil tillate i sitt eget nettverk. Det er nok mange som i dag sitter bak forewaller eller andre former for sperrer som hindrer trafikk til enkelte IP-ranger, f eks skoler, arbeidsplasser mv. Jeg kan vanskelig skjønne at noen kan bannes pga det. Dersom det likevel skulle være ulovlig vil forskjellen på dette programmet og andre sperrer er i alle fall ikke lett å oppdage.

Det er riktig som du sier at man inntil videre må kjøre trafikken gjennom PC ved å bruke to nettverkskort. Mulig at det ikke er mange som har muligheten til dette eller kunnskapen som skal til for å få det til å funke. Sånn sett begrenser det jo utbredelsen. Når det gjelder effektivitet så kan jeg vanskelig forestille meg at slik "bridgeing" vil gi mer enn et par ms i økt latency.

Hvordan programmet vil bli brukt gjenstår å se. Jeg ser faren for at cheatere kan finne måter å utnytte det på. En viss begrensning ligger likevel i at programmet ikke kan påvirke hvem som blir host i spillet. En ensom amerikaner blir neppe host når han spiller mot 7 europere. Men alt i alt ser jeg frem til å kanskje kunne spille rumble pit om kvelden...
Gamertag: Big A112
Når jeg spiller alene og forventer mye lag bruker jeg (tulle)gamertag: Faking Bull
apecat
Medlem
Innlegg: 126
Registrert: 12 okt 2004, 09:49
Sted: Ås

Lag, Latency og Nettverkskode

Legg inn av apecat »

zomg...vakke lang den lista der da Øby ...


<3
¤Charky Catholcninjasg muzitazze¤
permb
Medlem
Innlegg: 13
Registrert: 24 feb 2007, 10:46

Sv: Lag, Latency og Nettverkskode

Legg inn av permb »

Hva vil d si å bridge?? ???
Believe in your dreams
Brukeravatar
arrogaNt oO
Medlem
Innlegg: 988
Registrert: 15 mai 2006, 12:14
Gamertag: arrogaNt oO
Sted: the big B
Kontakt:

Sv: Lag, Latency og Nettverkskode

Legg inn av arrogaNt oO »

jeg er ingen pro, men det det gjør er at du får host hvert eneste game i MM!
Clear eyes, Full hearts - CAN'T LOSE!
Brukeravatar
Oby
Master Sjef
Master Sjef
Innlegg: 7298
Registrert: 05 jan 2004, 21:55
Gamertag: iB l Oby
Sted: Oslo/Fredrikstad
Kontakt:

Sv: Lag, Latency og Nettverkskode

Legg inn av Oby »

Bridging foregikk (visstnok er det umulig etter siste AU) slik:

Man teamet opp 4 stykk, hvorav en person hadde en svært restrektiv brannmur eller evt. iptables satt opp. Personen satte så opp en "tunell" til en annen i sitt party, slik at det er den eneste personen han can joine. Når de søker etter game vil XBL vurdere hvem som skal ha host etter overnevnte kriterier, men når det kun er en person som alle kan joine er valget lett.

Dermed sikrer man seg host hver eneste gang. Møter to bridgende parties i MM, så får de ikke game siden den personen med iptables/brannmuroppsett i det andre partyet ikke kan joine den personen som har fått tunellen i part nr. 1.

Navnet bridging er egentlig dårlig, men det ble brukt fordi man først oppdaget det ved å bruke en Linux-maskin med 2 nettverkskort i bro og iptables for å kontrollere tilkoblingene.
Svar