[UT] Het "Lage netspeed = weinig FPS" probleem.

Pagina: 1
Acties:
  • 157 views sinds 30-01-2008
  • Reageer

  • kamerplant
  • Registratie: Juli 2001
  • Niet online
Hallo twiekers,

Als je lag hebt in Unreal Tournament, wat vrijwel altijd het geval is als je chello hebt, dan kun je het oplossen door je netspeed lager te zetten. Het speelt dan wel minder fijn, maar lag heb je tenminste niet meer. :)

Maar helaas, het aantal fps daalt daarmee ook. Als ik netspeed op 1000 zet, krijg ik 15fps. Op 2000 krijg ik er 30 en op 3000, 50.
Maar hoe hoger ik die netspeed zet, hoe meer lag. :(

Dus mijn vraag is: Hoe kun je gewoon je netspeed lager zetten, zonder dat het aantal fps omlaag gaat? :?

Gezocht? Ja, maar blijkbaar spelen Chello slachtoffers niet zo veel UT. ;)

🌞🍃


Verwijderd

Nee inprincipe niet want de server stuurd minder packages naar je, daardoor heb je ook minder frames.

  • Ramon
  • Registratie: Juli 2000
  • Nu online
Op maandag 29 april 2002 17:04 schreef happyman112 het volgende:
Nee inprincipe niet want de server stuurd minder packages naar je, daardoor heb je ook minder frames.
Lijkt me sterk ;)

dat zou betekenen dat je op een lan een hogere FPS zou halen...

Check mijn V&A ads: https://tweakers.net/aanbod/user/9258/


  • kamerplant
  • Registratie: Juli 2001
  • Niet online
Op maandag 29 april 2002 17:04 schreef happyman112 het volgende:
Nee inprincipe niet want de server stuurd minder packages naar je, daardoor heb je ook minder frames.
Maar is dat niet te patchen? Ik word toch al genoeg benadeeld wegens die lage netspeed. En met 35fps al helemaal!
We zijn toch tweakers, dus moet dit ook te tweaken zijn. ;)
Op maandag 29 april 2002 17:07 schreef Tampie2000 het volgende:

[..]

Lijkt me sterk ;)

dat zou betekenen dat je op een lan een hogere FPS zou halen...
Nee, want dan is de hardware die het limiteerd en niet meer die netspeed. :)

🌞🍃


  • VeldKoe
  • Registratie: Juli 2001
  • Niet online
Op maandag 29 april 2002 17:07 schreef Tampie2000 het volgende:

[..]

Lijkt me sterk ;)

dat zou betekenen dat je op een lan een hogere FPS zou halen...
goed begrepen

  • M1ch
  • Registratie: Januari 2001
  • Laatst online: 14-03-2024
Het is gewoon zo en niet anders...

Op een LAN merk ik ook altijd dat m'n ogen onwijs moeten wennen aan de hoeveelheid FPS die ze te verduren krijgen -> veel meer dan op Inet (door lage netspeed).

  • dvdgrs
  • Registratie: Januari 2002
  • Laatst online: 26-08 11:52
elke fps (of iig data ervan oid) moet naar server worden verzonden.
minder fps --> minder dataoverdracht
lagere netspeed --> minder dataoverdracht --> lagere fps

jullie hebben niet genoeg 56k Q2 gespeeld.

valt nix aan te tweaken

  • DroogKloot
  • Registratie: Februari 2001
  • Niet online

DroogKloot

depenisvanjezus

Behalve bij Q3 want die engine werkt met snapshots :)

  • dvdgrs
  • Registratie: Januari 2002
  • Laatst online: 26-08 11:52
bij q3 moet je ook frames cappen

  • kamerplant
  • Registratie: Juli 2001
  • Niet online
Lekker dan..
Wordt ik eerst kats benadeeld doordat ik met een lagere netspeed speel, wat zowiso al minder speelt.
PLUS nog stukken minder FPS. :r

Nou, kon ik net zo goed m'n TNT2M64 gebruiken... TNT2, GeForce4, het maakt dus allemaal niks uit. :r

🌞🍃


  • dvdgrs
  • Registratie: Januari 2002
  • Laatst online: 26-08 11:52
hi-fps bots fragge :P

  • Ramon
  • Registratie: Juli 2000
  • Nu online
Op maandag 29 april 2002 17:58 schreef BLauWe_BeNGeL het volgende:
elke fps (of iig data ervan oid) moet naar server worden verzonden.
minder fps --> minder dataoverdracht
lagere netspeed --> minder dataoverdracht --> lagere fps

jullie hebben niet genoeg 56k Q2 gespeeld.

valt nix aan te tweaken
elke frame dus? dat lijkt me dus 99999% bullshit.

Check mijn V&A ads: https://tweakers.net/aanbod/user/9258/


  • dvdgrs
  • Registratie: Januari 2002
  • Laatst online: 26-08 11:52
en tog is het waar :)

  • kamerplant
  • Registratie: Juli 2001
  • Niet online
Hmmmz, ik vraag me dan toch af. Is het niet mogelijk om op een of andere manier er voor te zorgen dat per 2 frames, 1 signaal naar de server wordt gestuurd, ipv bij elk frame?
Want laten we eerlijk zijn, dit is gewoon ZOT!

🌞🍃


  • Xtuv
  • Registratie: Oktober 2000
  • Laatst online: 10:28
Op maandag 29 april 2002 18:19 schreef DataBeest het volgende:
Hmmmz, ik vraag me dan toch af. Is het niet mogelijk om op een of andere manier er voor te zorgen dat per 2 frames, 1 signaal naar de server wordt gestuurd, ipv bij elk frame?
Want laten we eerlijk zijn, dit is gewoon ZOT!
Netspeed 3000 is toch wel laag genoeg?
Dan heb je 50fps Maximaal, als ie daar nog onder komt ligt het aan je pc, kom op da's toch genoeg?

Verwijderd

hmmz een maat van me heeft het volgens mij net anders om
./com_maxfps 60 = normale ping 30ms
./com_maxfps 120 = 120 fps maar een 999ms ping :D
da's echt weird

EDIT/ADD :D (voor de 2e keer vandaag) :P

