{"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":"Es scheint, dass die Designer von Microsoft an neuen Icons f\u00fcr die wichtigsten Windows 10-Anwendungen, einschlie\u00dflich des \"Explorers\", arbeiten.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Es scheint, dass die Designer von Microsoft an neuen Icons f\u00fcr die wichtigsten Windows 10-Anwendungen, einschlie\u00dflich des &quot;Explorers&quot;, arbeiten.\" 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. Mir fiel auf, dass, wenn die Anzahl der Spieler eine bestimmte Zahl erreicht, einige von ihnen alle paar Minuten \"abfallen\". Gl\u00fccklicherweise f\u00fcr euch (aber nicht f\u00fcr mich) war ich einer dieser Spieler, die sich <b>jedes Mal<\/b>, selbst bei einer stabilen Verbindung, abmeldeten. Ich sah das als pers\u00f6nliche Herausforderung an und begann nach den Ursachen des Problems zu suchen. Nach drei Wochen Debugging, Tests und Korrekturen wurde 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 \u00fcblicherweise unter sehr spezifischen Netzwerkbedingungen und in sehr speziellen Spielsituationen auf (in diesem Fall: mehr als 200 Spieler). Und selbst wenn es gelingt, das Problem zu reproduzieren, ist es nicht richtig debugbar, da das Einf\u00fcgen von Kontrollpunkten das Spiel stoppt, Timer verwirrt und normalerweise dazu f\u00fchrt, dass die Verbindung aufgrund von Zeit\u00fcberschreitungen abbricht. Aber dank Hartn\u00e4ckigkeit und eines wunderbaren Werkzeugs namens <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jagt\/clumsy\">clumsy<\/a><\/noindex> konnte ich herausfinden, was passiert.<\/p>\n<p>Kurz gesagt: Aufgrund eines Fehlers und einer unvollst\u00e4ndigen Implementierung der Verz\u00f6gerungssimulation befand sich der Client manchmal in einer Situation, in der er in einem Takt ein Netzwerkpaket senden musste, das aus den Eingaben von Spielern f\u00fcr etwa 400 Spielelemente bestand (wir nennen dies \"Megapaket\"). Danach muss der Server nicht nur alle diese Eingaben korrekt empfangen, sondern sie auch an alle anderen Clients senden. Wenn man 200 Clients hat, wird das schnell zum Problem. Der Kanal zum Server wird schnell \u00fcberlastet, was zu Paketverlust und einem Kaskadeneffekt von erneut angeforderten Paketen f\u00fchrt. Die Verz\u00f6gerung der Eingabeverarbeitung f\u00fchrt dann dazu, dass noch mehr Clients Megapakete senden, wodurch die Lawine noch st\u00e4rker wird. Den gl\u00fccklichen Clients gelingt es, sich zu erholen, alle anderen \"fallen ab\".<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<img decoding=\"async\" alt=\"Es scheint, dass die Designer von Microsoft an neuen Icons f\u00fcr die wichtigsten Windows 10-Anwendungen, einschlie\u00dflich des &quot;Explorers&quot;, arbeiten.\" 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, deshalb werde ich unten die saftigen technischen Einzelheiten erkl\u00e4ren. Aber zun\u00e4chst m\u00fcssen Sie wissen, dass seit Version 0.17.54, die am 4. Juni ver\u00f6ffentlicht wurde, der Mehrspieler unter tempor\u00e4ren Verbindungsproblemen stabiler ist und die Latenzverdeckung viel weniger fehlerhaft ist (weniger Ruckler und Teleportationen). Au\u00dferdem habe ich die Methode zur Verdeckung der Verz\u00f6gerungen im Kampf ge\u00e4ndert und hoffe, dass sie dadurch etwas fl\u00fcssiger werden.<\/p>\n<h3>Mehrspieler-Megapaket \u2013 technische Einzelheiten<\/h3>\n<p>\nUm es vereinfacht zu erkl\u00e4ren, funktioniert der Mehrspieler im Spiel wie folgt: Alle Clients simulieren den Spielzustand, indem sie nur die Eingaben der Spieler empfangen und senden (genannt \"Input Actions\" <i>Input Actions<\/i>). Die Hauptaufgabe des Servers ist die \u00dcbertragung <i>Input Actions<\/i> und die Kontrolle dar\u00fcber, dass alle Clients die gleichen Aktionen in einem Takt ausf\u00fchren. Mehr dazu k\u00f6nnen Sie in dem Beitrag 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 dar\u00fcber treffen muss, welche Aktionen ausgef\u00fchrt werden sollen, folgt die Aktion des Spielers ungef\u00e4hr diesem Pfad: Aktion des Spielers \u2192 Spiel-Client \u2192 Netzwerk \u2192 Server \u2192 Netzwerk \u2192 Spiel-Client. Das bedeutet, dass jede Aktion des Spielers erst ausgef\u00fchrt wird, nachdem sie den hin und zur\u00fcck gehenden Weg durch das Netzwerk zur\u00fcckgelegt hat. Daher w\u00fcrde das Spiel schrecklich ruckeln erscheinen, weshalb fast sofort nach dem Erscheinen des Mehrspielermodus ein Mechanismus zur Verdeckung der Latenzen eingef\u00fchrt wurde. Die Latenzverdeckung simuliert die Eingaben des Spielers, ohne die Aktionen anderer Spieler und die Entscheidungen des Servers zu ber\u00fccksichtigen.<\/p>\n<p><img decoding=\"async\" alt=\"Es scheint, dass die Designer von Microsoft an neuen Icons f\u00fcr die wichtigsten Windows 10-Anwendungen, einschlie\u00dflich des &quot;Explorers&quot;, arbeiten.\" src=\"\/wp-content\/uploads\/2019\/09\/0b66a3b07d6aa2ab1d2329d782c78615.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nIn Factorio gibt es einen Spielzustand <i>Game State<\/i> \u2013 das vollst\u00e4ndige Bild der Karte, des Spielers, der Entit\u00e4ten und allem anderen. Es wird deterministisch in allen Clients basierend auf den vom Server empfangenen Aktionen simuliert. Der Spielzustand ist heilig, und wenn er jemals vom Server oder einem anderen Client abweicht, tritt eine Desynchronisierung ein.<\/p>\n<p>Au\u00dferdem <i>Game State<\/i> Wir haben einen Latenzzustand <i>Latency State<\/i>. Er enth\u00e4lt eine kleine Untermenge des Hauptzustands. <i>Latency State<\/i> Er ist nicht heilig und stellt einfach dar, wie der Spielzustand in Zukunft basierend auf den Eingaben des Spielers aussehen wird. <i>Input Actions<\/i>.<\/p>\n<p>Daf\u00fcr speichern wir eine Kopie der erzeugten <i>Input Actions<\/i> in der Warteschlange der Verz\u00f6gerungen.<\/p>\n<p><img decoding=\"async\" alt=\"Es scheint, dass die Designer von Microsoft an neuen Icons f\u00fcr die wichtigsten Windows 10-Anwendungen, einschlie\u00dflich des &quot;Explorers&quot;, arbeiten.\" 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 Client-Seite etwa so aus:<\/p>\n<ol>\n<li>Wir wenden an <i>Input Actions<\/i> alle Spieler auf <i>Game State<\/i> so, wie diese Eingabeaktionen vom Server empfangen wurden.<\/li>\n<li>Wir entfernen aus der Warteschlange der Verz\u00f6gerungen alle <i>Input Actions<\/i>, die laut den Angaben des Servers bereits auf <i>Game State<\/i>.<\/li>\n<li>L\u00f6schen <i>Latency State<\/i> angewendet wurden, und setzen es zur\u00fcck, damit es genau so aussieht wie <i>Game State<\/i>.<\/li>\n<li>Wir wenden alle Aktionen aus der Warteschlange der Verz\u00f6gerungen auf <i>Latency State<\/i>.<\/li>\n<li>Basierend auf den Daten <i>Game State<\/i> und <i>Latency State<\/i> rendern wir das Spiel f\u00fcr den Spieler.<\/li>\n<\/ol>\n<p>\nAll dies wiederholt sich in jedem Takt.<\/p>\n<p>Zu kompliziert? Keine Sorge, 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 Takt des Spiels ausgef\u00fchrt werden, aber wenn er von einem Spieler keine <i>Input Actions<\/i> Informationen erhalten hat (zum Beispiel aufgrund einer erh\u00f6hten 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.\u201c Das wurde so gemacht, damit aufgrund von Verbindungsproblemen (oder Problemen mit dem Computer) eines Spielers die Aktualisierung der Karte bei allen anderen nicht verz\u00f6gert wird. Es ist anzumerken, dass <i>Input Actions<\/i> nicht ignoriert, sondern einfach verschoben werden.<\/li>\n<li>Die verz\u00f6gerte gesamte Hin- und R\u00fcckweg: Der Server versucht zu sch\u00e4tzen, wie hoch die Verz\u00f6gerung der Daten\u00fcbertragung hin und zur\u00fcck zwischen Client und Server f\u00fcr jeden Client ist. Alle 5 Sekunden bespricht er gegebenenfalls mit dem Client eine neue Verz\u00f6gerung (abh\u00e4ngig davon, wie sich die Verbindung in der Vergangenheit verhalten hat) und passt die Hin- und R\u00fcck\u00fcbertragungsverz\u00f6gerung entsprechend an.<\/li>\n<\/ul>\n<p>\nDiese Mechanismen sind an sich recht einfach, aber wenn sie zusammen verwendet werden (was h\u00e4ufig bei Verbindungsproblemen geschieht), wird die Logik des Codes schwer handhabbar und es gibt eine Menge Grenzf\u00e4lle. Zudem m\u00fcssen der Server und die Warteschlange der Verz\u00f6gerungen, wenn diese Mechanismen ins Spiel kommen, richtig ein spezielles <i>Input Action<\/i> mit dem Namen <i>StopMovementInTheNextTick<\/i>. Dadurch wird sichergestellt, dass der Charakter bei Verbindungsproblemen nicht von selbst wegl\u00e4uft (z. B. unter einen Zug).<\/p>\n<p>Jetzt muss ich Ihnen erkl\u00e4ren, wie die Auswahl von Entit\u00e4ten funktioniert. Einer der \u00fcbergebenen Typen <i>Input Action<\/i> \u2014 dies ist die \u00c4nderung des Auswahlstatus der Entit\u00e4t. Es informiert alle dar\u00fcber, auf welche Entit\u00e4t der Spieler mit der Maus zeigt. Wie man verstehen kann, ist dies eine der h\u00e4ufigsten Eingabema\u00dfnahmen, die von den Clients gesendet werden, daher haben wir es optimiert, um Bandbreite zu sparen, sodass es so wenig Platz wie m\u00f6glich einnimmt. Dies wird so umgesetzt: Bei der Auswahl jeder Entit\u00e4t speichert das Spiel anstelle der absoluten, hochpr\u00e4zisen Kartencoordinaten eine geringpr\u00e4zise relative Verschiebung von der vorherigen Auswahl. Dies funktioniert gut, da das Markieren mit der Maus normalerweise sehr nah an der vorherigen Auswahl erfolgt. Daraus ergeben sich zwei wichtige Anforderungen: <i>Input Actions<\/i> dass sie niemals \u00fcbergangen werden d\u00fcrfen und dass sie in der richtigen Reihenfolge ausgef\u00fchrt werden m\u00fcssen. Diese Anforderungen werden f\u00fcr <i>Game State<\/i>. Aber da die Aufgabe <i>Latency state<\/i> darum besteht, \"gut genug\" f\u00fcr den Spieler auszusehen, werden sie im Latenzzustand nicht erf\u00fcllt. <i>Latency State<\/i> ber\u00fccksichtigt <noindex><a rel=\"nofollow\" href=\"https:\/\/cdn.factorio.com\/assets\/img\/blog\/fff-302-megapacket-commit.jpg\">viele Randf\u00e4lle<\/a><\/noindex>, die mit Takt\u00fcberspringen und \u00c4nderungen der Hin- und R\u00fccklaufverz\u00f6gerungen verbunden sind.<\/p>\n<p>Sie k\u00f6nnen bereits erraten, worauf es hinausl\u00e4uft. Schlie\u00dflich beginnen wir, die Ursachen des Megapakets zu erkennen. Der Grund f\u00fcr das Problem liegt darin, dass bei der Entscheidung, ob die Aktion der Auswahl\u00e4nderung \u00fcbertragen werden soll, die Logik der Auswahl der Entit\u00e4ten auf <i>Latency State<\/i>beruht, 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 Takt\u00fcberspring- und Verz\u00f6gerungsregelmechanismen ins Spiel.<\/li>\n<li>Die Warteschlange des Latenzzustands ber\u00fccksichtigt diese Mechanismen nicht. Das f\u00fchrt dazu, dass bestimmte Aktionen vorzeitig gel\u00f6scht oder in der falschen Reihenfolge ausgef\u00fchrt werden, was zu einem fehlerhaften <i>Latency State<\/i>.<\/li>\n<li>Der Spieler hat kein Verbindungsproblem mehr und simuliert, um mit dem Server aufzuholen, bis zu 400 Takte.<\/li>\n<li>In jedem Takt wird eine neue Aktion zur \u00c4nderung der Auswahl der Entit\u00e4t generiert und zur \u00dcbertragung an den Server vorbereitet.<\/li>\n<li>Der Client sendet ein Megapaket von \u00fcber 400 \u00c4nderungen der Entit\u00e4tenauswahl an den Server (und auch andere Aktionen wie den Zustand des Schie\u00dfens, Gehens usw. waren von diesem Problem betroffen).<\/li>\n<li>Der Server erh\u00e4lt 400 Eingabeverfahren. Da ihm nicht erlaubt ist, auch nur einen einzigen Eingabeschritt zu \u00fcberspringen, befiehlt er allen Clients, diese Schritte 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, letztendlich riesige Netzwerkpakete erzeugte.<\/p>\n<p>Wir haben dieses Problem gel\u00f6st, indem wir alle Grenzf\u00e4lle der Aktualisierung und Unterst\u00fctzung der Verz\u00f6gerungsschlange behoben haben. Obwohl es ziemlich viel Zeit in Anspruch nahm, hat es sich letztendlich gelohnt, alles richtig umzusetzen, anstatt auf schnelle Hacks zu vertrauen.<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 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\".\" \/>\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) 5.0.1.1\" \/>\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=\".\" \/>\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 den Entwicklern von Factorio die L\u00f6sung des Multiplayer-Problems f\u00fcr 200 Spieler gelang | ProHoster","description":".","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":".","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","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"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}]}}