{"id":37812,"date":"2019-10-31T22:19:55","date_gmt":"2019-10-31T19:19:55","guid":{"rendered":"https:\/\/prohoster.info\/blog\/megapaket-kak-razrabotchikam-factorio-udalos-reshit-problemu-s-multipleerom-na-200-igrokov\/"},"modified":"2019-10-31T22:19:55","modified_gmt":"2019-10-31T19:19:55","slug":"megapaket-kak-razrabotchikam-factorio-udalos-reshit-problemu-s-multipleerom-na-200-igrokov","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/megapaket-kak-razrabotchikam-factorio-udalos-reshit-problemu-s-multipleerom-na-200-igrokov","title":{"rendered":"Mega-Paket: Wie es den Entwicklern von Factorio gelang, das Problem mit Multiplayer f\u00fcr 200 Spieler zu l\u00f6sen.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Mega-Paket: Wie es den Entwicklern von Factorio gelang, das Problem mit Multiplayer f\u00fcr 200 Spieler zu l\u00f6sen.\" src=\"\/wp-content\/uploads\/2019\/09\/135544365299791de479555734645ef2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nIm Mai dieses Jahres nahm ich als Spieler an <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/d_DlvkTK9hU\">der MMO-Veranstaltung KatherineOfSky<\/a><\/noindex>teil. Ich bemerkte, dass, sobald die Anzahl der Spieler eine bestimmte Zahl erreicht, einige von ihnen alle paar Minuten \u201eabfallen\u201c. Leider f\u00fcr Sie (aber nicht f\u00fcr mich) war ich einer der Spieler, die sich jeden Mal verabschiedeten <b>auch bei stabiler Verbindung. Ich nahm dies als pers\u00f6nliche Herausforderung und begann, nach den Ursachen des Problems zu suchen. Nach drei Wochen Debugging, Tests und Korrekturen war der Fehler schlie\u00dflich behoben, aber diese Reise war alles andere als einfach.<\/b>, selbst bei einer guten Verbindung. Ich habe das als pers\u00f6nliche Herausforderung angesehen und begonnen, nach den Ursachen des Problems zu suchen. Nach drei Wochen des Debuggings, Testens und Fehlersuchens war der Fehler schlie\u00dflich behoben, aber diese Reise war alles andere als einfach.<\/p>\n<p>Die Probleme in Mehrspieler-Spielen sind sehr schwer nachzuvollziehen. Sie treten oft unter sehr spezifischen Netzwerkkonfigurationen und Zust\u00e4nden im Spiel auf (in diesem Fall \u2014 mit mehr als 200 Spielern). Selbst wenn es gelingt, das Problem nachzustellen, kann es nicht richtig debuggt werden, da das Setzen von Kontrollpunkten das Spiel stoppt, die Timer verwirrt und in der Regel zu einer Unterbrechung der Verbindung aufgrund von Timeout f\u00fchrt. Aber dank Hartn\u00e4ckigkeit und eines gro\u00dfartigen Tools namens <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jagt\/clumsy\">clumsy<\/a><\/noindex> , konnte ich herausfinden, was wirklich passiert.<\/p>\n<p>Kurz gesagt: Aufgrund eines Fehlers und einer unvollst\u00e4ndigen Implementierung der Verz\u00f6gerungssimulation befand sich der Kunde manchmal in der Situation, dass er in einem einzigen Takt ein Netzwerkpaket mit etwa 400 Aktionen von Spielentit\u00e4ten (wir nennen es \"Megapaket\") senden musste. Danach muss der Server nicht nur alle diese Eingabewertungen korrekt empfangen, sondern sie auch an alle anderen Kunden senden. Wenn du 200 Kunden hast, wird das schnell zum Problem. Der Kanal zum Server wird schnell \u00fcberlastet, was zu Paketverlusten und einem Kaskadeneffekt an wiederholt angeforderten Paketen f\u00fchrt. Die Verz\u00f6gerung der Eingabewertungen f\u00fchrt dann dazu, dass noch mehr Kunden beginnen, Megapakete zu senden, und die Lawine wird noch gr\u00f6\u00dfer. Gl\u00fcckliche Kunden schaffen es, sich zu erholen, w\u00e4hrend alle anderen \"ausfallen\".<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<img decoding=\"async\" alt=\"Mega-Paket: Wie es den Entwicklern von Factorio gelang, das Problem mit Multiplayer f\u00fcr 200 Spieler zu l\u00f6sen.\" src=\"\/wp-content\/uploads\/2019\/09\/ff1a60d55eb6f5a4dc7be4b826d747f0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nDas Problem war ziemlich grundlegend, und ich habe zwei Wochen gebraucht, um es zu beheben. Es ist recht technisch, daher werde ich im Folgenden die technischen Einzelheiten erl\u00e4utern. Aber zun\u00e4chst sollten Sie wissen, dass ab Version 0.17.54, die am 4. Juni ver\u00f6ffentlicht wurde, der Multiplayer unter Bedingungen mit tempor\u00e4ren Verbindungsproblemen stabiler geworden ist, und die Verz\u00f6gerungsreduzierung deutlich weniger fehleranf\u00e4llig ist (weniger Ruckler und Teleportationen). Au\u00dferdem habe ich die Methode zur Reduzierung von Verz\u00f6gerungen im Spiel ge\u00e4ndert und hoffe, dass sie dadurch etwas fl\u00fcssiger werden.<\/p>\n<h3>Multiplayer-Megapaket \u2014 technische Einzelheiten<\/h3>\n<p>\nEinfach ausgedr\u00fcckt funktioniert der Multiplayer im Spiel folgenderma\u00dfen: Alle Clients simulieren den Spielzustand, indem sie nur die Eingaben der Spieler empfangen und senden (genannt \u201eInput Actions\u201c <i>Input Actions<\/i>). Die Hauptaufgabe des Servers besteht darin, sicherzustellen <i>Input Actions<\/i> und zu steuern, dass alle Clients in einem Takt die gleichen Aktionen ausf\u00fchren. Mehr dazu k\u00f6nnen Sie im Post lesen <noindex><a rel=\"nofollow\" href=\"https:\/\/www.factorio.com\/blog\/post\/fff-149\">FFF-149<\/a><\/noindex>.<\/p>\n<p>Da der Server Entscheidungen treffen muss, welche Aktionen ausgef\u00fchrt werden sollen, verlaufen die Aktionen des Spielers in etwa folgender Reihenfolge: Aktion des Spielers -&gt; Spielclient -&gt; Netzwerk -&gt; Server -&gt; Netzwerk -&gt; Spielclient. Das bedeutet, dass jede Aktion des Spielers erst ausgef\u00fchrt wird, nachdem sie den Hin- und R\u00fcckweg \u00fcber das Netzwerk zur\u00fcckgelegt hat. Dadurch w\u00fcrde das Spiel extrem langsam erscheinen; daher wurde fast sofort nach der Einf\u00fchrung des Mehrspielermodus ein Mechanismus zur Verborgenen Verz\u00f6gerung implementiert. Die Verborgene Verz\u00f6gerung emuliert die Eingabe des Spielers, ohne die Aktionen anderer Spieler und Entscheidungen des Servers zu ber\u00fccksichtigen.<\/p>\n<p><img decoding=\"async\" alt=\"Mega-Paket: Wie es den Entwicklern von Factorio gelang, das Problem mit Multiplayer f\u00fcr 200 Spieler zu l\u00f6sen.\" src=\"\/wp-content\/uploads\/2019\/09\/0b66a3b07d6aa2ab1d2329d782c78615.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nIn Factorio gibt es einen Spielzustand <i>Spielzustand<\/i> \u2013 das vollst\u00e4ndige Zustand der Karte, des Spielers, der Entit\u00e4ten und aller anderen Elemente. Er wird deterministisch in allen Clients simuliert, basierend auf den vom Server empfangenen Aktionen. Der Spielzustand ist heilig, und wenn er jemals von dem Server oder einem anderen Client abweicht, entsteht eine Desynchronisation.<\/p>\n<p>Zus\u00e4tzlich <i>Spielzustand<\/i> wir haben einen Zustand der Verz\u00f6gerung <i>Verz\u00f6gerungszustand<\/i>. Er enth\u00e4lt eine kleine Teilmenge des Hauptzustands. <i>Verz\u00f6gerungszustand<\/i> es ist nicht heilig und stellt einfach dar, wie der Zustand des Spiels in Zukunft aussehen wird, basierend auf den Eingaben der Spieler. <i>Input Actions<\/i>.<\/p>\n<p>Daf\u00fcr speichern wir eine Kopie der erstellten <i>Input Actions<\/i> in der Verz\u00f6gerungswarteschlange.<\/p>\n<p><img decoding=\"async\" alt=\"Mega-Paket: Wie es den Entwicklern von Factorio gelang, das Problem mit Multiplayer f\u00fcr 200 Spieler zu l\u00f6sen.\" src=\"\/wp-content\/uploads\/2019\/09\/31e43263d1d2bfc79700730978fcd02a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nDas hei\u00dft, am Ende des Prozesses sieht das Bild auf der Clientseite ungef\u00e4hr so aus:<\/p>\n<ol>\n<li>Wir wenden an <i>Input Actions<\/i> alle Spieler auf <i>Spielzustand<\/i> so, wie diese Eingabeschnitte vom Server empfangen wurden.<\/li>\n<li>Wir entfernen aus der Verz\u00f6gerungswarteschlange alle <i>Input Actions<\/i>, die laut Server bereits auf <i>Spielzustand<\/i>.<\/li>\n<li>Entfernen <i>Verz\u00f6gerungszustand<\/i> angewendet wurden, und setzen es zur\u00fcck, damit es genau so aussieht wie <i>Spielzustand<\/i>.<\/li>\n<li>Wir wenden alle Aktionen aus der Verz\u00f6gerungswarteschlange auf <i>Verz\u00f6gerungszustand<\/i>.<\/li>\n<li>Basierend auf den Daten <i>Spielzustand<\/i> und <i>Verz\u00f6gerungszustand<\/i> rendern wir das Spiel f\u00fcr den Spieler.<\/li>\n<\/ol>\n<p>\nDas alles wird in jedem Takt wiederholt.<\/p>\n<p>Zu kompliziert? Entspannen Sie sich nicht, das ist noch nicht alles. Um die Unzuverl\u00e4ssigkeit von Internetverbindungen auszugleichen, haben wir zwei Mechanismen entwickelt:<\/p>\n<ul>\n<li>Verpasste Takte: wenn der Server entscheidet, dass <i>Input Actions<\/i> im Spieltakt ausgef\u00fchrt werden, und wenn er keinen <i>Input Actions<\/i> Spieler erhalten hat (zum Beispiel wegen erh\u00f6hter Verz\u00f6gerung), wird er nicht warten, sondern diesem Client mitteilen: \u201eIch habe deine <i>Input Actions<\/i>, ich werde versuchen, sie im n\u00e4chsten Takt hinzuzuf\u00fcgen.\" Dies wurde so gemacht, damit wegen Verbindungsproblemen (oder Computerproblemen) eines Spielers die Kartenaktualisierung f\u00fcr alle anderen nicht verlangsamt wird. Es ist erw\u00e4hnenswert, dass <i>Input Actions<\/i> nicht ignoriert, sondern einfach nur aufgeschoben werden.<\/li>\n<li>Die Verz\u00f6gerung der Hin- und R\u00fcckreise: Der Server versucht abzusch\u00e4tzen, wie hoch die Round-Trip-Verz\u00f6gerung zwischen dem Client und dem Server f\u00fcr jeden Client ist. Alle 5 Sekunden bespricht er gegebenenfalls mit dem Client die neue Verz\u00f6gerung (abh\u00e4ngig davon, wie die Verbindung in der Vergangenheit funktioniert hat) und passt die Round-Trip-Verz\u00f6gerung entsprechend an.<\/li>\n<\/ul>\n<p>\nDiese Mechanismen sind f\u00fcr sich genommen recht einfach, aber wenn sie gemeinsam verwendet werden (was oft bei Verbindungsproblemen passiert), wird die Logik des Codes schwer kontrollierbar und hat viele Randf\u00e4lle. Dar\u00fcber hinaus m\u00fcssen Server und Verzugsschlangen diese speziellen Mechanismen richtig implementieren. <i>Eingabema\u00dfnahme<\/i> mit dem Namen <i>BewegeStoppImN\u00e4chstenTick<\/i>. Dadurch l\u00e4uft der Charakter bei Verbindungsproblemen nicht von selbst (zum Beispiel unter einen Zug).<\/p>\n<p>Jetzt m\u00fcssen wir Ihnen erkl\u00e4ren, wie die Auswahl von Entit\u00e4ten funktioniert. Einer der \u00fcbermittelten Typen <i>Eingabema\u00dfnahme<\/i> ist die Ver\u00e4nderung des Auswahlzustands einer Entit\u00e4t. Dies informiert alle dar\u00fcber, auf welche Entit\u00e4t der Spieler den Mauszeiger bewegt hat. Wie Sie verstehen k\u00f6nnen, handelt es sich hierbei um eine der h\u00e4ufigsten Eingabema\u00dfnahmen, die von den Clients gesendet werden. Daher haben wir es optimiert, um die Bandbreite zu schonen und so wenig Platz wie m\u00f6glich einzunehmen. Dies wurde so umgesetzt: Bei der Auswahl jeder Entit\u00e4t speichert das Spiel anstelle von absoluten, hochpr\u00e4zisen Kartenvorgaben eine niedrigpr\u00e4zise relative Verschiebung im Vergleich zur vorherigen Auswahl. Das funktioniert gut, weil die Mausmarkierung normalerweise sehr nah an der vorherigen Auswahl erfolgt. Dadurch ergeben sich zwei wichtige Anforderungen: <i>Input Actions<\/i> dass niemals etwas \u00fcbersprungen werden darf und dass sie in der richtigen Reihenfolge ausgef\u00fchrt werden m\u00fcssen. Diese Anforderungen werden erf\u00fcllt f\u00fcr <i>Spielzustand<\/i>. Aber da die Aufgabe <i>Latency state<\/i> darum geht, f\u00fcr den Spieler \"ausreichend gut auszusehen\", werden in den Latenzzust\u00e4nden diese Anforderungen nicht erf\u00fcllt. <i>Verz\u00f6gerungszustand<\/i> ber\u00fccksichtigt <noindex><a rel=\"nofollow\" href=\"https:\/\/cdn.factorio.com\/assets\/img\/blog\/fff-302-megapacket-commit.jpg\">viele Grenzf\u00e4lle<\/a><\/noindex>, die mit Takt\u00fcberschreitungen und \u00c4nderungen der Hin- und Retourlatenzen verbunden sind.<\/p>\n<p>Sie k\u00f6nnen sich wahrscheinlich schon vorstellen, wohin das f\u00fchrt. Endlich beginnen wir, die Ursachen des Megapakets zu erkennen. Das Grundproblem liegt darin, dass die Entscheidungslogik, ob eine Handlung der \u00c4nderungswahl \u00fcbergeben werden soll, auf <i>Verz\u00f6gerungszustand<\/i>, und dieser Zustand enth\u00e4lt nicht immer die richtigen Informationen. Daher wird das Megapaket ungef\u00e4hr so generiert:<\/p>\n<ol>\n<li>Der Spieler hat Verbindungsprobleme.<\/li>\n<li>Es kommen Mechanismen zur Takt\u00fcberspringung und zur Regelung der Hin- und R\u00fcckverz\u00f6gerung ins Spiel.<\/li>\n<li>Die Warteschlange der Verz\u00f6gerungszust\u00e4nde ber\u00fccksichtigt diese Mechanismen nicht. Das f\u00fchrt dazu, dass einige Aktionen vorzeitig entfernt oder in der falschen Reihenfolge ausgef\u00fchrt werden, was zu falschen <i>Verz\u00f6gerungszustand<\/i>.<\/li>\n<li>Der Spieler hat seine Verbindungsprobleme nicht mehr und simuliert, um den Server einzuholen, bis zu 400 Takte.<\/li>\n<li>In jedem Takt wird eine neue Handlung zur \u00c4nderung der Entit\u00e4tswahl generiert und zur Sendung an den Server vorbereitet.<\/li>\n<li>Der Client sendet dem Server ein Megapaket von \u00fcber 400 \u00c4nderungen der Entit\u00e4tswahl (und auch andere Aktionen wie Schuss- und Gehzust\u00e4nde waren von diesem Problem betroffen).<\/li>\n<li>Der Server erh\u00e4lt 400 Eingabeaktionen. Da ihm nicht gestattet ist, auch nur eine einzige Eingabeaktion zu \u00fcberspringen, verlangt er von allen Clients, diese Aktionen auszuf\u00fchren und sie \u00fcber das Netzwerk zu senden.<\/li>\n<\/ol>\n<p>\nDie Ironie besteht darin, dass der Mechanismus, der zur Einsparung der Bandbreite des Kanals gedacht war, in der Folge riesige Netzwerkpakete erzeugte.<\/p>\n<p>Wir haben dieses Problem gel\u00f6st, indem wir alle Randf\u00e4lle bei der Aktualisierung und der Unterst\u00fctzung der Verz\u00f6gerungsschlange behoben haben. Obwohl dies ziemlich viel Zeit in Anspruch nahm, war es letzten Endes besser, alles richtig umzusetzen, als sich auf schnelle Hacks zu verlassen.<br \/>\n<br \/>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/466135\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u043c\u0430\u0435 \u044d\u0442\u043e\u0433\u043e \u0433\u043e\u0434\u0430 \u044f \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u0433\u0440\u043e\u043a\u0430 \u0432 MMO-\u043c\u0435\u0440\u043e\u043f\u0440\u0438\u044f\u0442\u0438\u0438 KatherineOfSky. \u042f \u0437\u0430\u043c\u0435\u0442\u0438\u043b, \u0447\u0442\u043e \u043a\u043e\u0433\u0434\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0438\u0433\u0440\u043e\u043a\u043e\u0432 \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430, \u0447\u0435\u0440\u0435\u0437 \u043a\u0430\u0436\u0434\u044b\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043d\u0443\u0442 \u0447\u0430\u0441\u0442\u044c \u0438\u0437 \u043d\u0438\u0445 \u00ab\u043e\u0442\u0432\u0430\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f\u00bb. \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e \u0434\u043b\u044f \u0432\u0430\u0441 (\u043d\u043e \u043d\u0435 \u0434\u043b\u044f \u043c\u0435\u043d\u044f), \u044f \u0431\u044b\u043b \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0442\u0435\u0445 \u0438\u0433\u0440\u043e\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u043b\u0438\u0441\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437, \u0434\u0430\u0436\u0435 \u043f\u0440\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u0445\u043e\u0440\u043e\u0448\u0435\u0433\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f. \u042f \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u044f\u043b \u044d\u0442\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28381,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37812","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u043c\u0430\u0435 \u044d\u0442\u043e\u0433\u043e \u0433\u043e\u0434\u0430 \u044f \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u0433\u0440\u043e\u043a\u0430 \u0432 MMO-\u043c\u0435\u0440\u043e\u043f\u0440\u0438\u044f\u0442\u0438\u0438 KatherineOfSky. \u042f \u0437\u0430\u043c\u0435\u0442\u0438\u043b, \u0447\u0442\u043e \u043a\u043e\u0433\u0434\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0438\u0433\u0440\u043e\u043a\u043e\u0432 \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430, \u0447\u0435\u0440\u0435\u0437 \u043a\u0430\u0436\u0434\u044b\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043d\u0443\u0442 \u0447\u0430\u0441\u0442\u044c \u0438\u0437 \u043d\u0438\u0445 \u00ab\u043e\u0442\u0432\u0430\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f\u00bb. \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e \u0434\u043b\u044f \u0432\u0430\u0441 (\u043d\u043e \u043d\u0435 \u0434\u043b\u044f \u043c\u0435\u043d\u044f), \u044f \u0431\u044b\u043b \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0442\u0435\u0445 \u0438\u0433\u0440\u043e\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u043b\u0438\u0441\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437, \u0434\u0430\u0436\u0435 \u043f\u0440\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u0445\u043e\u0440\u043e\u0448\u0435\u0433\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f. \u042f \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u044f\u043b \u044d\u0442\u043e\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/megapaket-kak-razrabotchikam-factorio-udalos-reshit-problemu-s-multipleerom-na-200-igrokov\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041c\u0435\u0433\u0430\u043f\u0430\u043a\u0435\u0442: \u043a\u0430\u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c Factorio \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0440\u0435\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0441 \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0435\u0435\u0440\u043e\u043c \u043d\u0430 200 \u0438\u0433\u0440\u043e\u043a\u043e\u0432 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u043c\u0430\u0435 \u044d\u0442\u043e\u0433\u043e \u0433\u043e\u0434\u0430 \u044f \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u0433\u0440\u043e\u043a\u0430 \u0432 MMO-\u043c\u0435\u0440\u043e\u043f\u0440\u0438\u044f\u0442\u0438\u0438 KatherineOfSky. \u042f \u0437\u0430\u043c\u0435\u0442\u0438\u043b, \u0447\u0442\u043e \u043a\u043e\u0433\u0434\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0438\u0433\u0440\u043e\u043a\u043e\u0432 \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430, \u0447\u0435\u0440\u0435\u0437 \u043a\u0430\u0436\u0434\u044b\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043d\u0443\u0442 \u0447\u0430\u0441\u0442\u044c \u0438\u0437 \u043d\u0438\u0445 \u00ab\u043e\u0442\u0432\u0430\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f\u00bb. \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e \u0434\u043b\u044f \u0432\u0430\u0441 (\u043d\u043e \u043d\u0435 \u0434\u043b\u044f \u043c\u0435\u043d\u044f), \u044f \u0431\u044b\u043b \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0442\u0435\u0445 \u0438\u0433\u0440\u043e\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u043b\u0438\u0441\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437, \u0434\u0430\u0436\u0435 \u043f\u0440\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u0445\u043e\u0440\u043e\u0448\u0435\u0433\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f. \u042f \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u044f\u043b \u044d\u0442\u043e\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/megapaket-kak-razrabotchikam-factorio-udalos-reshit-problemu-s-multipleerom-na-200-igrokov\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:19:55+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:19:55+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Megapaket: Wie die Entwickler von Factorio das Problem mit dem Multiplayer f\u00fcr 200 Spieler l\u00f6sen konnten | ProHoster","description":"Im Mai dieses Jahres nahm ich als Spieler an der MMO-Veranstaltung KatherineOfSky teil. Ich bemerkte, dass, wenn die Anzahl der Spieler eine bestimmte Zahl erreicht, einige von ihnen alle paar Minuten 'abkappen'. Zum Gl\u00fcck f\u00fcr Sie (aber nicht f\u00fcr mich) war ich einer der Spieler, die sich jedes Mal abmeldeten, selbst bei guter Verbindung. Ich nahm das so wahr.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/megapaket-kak-razrabotchikam-factorio-udalos-reshit-problemu-s-multipleerom-na-200-igrokov","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041c\u0435\u0433\u0430\u043f\u0430\u043a\u0435\u0442: \u043a\u0430\u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c Factorio \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0440\u0435\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0441 \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0435\u0435\u0440\u043e\u043c \u043d\u0430 200 \u0438\u0433\u0440\u043e\u043a\u043e\u0432 | ProHoster","og:description":"\u0412 \u043c\u0430\u0435 \u044d\u0442\u043e\u0433\u043e \u0433\u043e\u0434\u0430 \u044f \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u0433\u0440\u043e\u043a\u0430 \u0432 MMO-\u043c\u0435\u0440\u043e\u043f\u0440\u0438\u044f\u0442\u0438\u0438 KatherineOfSky. \u042f \u0437\u0430\u043c\u0435\u0442\u0438\u043b, \u0447\u0442\u043e \u043a\u043e\u0433\u0434\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0438\u0433\u0440\u043e\u043a\u043e\u0432 \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430, \u0447\u0435\u0440\u0435\u0437 \u043a\u0430\u0436\u0434\u044b\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043d\u0443\u0442 \u0447\u0430\u0441\u0442\u044c \u0438\u0437 \u043d\u0438\u0445 \u00ab\u043e\u0442\u0432\u0430\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f\u00bb. \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e \u0434\u043b\u044f \u0432\u0430\u0441 (\u043d\u043e \u043d\u0435 \u0434\u043b\u044f \u043c\u0435\u043d\u044f), \u044f \u0431\u044b\u043b \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0442\u0435\u0445 \u0438\u0433\u0440\u043e\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u043b\u0438\u0441\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437, \u0434\u0430\u0436\u0435 \u043f\u0440\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u0445\u043e\u0440\u043e\u0448\u0435\u0433\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f. \u042f \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u044f\u043b \u044d\u0442\u043e","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/megapaket-kak-razrabotchikam-factorio-udalos-reshit-problemu-s-multipleerom-na-200-igrokov","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:19:55+00:00","article:modified_time":"2019-10-31T19:19:55+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37812","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 19:22:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:20:22","updated":"2026-01-23 19:22:19"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/37812","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=37812"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/37812\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/28381"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=37812"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=37812"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=37812"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}