en hij heeft ze rate op
./rate 25000 (staat gelijk aan 25 K)
BTW
als ik com_maxfps 120 doe heb ik nergens last van
(ook rate 25000)
Vage sjit :)

  • dvdgrs
  • Registratie: Januari 2002
  • Laatst online: 26-08 11:52
Op maandag 29 april 2002 19:06 schreef Devilseye het volgende:
hmmz een maat van me heeft het volgens mij net anders om
./com_maxfps 60 = normale ping 30ms
./com_maxfps 120 = 120 fps maar een 999ms ping :D
da's echt weird
das echt logisch, wat zeg ik nou... hoemeer fps hoemeer dataoverdracht hoe hogere ping |:(

Verwijderd

Op maandag 29 april 2002 19:07 schreef BLauWe_BeNGeL het volgende:

[..]

das echt logisch, wat zeg ik nou... hoemeer fps hoemeer dataoverdracht hoe hogere ping |:(
Hoezo??
je verstuurt je fps niet :P
alleen je gegevens (waar je staat ect)
en hoe hoog
bv 128,156,360
128 van oosten
156 van zuiden
360 van HOOGTE ofzo :)
FPS verstuur je niet :D

  • dvdgrs
  • Registratie: Januari 2002
  • Laatst online: 26-08 11:52
|:( FPS stuur je dus wel... nog nooit q2 (of q3 weukveul) online gespeeld met modem? Hoe lagere fps je hebt hoe lagere ping... fps verstuur je dus wel, read up voordat je replied |:(
Ook dat probleem van die maat van je zegt genoeg, lmfd (en die heeft het NIET net andersom ofsow |:( )

  • Lampie
  • Registratie: Mei 2001
  • Laatst online: 05-09 08:51

  • Tim
  • Registratie: Mei 2000
  • Laatst online: 04-08 16:29

Tim

Ik vind het allemaal maar vaag klinken, als ik dus een lagere resolutie instel, dan krijg ik minder lag..
Het lijkt me ook niet logisch dat je een frame verstuurt, eerder wat XYZ + wat andere zooi..

Als een spel serieus gaat wachten op nieuwe data voordat die het volgende beeldje neerzet is dat toch serieus niet goed, verder klopt dat ook niet helemaal, want als ik in UT lag heb dan kan ik gewoon doorlopen, en word dan later gewoon weer teruggezet, en ik weet zeker dat ik dan geen data ontvang van de server

  • Primal
  • Registratie: Augustus 2001
  • Laatst online: 17:15
Nou, dan zal een (game-)programmeur maar even reageren op de meest onzinnige posts (FPS versturen) die ik in dit topic gelezen heb!!!

Unreal Tournament en ook Quake generaties versturen GEEN FPS!!!!! Weten jullie wel hoeveel data dit is per seconde!?!?!?!?!?!?!? Dat is voor een server alleen al NIET te verwerken! En NEE, dat ligt niet alleen aan de connectie die een server heeft!

Integendeel. De enige informatie die verstuurd wordt zijn de posities, status van (bewegende & belangrijke) objecten. In dit geval zijn de spelers & wapens (ook kogels etc.) de belangrijkste zaken in dergelijke spelen. Wat wordt er zoal verstuurd:

-Hoeveel kogels zitten er nog in het/de wapen(s) (voor het geval iemand het heeft laten vallen)
-Waar liggen de wapens, liggen ze er nog of heeft iemand het net voor je neus weggepakt. Dit geldt ook voor ammo, health, shieldbelts etc. etc.
-Positie van de spelers, positie van de kogels/rockets/etc
-Synchronisatie informatie

En zo nog wat andere zaken.
FPS stuur je dus wel... nog nooit q2 (of q3 weukveul) online gespeeld met modem? Hoe lagere fps je hebt hoe lagere ping... fps verstuur je dus wel, read up voordat je replied
Dit-is-ONZIN!! De enige reden waarom je lagere FPS zou kunnen hebben, is omdat je verbinding minder informatie kan versturen/ontvangen als iemand anders die een grotere bandbreedte heeft. Dat de FPS omlaag gaan heeft alleen maar te maken met synchronisatie tussen jou en de server (ofwel andere spelers)! Jou computer ontvangt te weinig informatie (jouw connectie kan de hoeveelheid niet goed verwerken) en DUS wordt ervoor gezorgd (middels synchronisatie) door FPS te skippen, dat je toch een enigzins redelijk beeld van de spelstatus te zien krijgt. Als voorbeeld: stel iemand schiet in UT een raket op 1 kilometer afstand af en jij hebt een 33k6 modem. Doordat jouw connectie de hoeveelheid informatie per sec. niet (goed) kan verwerken, worden frames geskipped zodat jij die raket toch enigzins ziet aankomen en niet dat jij denkt dat ie nog een kilometer ver is terwijl hij al voor je neus staat.

Er ligt hier echter wel een grens. Speelt iemand met bijv. ping 400 en hoger dan zal het synchronisatie process steeds moeilijker worden, worden meer frames geskipped omdat je anders achter gaat lopen tenopzichte van de andere spelers.

Nou, ik heb geprobeerd het allemaal heel basic uit te leggen. Misschien hier en daar wat overgeslagen, omdat ik misschien onbewust verwacht dat het bekend is.

DIT IS DE ENIGE GOEDE UITLEG VAN HET HELE VERHAAL!!!




.Edit
Timpie:
verder klopt dat ook niet helemaal, want als ik in UT lag heb dan kan ik gewoon doorlopen, en word dan later gewoon weer teruggezet, en ik weet zeker dat ik dan geen data ontvang van de server
Dat is dus de synchronisatie waar ik het over had!

"The fastest code, is the code that is never called."


  • dvdgrs
  • Registratie: Januari 2002
  • Laatst online: 26-08 11:52
omfg, doe wat research voordat je deze thread onderblaat! |:(
hij stuurt dus PER FRAME die info (pos enz) dit gebeurt PER FRAME... hoe hoger je fr is hoe hogere ping

en plz zoek het even na ofzo man!

[edit][url="http://www.netdoor.com/quake2/problems.html onder "other lag""]http://www.netdoor.com/quake2/problems.html[/url]onder "other lag"[/edit

  • Primal
  • Registratie: Augustus 2001
  • Laatst online: 17:15
Op maandag 29 april 2002 20:33 schreef BLauWe_BeNGeL het volgende:
omfg, doe wat research voordat je deze thread onderblaat! |:(
hij stuurt dus PER FRAME die info (pos enz) dit gebeurt PER FRAME... hoe hoger je fr is hoe hogere ping

en plz zoek het even na ofzo man!
Ik weet niet op WIE je reageert vriend, maar MIJ HOEF JE HELEMAAL NIKS TE VERTELLEN!!!!! IK ZIT IN DIE GAME-WERELD!!
Waarom reageer je zo gefrustreerd?! Doe eens rustig joh, hou jezelf eens onder controle!

Maar nou ik eens lees wat jij schrijft, lees eens HEEL goed wat ik schrijf en denk dan eens GOED na. Volgens mij bedoel jij hetzelfde als ik, alleen omschrijf je het anders :)

En voor iedereen die wel wil weten hoe het echt zit, zoek het maar eens uit. Ik kan nog maar 1 ding zeggen: Ik kan het weten, zit in de (game) programming wereld en al LANG!

"The fastest code, is the code that is never called."


  • dvdgrs
  • Registratie: Januari 2002
  • Laatst online: 26-08 11:52
:S mijn punt iig is dat er _PER FRAME_ info word verzonden... heb ik gelijk volgens jou?

ow ja, en ik zit ook in de game wereld blabla omdat ik ook klik and play heb en zelf games kan maken :Z

  • kamerplant
  • Registratie: Juli 2001
  • Niet online
Op maandag 29 april 2002 20:28 schreef Primal het volgende:
<KNIP>
Bedankt voor de uitleg. :Y)
Maar jammer dat ik er niet heel veel aan heb aangezien m'n probleem niet is opgelost. :+

🌞🍃


  • Primal
  • Registratie: Augustus 2001
  • Laatst online: 17:15
Ja, sorry Databeest :) Ik heb al eens wat vaker van deze topics hier gezien. Heb je daar niks in kunnen vinden?
Blauwe Bengel:

:S mijn punt iig is dat er _PER FRAME_ info word verzonden... heb ik gelijk volgens jou?
Ja, dat klopt ja. Maar waar jij spaak loopt is op het synchronisatie gebied en DAT is juist het probleem. Want stel dat ik een computer + connectie heb waarmee ik wel 300FPS zou kunnen halen (voorbeeld is absurd, maar ik moet het effe overdrijven), wat doe je dan met de mensen die veel lagere FPS kunnen halen? Want de FPS (van mensen met minder bandbreedte) zijn afhankelijk van de hoeveelheid informatie die je krijgt.
ow ja, en ik zit ook in de game wereld blabla omdat ik ook klik and play heb en zelf games kan maken
Nou reageer je dus weer zo. Heb je ergens last van of zo? Doe eens normaal joh. Misschien kun je nog eens wat leren van iemand, die de moeite neemt om wat op te helderen. En nee, ik zit in de die-hard coding wereld. Alles Assembler/C/C++ (Microsoft Visual Studio, geen MFC), ter geruststelling van jou :) . En jij? Kun jij wel eigenlijk programmeren (sorry dat ik het vraag)?

"The fastest code, is the code that is never called."


  • dvdgrs
  • Registratie: Januari 2002
  • Laatst online: 26-08 11:52
ow ja, je probleem :o
mjah volgens mij(n theorie) is het niet mogelijk om hogere framerate te krijgen met lagere netspeed...

jezt remember one ding:
Chello is beter dan 56k

[reaxie op Primal]hmmmm die reactie van mij:
ow ja, en ik zit ook in de game wereld blabla omdat ik ook klik and play heb en zelf games kan maken
kwam erop neer dat jou reply niet veel toevoegde (van dat jij gameprogrammeur was enzo...). Kom op man, als jij ganeprogrammeur bent hoef je nog niet alles te weten/begrijpen over netcode (heb je er ooit mee temake gehad?).

Ik baseer mijn theorie helemaal op (mijn ervaring met) Q2/Q1 waar het iig wél zo is... Zie ook de link in mn vorige post. Maarja omdat ik het baseer op q1/q2 zou het nu anders kunnen ofsow... Maar dat betekent niet dat mijn verhaal onzin is.
Nou, dan zal een (game-)programmeur maar even reageren op de meest onzinnige posts (FPS versturen) die ik in dit topic gelezen heb!!!
FPS versturen (of info per frame ;)) is géén onzin...

Neej ik programmeer zelf nix... Maar vind dit nu even irrelevant.

En laat mij nou eens horen waar jij jou theorie vandaan hebt?

  • Primal
  • Registratie: Augustus 2001
  • Laatst online: 17:15
Nou dit wordt mijn laatste post wat dit betreft. Dit gaat de verkeerde kant uit, ik lees nogal wat agressie/hooghartigheid in je posts. Je kan ook heel anders reageren op mensen (die jou misschien/waarschijnlijk nog wat kunnen leren ook!), denk daar maar eens over na.
kwam erop neer dat jou reply niet veel toevoegde (van dat jij gameprogrammeur was enzo...). Kom op man, als jij ganeprogrammeur bent hoef je nog niet alles te weten/begrijpen over netcode (heb je er ooit mee temake gehad?).
Kort antwoord: JA!

Ten tweede, ik ben al heel lang game/demo/'serieuzere' applicaties programmeur (en nee, wat ik in deze post ga zeggen is niet bedoeld als opscheppen en dat wil ik bij deze ook niet terugzien bij een eventuele reactie). Programmeer al zo'n jaar of 14, 15. Begonnen op de C64 for your information. Heb daarnaast ook aan de HIO gestudeerd (en afgerond natuurlijk, maar dat terzijde). Ik heb al veel praktijk ervaring opgedaan wat dat betreft. Natuurlijk weet ik ook lang niet alles, wie wel?! Maar met de achtergrond/ervaring die ik heb (en die iedere zichzelf respecterende :) programmeur heeft), kan ik heel goed (globaal) inschatten hoe bijvoorbeeld een bepaalde applicatie (hoeft geen spel te zijn) in elkaar is gezet, wat je ervoor nodig hebt, waarom bepaalde zaken op een bepaalde manier zijn opgezet etc. En ten derde, je hoeft toch niet altijd 'toevoegende' zaken te brengen?! Ondersteunend kan ook goed zijn! En als laatste, ik kan uit dit stukje quote lezen, dat jij mijn post niet goed gelezen hebt.
Maarja omdat ik het baseer op q1/q2 zou het nu anders kunnen ofsow... Maar dat betekent niet dat mijn verhaal onzin is.
Heb ik dat gezegd?! Dacht het toch van niet! (Houd je gemoederen in bedwang, het echte antwoord komt nog :) ).
FPS versturen (of info per frame ) is géén onzin....
Wat ik met onzin bedoelde was het volgende. Volgens mij zijn er nogal wat mensen die denken dat bijvoorbeeld de echte 'frames' (lees plaatjes) over de lijn worden verstuurd. Dat kon ik tenminste opmaken uit een aantal posts die ik gelezen heb in dit topic. Daarop lees ik een aantal reacties waarbij mijn verbazing nog hoger steeg. Vandaar dat ik zei 'Nou, dan zal een (game-)programmeur maar even reageren'. :)
Neej ik programmeer zelf nix... Maar vind dit nu even irrelevant.
Dat is het juist wel. Zie paar alinea's in deze post hierboven (=> ervaring). En wat jij hebt is ook ervaring wat betreft het spelen met een 56K, 28K, kabel etc. :) Maar met de achtergrond/ervaring die ik heb, kan ik het een en ander verklaren en/of uitleggen.
En laat mij nou eens horen waar jij jou theorie vandaan hebt?
Dit is dus niet alleen theorie (geleerd op school), maar ook programmeer c.q. praktijk-ervaring.

