Arten von Lag in Minecraft und ihre Ursache - Druckversion +- rocketminers.de - Forum (https://board.rocketminers.de) +-- Forum: Leben auf rocketminers.de (https://board.rocketminers.de/forumdisplay.php?fid=28) +--- Forum: Alles weitere (https://board.rocketminers.de/forumdisplay.php?fid=29) +--- Thema: Arten von Lag in Minecraft und ihre Ursache (/showthread.php?tid=23) |
Arten von Lag in Minecraft und ihre Ursache - Matt - 09.08.2015 FPS-Lag (Client-seitig = Problem liegt beim jeweiligen Spieler, nicht beim Server) -abhängig von der PC-Hardware (CPU, GPU, RAM) ->Lag tritt auf, wenn der eigene Rechner das Spiel nicht mehr schnell genug berechnen kann. Ursachen: -Mobs und Blöcke mit Partikeleffekt -Tile-Entities (dein PC berechnet den Standort jeder Tile-Entity im Radius von 100 Blöcken um dich rum) -Entities (hohe Anzahl gedroppter Items, Mobs usw um dich rum) -Veränderungen des Licht-Levels (Client prüft Lichtwerte aller Blöcke im Chunk neu, wenn der Lichtlevel verändert wird) Lösung: -bessere Hardware -niedrigere Grafikeinstellungen -Optifine (nicht immer, aber häufig) -Tile-Entities und normale Entities niedrig halten -Redstoneschaltungen vermeiden (Redstonefackeln und Repeater leuchten -> ändern den Lichtlevel wenn angesteuert) TPS-Lag (Server-seitig = Problem betrifft alle Spieler auf dem jeweiligen Server) -abhängig von den (Server-) Ticks pro Sekunde -in einem Servertick werden ALLE im Spiel anfallenden Berechnungen durchgeführt -der Server führt pro Sekunde maximal 20 Ticks aus -> 50 Millisekunden dauert 1 Tick (1 Sekunde = 1000 Millisekunden / 20 = 50 Millisekunden pro Tick) ->Lag tritt auf, wenn so viele Berechnungen zusammenkommen, dass der Server länger als 50 Millisekunden braucht, um den Tick zu berechnen ->Verzögerte Berechnung -> langsamer laufendes Spiel Ursachen: -Alles was der Server berechnet wirkt sich auf die TPS aus. Allerdings gibt es drei Hauptursachen für Störungen 1.Tile Entities (Block-Objekte): -Alle Blöcke, die Extra-Daten beinhalten wie zBsp Truhen, Banner, Trichter, Schilder (Inhalt, Muster, Ausrichtung, Beschriftung etc.) -Liste aller Tile Entities: http://minecraft-de.gamepedia.com/Tile_Entity -Jeder Chunk speichert die Anzahl der darin befindlichen Tile Entities mit deren Position in beinhalteten Daten ->Müssen bei jedem Spieltick aus den Informationen des aktiven Chunks geladen werden Trichter sind ein Spezialfall, den ich weiter unten nochmal aufgreife Lösung: Weniger Tile Entities pro Chunk, oder Anzahl auf mehrere Chunks aufteilen (kaum durchführbar aufgrund der Menge an Tile Entities und des Kontrollaufwands) 2.Entities (Objekte): -Alle Items, die keine Blöcke sind. Spieler, Mobs, fallende Blöcke, gedroppte Items etc. (Können sich einen Block mit einer Fackel oder einem Zaun teilen) -Liste und Erklärung zu Objekten: http://minecraft-de.gamepedia.com/Objekt -Im Gegensatz zu Tile Entities werden Entities nicht im Chunk gespeichert. ->Der Server muss mit jedem Tick die Position aller Entities neu berechnen, bei Mobs auÃerdem noch die KI (Pathfinding) 3.World-Generator -Sorgt für immensen Performanceabfall beim Generieren neuer Chunks Verbindungs-Lag (Sowohl Client- als auch Server-seitig) -abhängig von der Internetverbindung des Spielers zum Server oder des Servers zu den Spielern (für uns uninteressant) Eigene Anmerkungen Trichter: Sind aufgrund ihres Codes ein Problem. In 1.8.3 wurde dies angepasst, allerdings mit mäÃigem Erfolg. -Ein offener Trichter prüft mit jedem Tick ob sich über ihm Entities zum aufsaugen befinden. ->Viele offene Trichter in einem Chunk = böse. -Ein Trichter mit einer Tile-Entity darüber prüft nur dann, wenn ein Tile-Entity-Update stattfindet. Also in dem Behälter darüber etwas geändert wird. ->Trichter mit Tile-Entity darüber in denen seltener was geändert wir = unbedenklich. -In Reihe geschaltete Trichter geben 2,5 Gegenstände pro Sekunde weiter. Da Trichter Tile-Entities sind, finden hier ständig Updates statt, die im Tick berechnet werden ->Trichterketten = je länger desto böser/ je öfter sie laufen desto böser -In Reihe geschaltete Trichter die offen sind prüfen zudem noch laufend, ob sich eine Entity zum aufsaugen darüber befindet = absolut böse Somit sind Trichter im normalen Gebrauch (geringe Anzahl, normale Benutzung) unbedenklich, im Verbund (Itemtransport, dauerhafte Brennanlagen) und mit Luftblock darüber allerdings ein Problem. Farmen: Kombinieren die Problematiken von Tile-Entities und Entities, wordurch Farmen nicht in performanceschonend- oder fordernd unterteilt werden können. Quellen: http://paradise-minecraft.co.uk/forum/index.php?topic=1366.0 https://www.spigotmc.org/wiki/lag-types-and-how-to-fix-them/ http://minecraft-de.gamepedia.com/ |