Netwerk game: Wie is eerder?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Koozza
  • Registratie: November 2007
  • Laatst online: 02-09 20:54

Koozza

Wâ voor drop? GAS D’ROP!

Topicstarter
Ik zit al een tijdje met het idee een game te maken met een netwerk functie erin (LAN/Internet). Nu heb ik alles uitgedacht maar ik loop keer op keer met denken tegen een probleem aan: Wie heeft een zet eerder gedaan?

In de game kunnen 2 spelers op hetzelfde moment een object beinvloeden. Nu is het zo dat wie het eerst komt wie het eerst maalt, en de ander heeft dus pech. Nu is het probleem dat je altijd een ping hebt, en dus niet accuraat kan bepalen wie er eerder was. Hoe kun je dit oplossen?

Ik heb zelf gedacht aan een timestamp meesturen met je zet, maar dan moeten bijde spelers wel de zelfde timestamp hebben, of de timestamps moeten precies evenhard oplopen.

Kan iemand mij hier wat advies over geven?


Thijs

Acties:
  • 0 Henk 'm!

  • Fish
  • Registratie: Juli 2002
  • Niet online

Fish

How much is the fish

externe tijd gebruiken.

pool.ntp.org ?

Iperf


Acties:
  • 0 Henk 'm!

  • Koozza
  • Registratie: November 2007
  • Laatst online: 02-09 20:54

Koozza

Wâ voor drop? GAS D’ROP!

Topicstarter
Ja, maar zit je er dan niet mee dat ook dat ophalen tijd kost?

Acties:
  • 0 Henk 'm!

  • Fish
  • Registratie: Juli 2002
  • Niet online

Fish

How much is the fish

volgens mij staat dat hier ergens
http://www.eecis.udel.edu/~mills/stamp.html

Iperf


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 00:49
Voor het synchroniseren van timestamps is het voldoende als de server authoritieve timestamps meestuurt. De clients hoeven geen absolute tijd te kennen; het gaat er alleen om de relatieve ordening van gebeurtenissen.

Verder kun je nog Googlen op backward reconciliation (dit is bijvoorbeeld interessant) maar voor de meeste dingen geldt toch wie het eerst komt, die het eerst maalt.

Acties:
  • 0 Henk 'm!

  • Koozza
  • Registratie: November 2007
  • Laatst online: 02-09 20:54

Koozza

Wâ voor drop? GAS D’ROP!

Topicstarter
Ik zal bijde pagina's is door gaan lezen en kijken of ik eruit kom. Bedankt voor de hulp alvast :)

Acties:
  • 0 Henk 'm!

  • Ulster Seedling
  • Registratie: December 2007
  • Laatst online: 15-09 01:15

Ulster Seedling

“Middelgrote appel”

Ik vind het een interessante vraag, dus heb ik er even over zitten nadenken. Volgens mij moet het mogelijk zijn om tot een 'winnaar' te komen als je beide spelers een bevestiging laat sturen zodra ze de actie van de tegenspeler hebben ontvangen. Door beide spelers de tijd tussen de verschillende momenten te laten meten, kunnen ze onafhankelijk van de werkelijke tijd tot een kloppende uitslag komen. Het enige is dat ik hier de aanname maak dat de tijd benodigd voor het transport van de data over het netwerk steeds gelijk blijft.

Afbeeldingslocatie: http://cl.ly/image/1y01031x0G44/skitched-20120723-010746.png

“(…) met een rode blos op een geelgroene ondergrond.” Volgens Wikipedia tenminste.


Acties:
  • 0 Henk 'm!

  • Koozza
  • Registratie: November 2007
  • Laatst online: 02-09 20:54

Koozza

Wâ voor drop? GAS D’ROP!

Topicstarter
Ik zat aan een soort gelijk iets te denken. Als je een pakketje stuurt met een timestamp, en je laat de 2e pc reageren weet je dus wat de tussentijd is en als je die deelt door 2 heb je de Delay. Zo zou je dus ook de verschillen kunnen uitrekeken. Maar deze methode gaat ook uit van een ping die gelijk blijft.