"The fastest code, is the code that is never called."


  • dvdgrs
  • Registratie: Januari 2002
  • Laatst online: 26-08 11:52
pompom, nou wat mij betreft ook klaar :)
mwah... databeest zal er wel niet veel aan gehad hebben :)

Toch blijf ik van mening dat het feit of je programmeert hiervan losstaat (tenzij je natuurlijk temaken hebt met netcode/game, maar dat is een ander verhaal).

Idd bedoelde ik _niet_ dat er plaatjes ofzo werden verstuurd, maar ik ging ervan uit dat dit wel voor zich sprak :P ;).

  • Primal
  • Registratie: Augustus 2001
  • Laatst online: 17:15
Op maandag 29 april 2002 22:02 schreef BLauWe_BeNGeL het volgende:
mwah... databeest zal er wel niet veel aan gehad hebben :)
LOL! :) Nee, daar moet ik je gelijk in geven. :) Grappige opmerking :)
Toch blijf ik van mening dat het feit of je programmeert hiervan losstaat (tenzij je natuurlijk temaken hebt met netcode/game, maar dat is een ander verhaal).
Nou, dat heb ik dus (zie laatste post).

"The fastest code, is the code that is never called."


  • dvdgrs
  • Registratie: Januari 2002
  • Laatst online: 26-08 11:52
