[CLIENT] Better Refresh

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • @Patafix: hab die zeit gestoppt, meine is um ca 1.5s schneller, liegt wahrscheinlich daran,
      dass in der tw source viel zu viel unnötiger kram im speicher gespeichert wird,
      und dieser mix aus c und c++ ist auch nicht gerade fördernd.
      es gibt in c++(11) eben schon viele "tricks" um schnellern code zu schreiben.
      compile-time zeug wie zb.: constexpr, templates (wenn man sie richtig einsetzt)
      und anderes: RAII (Resource Acquisition Is Initialization), move, forward,
      die stl verwenden(z.b std::vector anstatt den speicher manuell mit new und delete zu managen)



      du nimmst in client/client.cpp btw. die adresse eines temporären wertes:
      (ist bei gcc und clang ein fehler)

      [cpp]
      if(net_addr_comp(&pPacket->m_Address, &m_pMasterServer->GetAddr(i)) == 0)
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
      [/cpp]

      machs besser so:
      [cpp]
      NETADDR tmp = m_pMasterServer->GetAddr(i);
      if(net_addr_comp(&pPacket->m_Address, &tmp) == 0)
      [/cpp]
    • Nope, findet bei mir trotzdem nichts.
      - masters.cfg gelöscht
      - neuen Client getestet
      - bei debug 1

      Quellcode

      1. [client_srvbrowse]Count-Request send to 0
      2. [client_srvbrowse]Count-Request send to 1
      3. [MasterCount]Server 1 got 1024 servers
      Zitate

      Marik schrieb:

      Keine Angst ich für meinen Teil halt von DDrace genauso viel wie von City :P beides fürn Kübel

      Heliux schrieb:

      Ganz Ehrlich?
      Hast du auch mal an Kritik gedacht?
      Was er verbessern kann?
      Was er falsch gemacht hat?
      Welche Bilde findest du insbesondere schlecht?
    • SolSoCoG schrieb:

      Ihr tut ja alle so als ob Teeworlds es nicht hinkriegen würde, tote Masterserver nach ein paar Sekunden zu erkennen und zu aktiven zu wechseln. Ihr habt Drecksrouter gekoppelt mit Drecksanbietern, thats all.

      Eigentlich kriegt Teeworlds das wirklich nicht hin :D
      Es sendet die Anfragepakete blind an alle Masterserver, um dann erwartungsvoll auf Serverlisten zu warten (unabhaengig davon ob geantwortet wird oder nicht).
    • Patafix schrieb:

      Das Pakete senden und warten ist von mir. Aber das MasterServer als aktiv nehmen ist von Teeworlds :D
      Naja, Teeworlds setzt die Masterserver direkt auf "Valid", wenn der Hostname des jeweiligen Masters aufgelöst werden konnte (was natürlich nicht bedeutet, dass er auch erreichbar ist).
      Als "aktiv" kann man das glaube ich nicht bezeichnen.

      Patafix schrieb:

      Was dieser Client nun tut ?
      [...] Jedoch versucht er nach einem Durchlauf die restlichen Server mit einem halbierten br_max_request zu finden.[...]
      Du könntest dir bei einem Durchlauf merken, welche Masterserver geantwortet haben, um diese dann für den weiteren Durchlauf zu verwenden. Mit einem Request "pingst" du sie ja eigentlich schon an

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von east ()

    • Ich habe aus Zeitgründen eine Zwischenlösung erstellt.

      Nun wartet der Client mit der Anfrage der Server-Informationen nicht mehr auf das Eintreffen aller MasterServer-Counts.
      Die Lösung ist zwar unelegant und hat eventuell den Nachteil, dass bei zu hohen Werten für br_max_request wieder Server in der Liste fehlen.
      HINWEIS: von den fehlenden Servern fehlen nicht die Serverinformationen, sodass sie nur mit ihrer IP in der Liste stehen, sonder sie werden auch bei der Zählung der Server nicht mit aufgeführt, sodass man z.B. nur 800 Server statt über 100 hat.
      Falls dies der Fall ist, einfach br_max_request reduzieren, bis alle Server gefunden werden :)
      (keine Sorge, dieser Wert sollte wesentlich höher liegen als beim normalen TW-Client ;)

      einfach die Version hier, oder im Startpost nutzen. Das Update befindet sich bereits auf Github, auch wenn es so nicht bereit ist, um es in andere Sourcen zu integrieren..


      Mit freundlichen Grüßen,

      Pata
    • Gute Idee Pata! Das Problem besteht schon seit ein paar Jährchen und in diesem Stil hat sich bis jetzt noch kaum jemand darüber Gedanken gemacht.

      Der Client funktioniert einwandfrei und verursacht keine Fehler oder sonstiges. Wirklich jeden Server wird der Client bei den Leuten, die das Serverproblem haben, zwar wohl trotzdem nicht finden, aber wie schon gesagt, ist eine erhebliche Verbesserung erkennbar. Gut so!
      Vielleicht wird ja durch diesen Client das Problem irgendwann "verschwinden" oder zumindest so extrem eingedämmt, dass die Leute die für sie "wichtigsten" Server finden können.
    • Patafix schrieb:

      Das Pakete senden und warten ist von mir. Aber das MasterServer als aktiv nehmen ist von Teeworlds :D

      Und das liegt nicht einfach an irgendwelchen Routern, dass TW nicht prüft, ob die MS überhaupt online sind ...


      Bei mir hat der Masterserver, abgesehen von Tagen wo alles geDDoSed wurde seit ~0.4? halt paar Jahre her, es noch nie geschafft mir keine oder ne derbe unvollständige Liste zu schicken.
      Daher muss der Fehler vorm Bildschirm hocken, oder eben in der Hardware.
    • @SolSoCoG: Die Liste vom Master-Server kommt in den meisten Fällen auch ordnungsgemäß an. Jedoch gehen die Pakete der einzelnen Server-Abfragen bei zu hohen Datenraten oder einigen Routern verloren.

      Zudem finde ich es unangebracht, das Problem herunterzuspielen, wenn andere es tatsächlich hatten, man sich mit dem Thema nicht auseinander gesetzt hat und deswegen auch keine Ahnung hat!

      Falls du dich nun intensiv mit dem Problem beschäftigt hast, darfst du mir gerne erklären, warum dieser Client eigentlich völlig nutzlos ist.


      Gruß Pata