Acties:
  • 0 Henk 'm!

  • Ventieldopje
  • Registratie: December 2005
  • Laatst online: 10:59

Ventieldopje

I'm not your pal, mate!

Met twee players is dit leuk maar als je dit met meerdere players gaat doen zou iedereen dezelfde "ping" krijgen als de speler met de traagste internet verbinding. In veel multiplayer spellen (FPS / MMO etc.) is het zo dat wie het eerst komt wie het eerst maalt vandaar dat mensen een zo laag mogelijke ping willen hebben!

www.maartendeboer.net
1D X | 5Ds | Zeiss Milvus 25, 50, 85 f/1.4 | Zeiss Otus 55 f/1.4 | Canon 200 f/1.8 | Canon 200 f/2 | Canon 300 f/2.8


Acties:
  • 0 Henk 'm!

  • Koozza
  • Registratie: November 2007
  • Laatst online: 02-09 20:54

Koozza

Wâ voor drop? GAS D’ROP!

Topicstarter
Ventieldopje schreef op maandag 23 juli 2012 @ 01:32:
Met twee players is dit leuk maar als je dit met meerdere players gaat doen zou iedereen dezelfde "ping" krijgen als de speler met de traagste internet verbinding. In veel multiplayer spellen (FPS / MMO etc.) is het zo dat wie het eerst komt wie het eerst maalt vandaar dat mensen een zo laag mogelijke ping willen hebben!
Klopt helemaal, maar voor wat ik nu in gedachte heb is 2 spelers genoeg :)

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Maar dan pas je dus gewoon de client zo aan dat die "ping" pakketjes vertraagd beantwoord worden, zodat het lijkt dat je een langzame verbinding hebt, en dus een voordeel boven de andere speler krijgt :+

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08

Acties:
  • 0 Henk 'm!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
Het netwerk model en de architectuur die Quake 3 hanteert steken heel goed in elkaar en zijn een absolute aanrader om door te nemen. Het is inderdaad goed leesvoer.

Sowieso steekt Quake 3 in het algemeen ook echt enorm goed in elkaar. Het is alleen allemaal nog plat C, dus heel veel pseudo-classes met externals en structs waarin mensen snel de weg kwijt neigen te raken. Maar, als je de moeite neemt om de nodige bird's eye views van de code architecture te maken dan ziet die ca. 25MB aan code er ineens heel goed uit.

Heb zelf ooit nog eens samen met mede-GoT gebruiker Grijze Vos een scriptbaar particle system in de client VM geimplementeerd voor een Computer Graphics course aan de universiteit. Later heb ik het nog naar de opensourced engine layer geport ('because we can'), maar eigenlijk nooit meer vrijgegeven. De Q3 modding communities waren tegen die tijd eigenlijk al dood aan het bloeden. Wow, wat voelt dit nostalgisch jongens!

[ Voor 48% gewijzigd door R4gnax op 23-07-2012 21:55 ]


Acties:
  • 0 Henk 'm!

  • Ellos
  • Registratie: Oktober 2008
  • Laatst online: 04-09 01:04
Dit is ook een zeer aan te raden wiki, de source engine

https://developer.valveso...ce_Multiplayer_Networking
https://developer.valveso...l_Design_and_Optimization

[ Voor 33% gewijzigd door Ellos op 24-07-2012 00:15 ]


Acties:
  • 0 Henk 'm!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
In een oogopslag gezien doen ze daar (bijna) hetzelfde als Quake. Ook niet zo verbazend, aangezien de originele Half-Life op een aangepaste Quake engine draaide. :)

Acties:
  • 0 Henk 'm!

  • Ellos
  • Registratie: Oktober 2008
  • Laatst online: 04-09 01:04
Klopt, dat is ook het mooie, overlap van een stuk informatie en de aanvulling op elkaar.

Die technieken zijn sowieso wel bekend bij eigenlijk elke fast paced game studio omdat het 'proven practices' zijn.
Meerdere goeie bronnen is nooit verkeerd.
Pagina: 1