mjah grappig eigenlijk... we bedoelden allebei (plusminus) hetzelfde... maar je 1e reply schoot mij een beetje in het verkeerde keelgat. Gaf mij een beetje de indruk dat jij alles beter wist enzo... maarja boeien we zijn er uit en er is geen antwoord te geven op databeests vraag dus niemand is er wat mee opgeschoten enzo :D

  • Primal
  • Registratie: Augustus 2001
  • Laatst online: 17:15
Op maandag 29 april 2002 22:24 schreef BLauWe_BeNGeL het volgende:
mjah grappig eigenlijk... we bedoelden allebei (plusminus) hetzelfde...
Zo ongeveer wel ja :)
maar je 1e reply schoot mij een beetje in het verkeerde keelgat. Gaf mij een beetje de indruk dat jij alles beter wist enzo...
Was niet de bedoeling :)

"The fastest code, is the code that is never called."


  • kamerplant
  • Registratie: Juli 2001
  • Niet online
Op maandag 29 april 2002 21:56 schreef Primal het volgende:
Wat ik met onzin bedoelde was het volgende. Volgens mij zijn er nogal wat mensen die denken dat bijvoorbeeld de echte 'frames' (lees plaatjes) over de lijn worden verstuurd. Dat kon ik tenminste opmaken uit een aantal posts die ik gelezen heb in dit topic. Daarop lees ik een aantal reacties waarbij mijn verbazing nog hoger steeg. Vandaar dat ik zei 'Nou, dan zal een (game-)programmeur maar even reageren'. :)
Nee, hehe, dat lijkt me duidelijk dat dat niet zo is.
Dan heb je ten eerste zelf het spel niet nodig, omdat je toch gewoon wat plaatjes binnenkrijgt, en het zou ontiegelijk veel bandbreedte opvreten..
Uitgaande van 300kB per plaatje en 50fps, zou het bijna 15MB per seconde kosten en moet je ook nog wat verzenden... Nou, dat snapt iedereen lijkt me ook wel dat het niet ZO zit. :D :+
Op maandag 29 april 2002 22:02 schreef BLauWe_BeNGeL het volgende:
mwah... databeest zal er wel niet veel aan gehad hebben :)
Nee, ga gerust door. Ik vind het alleen maar leuk en leerzaam om dit allemaal te lezen. ;)

🌞🍃


  • dvdgrs
  • Registratie: Januari 2002
  • Laatst online: 26-08 11:52
mwah, ik ben hier uitgeforummed ;)

  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 04-11 18:00

Sponge

Serious Game Developer

rofl!

Dat is dus NOOIT waar. Als ik 200fps heb, betekend dat dus dat ik 200 keer een packet/seconde verstuur. Ik moet nog een netwerk verbinding tegenkomen die dat voor 10 spelers tegelijk kan.

Ik heb ZEER veel documentatie gelezen over multiplayer programming, omdat ik er zelf mee bezig ben. Als je wilt weten hoe het echt gaat (een van de honderden artikelen)

