Registriert: Do Mär 06, 2003 15:27 Beiträge: 281 Wohnort: Bochum
wenn dann kann ich positionen statt tasten senden, was zu meiner methode kaum einen unterschied macht, aber die onkeydown kann ich net benutzen, da bei UDP net sicher ist das die msg ankommt
Registriert: Do Mär 06, 2003 15:27 Beiträge: 281 Wohnort: Bochum
Also wenn es anscheinend besser ist größere pakete zu senden als immer viele kleine, ist es wohla m ende auch besser wenn der server alle einkommenden daten über abgefeuerte waffen sammelt und dann in einem paket an alle sendet, oder ? jede abschuss-info an jeden einzeln zu schicken
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Na du musst ja irgendwo deinen Tastendruck in eine Spielerposition umrechnern. Das sollte ja auf dem Server stattfinden. Und die Position würdest du dann auf dem Client berechnen und übermittelst dem Server nur die neue Position. Er vermittelt dann nur zwischen den Clients. Du müsstest dann dein Record umändern. Aber sobald das alles ein wenig Komplexer werden würde wirst du wahrscheinlich mit einem einfachem Record nicht mehr auskommen. Aber dazu muss es noch reichlich komplexer werden.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
An sich wäre die Sache mit dem sammeln nicht schlecht.Allerdings macht das die ganze Verwaltung deiner Netzerkereignisse recht komplex.Wie ich bereits gesagt habe,würde ich die Netzwerkkommunikation halt über nen Timer mit festem Intervall ablaufen lassen.Das hat u.a. auch den Vorteil,das man je nach Art der Verbindung auf der ein Spiel laufen soll diesen Intervall erhöhen/verringern kann.In einem 100MBit-Netz schickst du dann alle 10ms die Daten,während du bei einem Internetspiel nur alle 25ms schickst.
Registriert: Do Mär 06, 2003 15:27 Beiträge: 281 Wohnort: Bochum
wie ich diesen intervall genau einstelle muss ich allerdings noch mal sehen, aber ansonsten, danke! das mit dem intervall hat mir sehr geholfen! es schien tatsächlich so eine art paket stau dagewesen zzu sein
DAMALS!... als ich noch 2 rechner hatte, hate ich auch mal ein netzwerksystem geschrieben. nun habe ich 2 probleme gehabt. zum einen war alles sehr langsam. ähnlich wie von dir geschrieben. zum anderen habe ich TCP benutzt. der hänger kam dadurch, dass ich windowmessages benutzt habe, um mich von winsock darüber informiren zu lassen, dass ich post im netzwerkstack zu erwarten habe.
grosser fehler... wenn ich ein spiel mit 100% systemauslastung habe, darf ich eben lange auf solche messages warten. die lassen sich dann eben mal ordentlich zeit. UDP funzt ja im grunde nicht anders als TCP, hat aber den unschönen nachteil, dass anders als bei TCP die netpackages nicht auf richtigkeit überwacht werden. gibt man sich damit zufrieden kommt noch ein punkt. wenn du hinter einem router sitzt, kann UDP in vielen fällen (wenn nicht wirklich geilo gecodet) sehr frustrierend sein. ich persönlich würde dir eher ne TCP lösing ans bein binden als dich mit UDP von board zu lassen.
aber deine tests werden wohl die CPU nicht soweit auslasten, dass da nichts mehr mit WMs geht. noch ein punkt ist die grösse von paketen. zugrosse und zu kleine packete sind tötlich! kleine verursachen unnötigen traffik, da jedesmal der ganze headershice gesendet wird und auf ein 'ack' gewartet wird. zu grosse können mit unter verursachen, dass die applikation sich nicht mehr so gerne mit den packages beschäftigt und die ind en hintergrund drängt. DANK WINDOWS!
8KB packages sind afaik die grenze nach oben und 0,001K die unterste. ich habe dann so packages um die 1-2KB gehabt. klappte super!
Bei UPD werden die Nachrichten schon auf Richtigkeit überprüft, nur bei Fehlern wird die Nachricht nicht nochmal gesendet sondern verworfen und muß deshalb auf dem Quellrechner auch nicht zwischengespeichert werden. Außerdem werden die Daten bei UDP nicht erst gesammelt bis ein Packet voll ist. Nur mit UPD kann man auch broadcasts in einem lokalen Netz versenden, um z.B. nach Servern zu suchen.
ich weiss nicht mehr genau wie es heisst oder geht, aber du kannst das package collecting bei TCP ausstellen. irgendein alogarhytmus war das... anch dem erfinder dessen benannt.
... lässt sich ausstellen
ps: man kann UDP nutzen um locale server zu suchen aber trotzalledem TCP für den eigentlichen datenaustasch verwenden
Registriert: Do Mär 06, 2003 15:27 Beiträge: 281 Wohnort: Bochum
es ging mir auch in keinster weise darum mein Protokoll zu wechseln, denn UDP ist einfach besser bei Netzwerk-Shooter-Games, wo es nicht problemaitsh wird wenn n paket mal ankomm und ausserdem hat es unter dem strich mehr vorteile als TCP besonders bei diesem Genre....danke trotzdem
Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.