check :

http://www.flipcode.com/network/issue07.shtml

En anders ga je naar http://www.Gamedev.net of http://www.gamasutra.com

Quadrant Wars verstuurd een packet elke 200ms, de posities worden geinterpoleerd... Merk je het? nee. UT doet hetzelfde...

  • dvdgrs
  • Registratie: Januari 2002
  • Laatst online: 26-08 11:52
Other lag
There are many, many things that can cause lag. If you have a powerful CPU and a high end 3D video card like a Voodoo2 or a TNT based card you will want to limit your frames per second (FPS). You can do this by adding set cl_maxfps "31" to you .cfg file. If you have a very high framerate on a modem connection you can fill up your bandwidth because q2 sends data with every frame.
(http://www.netdoor.com/quake2/problems.html)
Q2 doet dat niet ;)
Overigens heefttie wel playerprediction

  • Primal
  • Registratie: Augustus 2001
  • Laatst online: 17:15
Op dinsdag 30 april 2002 10:48 schreef 41.6C.6D.61.72 het volgende:
rofl!

Dat is dus NOOIT waar. Als ik 200fps heb, betekend dat dus dat ik 200 keer een packet/seconde verstuur. Ik moet nog een netwerk verbinding tegenkomen die dat voor 10 spelers tegelijk kan.

Ik heb ZEER veel documentatie gelezen over multiplayer programming, omdat ik er zelf mee bezig ben. Als je wilt weten hoe het echt gaat (een van de honderden artikelen)
Tja, kijk. Ik probeer het wel 'basic' te houden in mijn post. ;) En ga je wat dieper in op de materie dan heb je gelijk. :)

LET WEL: iedere spel-programmeur heeft toch een beetje zijn eigen opvatting over wat beter is. Het hangt ook sterk af wat de toepassing is waarvoor het gebruikt wordt.
Quadrant Wars verstuurd een packet elke 200ms, de posities worden geinterpoleerd... Merk je het? nee. UT doet hetzelfde...
Dit merk je dus wel degelijk! Wanneer er synchronisatie plaats gaat vinden tussen jou en de server (ofwel de andere spelers), dan kan (let op => 'kan') het zijn dat jij daarna een kleine (of grote in het geval van lag :) ) 'position jump' gaat krijgen. En die syncrhronisatie dient altijd plaats te vinden om de zoveel X ns/ms/sec/whatever you want, om te voorkomen dat mensen (met tragere connecties) dus te ver gaan achter lopen. En juist die synchronisatie zorgt voor de problemen.


En hier houd ik het bij zoals Blauwe-Bengel :) al zei.

"The fastest code, is the code that is never called."


  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 04-11 18:00

Sponge

Serious Game Developer

Ja..er is uiteindelijk een grens. Ik heb iemand gehad die woont op Barbados en die has 25% packetloss, en 3 sec. ping... en dan vindt ie het ook nog vreemd dat het spel het niet doet :)

UT gebruikt een Cubic Spline om het te (extra-)interpoleren... het laat dus niet meteen de packetloss/lag zien, alleen uiteindelijk zie je de spelers heen en weer jumpen omdat er niets meer te interpolren valt behalve te oude packets.

Trouwens, hebben we het niet over frames "as in" snapshots in de URL die ik al eerder gaf?

Anyway, ik kon net niet het update gedeelte in de Q2 source vinden.. kijk straks nog wel eens

  • Primal
  • Registratie: Augustus 2001
  • Laatst online: 17:15
Op dinsdag 30 april 2002 14:08 schreef 41.6C.6D.61.72 het volgende:
Ja..er is uiteindelijk een grens. Ik heb iemand gehad die woont op Barbados en die has 25% packetloss, en 3 sec. ping... en dan vindt ie het ook nog vreemd dat het spel het niet doet :)
Kijk, kijk, kijk. Nu komen we op een ander niveau ;) 3 seconden? Phew, da's niet mis! :) Ik heb zelf eens met ping 500 gespeeld en dat was toch echt niet te spelen vond ik.
UT gebruikt een Cubic Spline om het te (extra-)interpoleren... het laat dus niet meteen de packetloss/lag zien, alleen uiteindelijk zie je de spelers heen en weer jumpen omdat er niets meer te interpolren valt behalve te oude packets.
Precies! Wordt je packetloss te groot, dan krijg je lag. Dat kan kort duren, maar ook wat langer of je wordt niet meer ge-synched. Enigste oplossing dan is disconnect-connect. Wordt je uiteindelijk wel weer gesynchroniseerd, dan gebeurt dat met data vanaf de server!! Dit kun je zien wanneer je lag hebt. Jij loopt vrolijk door in je map en opeens sta je compleet ergens anders of lig je in de lava :) Vaak is dat de (geinterpoleerde/gesynched) positie die de server als laatste van jou heeft.

Je kunt niet in het oneindige blijven interpoleren. De resultaten die je hebt van het interpoleren, wijken af van de werkelijke situatie. En extrapoleren is helemaal een gevaarlijk terrein. Dit kun je dus zeker niet tot in het oneindige blijven doen.

Ander klein voorbeeldje. Je hebt weleens in Unreal Tournament dat je recht achter iemand loopt, en je schiet echt 5 keer op zijn hoofd. Maar je raakt hem niet en de zesde keer wel. Dat zijn dus punten van synchronisatie. Jij hebt dus zitten schieten op iemand die in werkelijkheid een iets andere positie (hoogte) had dan jij zelf.
Trouwens, hebben we het niet over frames "as in" snapshots in de URL die ik al eerder gaf?
Nog niet naar gekeken. Ben je trouwens ook programmeur en zo ja, waarin?

"The fastest code, is the code that is never called."


  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 04-11 18:00

Sponge

Serious Game Developer

Yep.. je moet dus een redelijke packet output hebben (en input krijgen om mooit te interpoleren (en zodat er geen te grote afwijkingen ontstaan), maar het zal nooit gelijk zijn aan je fps (mits die boven de 40 ligt, aangezien UT volgens mij 20-40 packets/sec minimaal verstuurd.).

En ja, ik programmeer :D. In Visual Basic, en zo nu en dan in NASM/MASM (zie sig)

  • Primal
  • Registratie: Augustus 2001
  • Laatst online: 17:15
Zo, dan hebben we met zijn 2en een duidelijke uitleg gegeven, beiden met iets andere woorden maar met hetzelfde doel :)


Kijk dit bedoelde ik dus met
Maar met de achtergrond/ervaring die ik heb (en die iedere zichzelf respecterende programmeur heeft), kan ik heel goed (globaal) inschatten hoe bijvoorbeeld een bepaalde applicatie (hoeft geen spel te zijn) in elkaar is gezet, wat je ervoor nodig hebt, waarom bepaalde zaken op een bepaalde manier zijn opgezet etc.
Waarschijnlijk kan jij dit dus beamen :)

Om even heel kort samen te vatten voor de rest (misschien vergeet ik wat, maar dan horen we het wel) :) :
1. Je ping is in ieder geval niet afhankelijk van je FPS. Andersom kan dit echter wel het geval zijn (in het geval dat je veel packetloss hebt en er veel gesynched moet worden). LET OP: Dit geld uiteraard alleen voor games die geen informatie op een per frame basis versturen.
2. De informatie en de frequentie van het versturen, is geheel afhankelijk van het doel van je toepassing. Een chat-programma zal bijvoorbeeld veel minder frequent informatie moeten versturen (mits goed opgezet) als een game gelijk aan bijv. Quake of UT.


Ik programmeer in Assembler/C/C++ (alleen voor DOS :) & Win32 systemen), maar dat had je waarschijnlijk al gelezen :)

"The fastest code, is the code that is never called."


  • dvdgrs
  • Registratie: Januari 2002
  • Laatst online: 26-08 11:52
this is outta my league :)

  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 04-11 18:00

Sponge

Serious Game Developer

Daar komt het ongeveer op neer..

Dan laten we de details er maar uit over TCP/IP en UDP protocollen, die elk weer anders zijn m.b.t. gegarendeerde packets en de tijd dat het kost om ze over de lijn te krijgen.

Er zit zoveel achtergrond met multiplayer programming, ik ben dus 3(-4) jaar bezig met m'n spel. Waarvan 3/4 alleen maar mislukte netwerk code is..Uiteindelijk heb ik wat hulp gekregen van iemand met het zelfde probleem, hij heeft er voor betaald zelfs.

En ja, je hebt gelijk..als je programmeert denk je anders over dingen na :)... Ik kijk meestal in spellen hoe "het gedaan is" en niet hoe het er echt uit ziet ("Zou dat gras in UT2k2 nou in een (1) vertex buffer zitten, of worden ze allemaal gemaakt door vertex shaders", "worden de textures ge multi-blend of niet", etc. :)

Maar vanwege mijn slechte wiskundige achtergrond hou ik het eerst maar even bij 2D...

  • Taro
  • Registratie: September 2000
  • Niet online

Taro

Moderator General Chat / Wonen & Mobiliteit

Kennis delen > DM

Op maandag 29 april 2002 19:32 schreef Lampie het volgende:
Probeer anders ff wat met je tickrate te spelen.

http://www.nub-clan.de/download/files/netcode_guide.txt

http://www.clanvikings.org/tnse/utstuff.html
Tickrate kan je niet clientside veranderen, dat kan je alleen op de server veranderen, kortom slaat nergens op :)

Kennis delen > DM | Replace fear of the unknown with curiosity | 54 kWh thuisaccu's | Tesla Model Y LR & Model 3 SR+ | 10.660 Wp PV


  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 04-11 18:00

Sponge

Serious Game Developer

staat ook iets in over netspeed..en die kun je wel veranderen ('netspeed xx' in de console)

  • Primal
  • Registratie: Augustus 2001
  • Laatst online: 17:15
Op dinsdag 30 april 2002 19:44 schreef 41.6C.6D.61.72 het volgende:
Daar komt het ongeveer op neer..

Dan laten we de details er maar uit over TCP/IP en UDP protocollen, die elk weer anders zijn m.b.t. gegarendeerde packets en de tijd dat het kost om ze over de lijn te krijgen.
Inderdaad ja. En in 'de tijd dat het kost ...' zitten weer veel andere zaken als:

-wat is de afstand van jou tot de server (incl. andere servers waar je pakketjes weer overheen gaan)
-hoe druk is het op het net
-en zo kun je nog wel even doorgaan.

Wat betreft UDP en gegarandeerde packets ben je in ieder geval zo uitgepraat :)
Er zit zoveel achtergrond met multiplayer programming, ik ben dus 3(-4) jaar bezig met m'n spel. Waarvan 3/4 alleen maar mislukte netwerk code is..Uiteindelijk heb ik wat hulp gekregen van iemand met het zelfde probleem, hij heeft er voor betaald zelfs.
Goh, da's wel jammer. Wat was precies (in het kort) het probleem dan?
En ja, je hebt gelijk..als je programmeert denk je anders over dingen na :)...
Hehe, zie je wel :)
Ik kijk meestal in spellen hoe "het gedaan is" en niet hoe het er echt uit ziet ("Zou dat gras in UT2k2 nou in een (1) vertex buffer zitten, of worden ze allemaal gemaakt door vertex shaders", "worden de textures ge multi-blend of niet", etc. :)
Heb ik inderdaad ook ja!! Zit ik te kijken, zullen ze dit nou in binaire bomen (B-Trees) hebben opgebouwd of zullen ze het in een lineaire array hebben gepland etc etc. :)
Maar vanwege mijn slechte wiskundige achtergrond hou ik het eerst maar even bij 2D...
Ach oefening baart kunst :)

"The fastest code, is the code that is never called."


  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 04-11 18:00

Sponge

Serious Game Developer

Verkeerd interpoleren enzo :) Cubic splines in mijn spel waren niet zo geweldig... Dan heb je nog "dead reckoning" (lijn linear door 'trekken'...zag er ook niet geweldig uit met meer dan 10ms latency, etc..)

Eigenlijk kwam heter ook op neer dat ik dacht dat het makkelijk was, maar dat was het dus duidelijk niet :)

  • kamerplant
  • Registratie: Juli 2001
  • Niet online
Op woensdag 01 mei 2002 10:02 schreef 41.6C.6D.61.72 het volgende:
Eigenlijk kwam heter ook op neer dat ik dacht dat het makkelijk was, maar dat was het dus duidelijk niet :)
Jij kan tenminste al 2D spul maken.. ;)

🌞🍃


  • Primal
  • Registratie: Augustus 2001
  • Laatst online: 17:15
Op woensdag 01 mei 2002 10:02 schreef 41.6C.6D.61.72 het volgende:
Verkeerd interpoleren enzo :) Cubic splines in mijn spel waren niet zo geweldig... Dan heb je nog "dead reckoning" (lijn linear door 'trekken'...zag er ook niet geweldig uit met meer dan 10ms latency, etc..)
Ajjj..... :)
Eigenlijk kwam heter ook op neer dat ik dacht dat het makkelijk was, maar dat was het dus duidelijk niet :)
LOL! :) Ja, dat soort dingen heb ik ook vaak zat (gehad :) ). Toen ik nog in het vroege DOS tijdperk probeerde om rechtstreeks de SoundBlaster aan te spreken bijvoorbeeld. Het enige dat ik had was een lijst met de register-functies (in het kort: play, stop, reset) van de kaart zelf en dat was het. Die functies daar was nog wel uit te komen, maar met de 'auto-detect' functie (moest je zelf schrijven) heb ik een hoop crashes gehad. Dan initialiseerde je een interrupt, begon je bijv. op 3, daarna 5 etc. Laad je een stukje geluid in en speelde je dat af via DMA (zelf routines schrijven om DMA te initialiseren, resetten, starten). Nu was het dus eigenlijk de bedoeling dat, als het de verkeerde interrupt was, dat het stukje geluid niet afspeelde en kreeg je een (naar ik me probeer te herinneren) een foutmelding terug. Mwa, dat kwam dus niet zo nou :) Je had een aantal mogelijke situaties die zich voor konden doen:

1) Het geluid speelde zeer vaag af + crash
2) Je hoorde gekraak + crash
3) Je hoorde nisk + crash
4) Crash
5) "Wat?! Het werkt! Yes, snel nog eens proberen!" -> goto punt 1 :)

Dit was dus ook de reden waarom er altijd bij de setups van spellen stond: "Autodetect WARNING, it is possible that your computer stops responding ..."
Voor degene die het nog weten :)
Jij kan tenminste al 2D spul maken..
En dat kan al behoorlijk tegenvallen hoor! :) Je maakt altijd wel een keer een verkeerde inschatting, denkfout etc. Met wat demo's en spelletjes heb ik (samen met wat vrienden) de nodige zaken helemaal verknald (opzet van je library klopte niet goed bijv.), zodat je weer overnieuw kon beginnen.

Ik heb eigenlijk het hele process al doorlopen. Ik ben begonnen op de C64 (daar alleen maar grafische demo's gemaakt, geen geluid), toen naar PC. DOS => de hele mikmak geluid, grafisch, alles. Win32 => idem. Maar sinds de komst van DirectX is wel het een en ander veel eenvoudiger geworden. Ik ben blij dat ik vanaf de 'hardcore' low-level code ben begonnen (bijv. met SB aansturing), daardoor heb je toch een wat beter overzicht over wat DirectX/OpenGL (grafisch)/etc. voor je 'onder water' doet. Maar goed... Tegenwoordig zit ik in de 3D kant.

Altijd leuk om van andere programmeurs ervaringen te horen. :)

"The fastest code, is the code that is never called."


  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 04-11 18:00

Sponge

Serious Game Developer

Ach, je had mijn eerste spel moeten zien.. zag er wel redelijk uit (ik heb anderen gezien die het (veel) beroerder deden :)), alleen er zat geen FPS limiet op.. en het was voor een wedstrijd. Geen wonder dat ik verloor..was onspeelbaar op alles boven een P-100.

Voor Quadrant Wars heb ik Direct3D gebruikt, was eerst een 3D versie.. daarna van 3D naar 2D, met DirectDraw... toen weer van DirectDraw naar DirectGraphics (dx8), en dan zijn we in 2002 :)... op dit moment zo'n 30000 regels code.

Ik wordt ook een beetje 'zat' van QW.. ik wil er van af... en dan bedoel ik het helemaal af te maken :)

Trouwens, Databeest.. weet niet of je kunt programeren, zoniet... ja, dan duurt het even als je iets wilt maken (verwacht geen UT :)).. Zo ja: Er zijn genoeg tutorials op internet : )...

Trouwens Primal..in die oude tijd was het inderdaad een stuk lastiger :) Je moest alles zelf uitvogelen, geen tutorials ofzo. toen ik begon met programmeren (14-15, un 18), moest je alles uit de helpfiles halen, als die er al waren... internet as we know it bestond toen nog niet :). Vooral de eerste jaren met VB en DirectX waren lastig. Alles moest via typelibs die iemand gemaakt had (Patrice Scribe)..en verder wat C++ documentatie met allemaal dingen die de TypeLibs niet ondersteunde.

Maar toch vindt ik het zeer interessant om gewoon te denken hoe iets werkt. Als je bijv de *.U files van UT opent krijg je gedeeltelijk C++ scripts te zien... wel interessant als je dat kunt zien, en ziet hoe zij bepaalde dingen opgelost hebben (zoals de prioriteiten van updates mbt. de netcode, zoals op de Unreal Tech page staat)

  • Mister_X
  • Registratie: Februari 2000
  • Laatst online: 26-10 10:22
Op maandag 29 april 2002 20:41 schreef Primal het volgende:

[..]

Ik weet niet op WIE je reageert vriend, maar MIJ HOEF JE HELEMAAL NIKS TE VERTELLEN!!!!! IK ZIT IN DIE GAME-WERELD!!
Waarom reageer je zo gefrustreerd?! Doe eens rustig joh, hou jezelf eens onder controle!

Maar nou ik eens lees wat jij schrijft, lees eens HEEL goed wat ik schrijf en denk dan eens GOED na. Volgens mij bedoel jij hetzelfde als ik, alleen omschrijf je het anders :)

En voor iedereen die wel wil weten hoe het echt zit, zoek het maar eens uit. Ik kan nog maar 1 ding zeggen: Ik kan het weten, zit in de (game) programming wereld en al LANG!
doe allebei eens even rustig, en omdat JIJ in de game-industrie zit wilt toch niet zeggen dat JIJ alles al weet?

  • Primal
  • Registratie: Augustus 2001
  • Laatst online: 17:15
Op woensdag 01 mei 2002 20:39 schreef Mister_X het volgende:

[..]

doe allebei eens even rustig, en omdat JIJ in de game-industrie zit wilt toch niet zeggen dat JIJ alles al weet?
Ehm .... het is ALLANG uitgepraat en zand erover hoor! Een 'heel klein beetje' een late reactie :z

"The fastest code, is the code that is never called."


  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 04-11 18:00

Sponge

Serious Game Developer

Ik las die post eens... wist je dat UT bijv bij de minigun ook niet alle kogels afzonderlijk verstuurd, maar een "cone" gebruikt? Hoe meer van het centrum verwijderd, des te lager de damage..en de damage is ook nog eens redelijk random.

  • Primal
  • Registratie: Augustus 2001
  • Laatst online: 17:15
Op woensdag 01 mei 2002 20:32 schreef 41.6C.6D.61.72 het volgende:
Ach, je had mijn eerste spel moeten zien.. zag er wel redelijk uit (ik heb anderen gezien die het (veel) beroerder deden :)), alleen er zat geen FPS limiet op.. en het was voor een wedstrijd. Geen wonder dat ik verloor..was onspeelbaar op alles boven een P-100.
Ach troost je ;), vrijwel alle oude spellen van voor het 486 tijdperk hadden die limiet niet. Eigenlijk dacht niemand erover na dat de spelletjes misschien later nog eens op computers zou worden gespeeld die 15, 20, 50 keer sneller waren.
Voor Quadrant Wars heb ik Direct3D gebruikt, was eerst een 3D versie.. daarna van 3D naar 2D, met DirectDraw... toen weer van DirectDraw naar DirectGraphics (dx8), en dan zijn we in 2002 :)... op dit moment zo'n 30000 regels code.
Dat is al aardig wat. Maar heb je dan ook naar efficiente etc. gekeken? Of komt dat in een later stadium om de hoek kijken?
Ik wordt ook een beetje 'zat' van QW.. ik wil er van af... en dan bedoel ik het helemaal af te maken :)
Ik ken dat :) Ik heb ook weleens tijden dat ik een heel stuk minder fanatiek ben in het thuis hobby-programmeren. Dan laat ik het weleens 5, 6, 8 weken liggen. Dan kom ik terug en dan denk ik: "tjonge, dit kan toch heel anders opgezet worden". En vervolgens herschrijf je de (helft) van je code :)
Trouwens, Databeest.. weet niet of je kunt programeren, zoniet... ja, dan duurt het even als je iets wilt maken (verwacht geen UT :))..
Nee, dat is toch wat 'te hoog' gegrepen :) Maar ja, die werken er ook niet alleen aan natuurlijk.
Trouwens Primal..in die oude tijd was het inderdaad een stuk lastiger :) Je moest alles zelf uitvogelen, geen tutorials ofzo. toen ik begon met programmeren (14-15, un 18), moest je alles uit de helpfiles halen, als die er al waren... internet as we know it bestond toen nog niet :).
Sterker nog, Internet was hier in Nederland nog helemaal niet voor 'public' use toen ik (begonnen met jaar of 10) bezig was (C64, DOS (was ik al ouder), begin Win32). En inderdaad, alles uit helpfiles (en wat boeken, die zelden van een goed niveau waren vond ik persoonlijk. Maar misschien kwam dat ook door mijn jeugdigheid :) ) en maar klungelen. Het meeste heb ik toch echt geleerd door zelf bezig te gaan en later natuurlijk ook aan de HIO. Het prettigst vind ik het, als ik ergens alleen maar de minimale basis van kan lezen in een boek, tutorial, etc. En de rest zoek ik zelf wel uit, leer ik het meest van.
Vooral de eerste jaren met VB en DirectX waren lastig. Alles moest via typelibs die iemand gemaakt had (Patrice Scribe)..en verder wat C++ documentatie met allemaal dingen die de TypeLibs niet ondersteunde.
Hehe, da's inderdaad een stuk lastiger. Heb ik me nooit gerealiseerd, omdat ik dus in C/C++ programmeerde. Ik wist/weet wel dat de ondersteuning voor DirectX in VB wat te wensen over laat. Ik geloof dat sommige dingen zelfs niet mogelijk zijn in VB. Klopt dit?
Maar toch vindt ik het zeer interessant om gewoon te denken hoe iets werkt. Als je bijv de *.U files van UT opent krijg je gedeeltelijk C++ scripts te zien...
Da's inderdaad leuk om te zien. Daar kun je ook veel van leren als je er over na gaat denken. Dan zie je inderdaad iets als prioriteiten en dan denk je: 'waarom hebben ze dat zo gedaan? Wat is het voordeel? Wat zou een nadeel zijn als het niet zo was?'.

"The fastest code, is the code that is never called."


  • Primal
  • Registratie: Augustus 2001
  • Laatst online: 17:15
Op woensdag 01 mei 2002 20:55 schreef 41.6C.6D.61.72 het volgende:
Ik las die post eens... wist je dat UT bijv bij de minigun ook niet alle kogels afzonderlijk verstuurd, maar een "cone" gebruikt? Hoe meer van het centrum verwijderd, des te lager de damage..en de damage is ook nog eens redelijk random.
Nee dat wist ik niet. Maar het lijkt me in ieder geval wel logisch. Met al die losse kogels zou veel te veel data over de lijn gaan. Daarbij komt ook nog eens dat mocht er een packetloss komen, dat bij iemand bijv. maar 3 kogels van de 20 aankomen (ik overdrijf weer maar goed). Dan gaat het al mis. Zo'n [i]cone[/b] zal dan waarschijnlijk gewoon een stuk volume beschrijven, am I correct?

"The fastest code, is the code that is never called."

Pagina: 1