Etwas allgemeines Ryzom-Tuning - Kurz und Knapp
Posted: Tue Jan 12, 2010 5:56 pm
Etwas allgemeines Ryzom-Tuning - Kurz und Knapp
Einigen hier wird das nachfolgend Geschriebene nichts Neues sein.
Diese mögen es einfach überlesen und sich nicht zu Unrecht belehrt fühlen. Belehren is ja uncool. Ich verzichte auch weitgehend auf coole englische und unverständliche Fachbegriffe, mache dafür einfachere Erklärungen. Manch einer mag meinen Worten dadurch ggf. nicht so viel Wichtigkeit und Professionalität beimessen. Bitte dann einfach eine PM mit Name und Adresse, eine Beileidskarte wird dann automatisch versandt.
Also, in der Hoffnung, daß es das Thema brauchbar erklärt und beim "Tuning" der Einstellungen auf langsameren Rechnern behilflich sein möge, läßt sich dazu weitgehend folgendes sagen:
1. NeL
---
Die NeL ist eine Einkern-Engine, so wie der bedeutende Großteil aller Gameengines. Daraus ein Mehrkern-Monster zu machen ist eine immense Arbeit, nicht nur vom reinen Programmieren, sondern auch von der logischen Strukturierung her. Dinge zu parallelisieren, die normalerweise nacheinander laufen und oft aufeinander aufbauen, ist sehr schwierig. Ich würde nicht erwarten, daß das bald passiert, wenn überhaupt. Sinnvoller wäre: Unnötige Lasten in der Engine reduzieren, Ablauf optimieren, etc. Aber das tut hier nichts zur Sache, und die Devs wissen das sowieso.
2. Zugehörigkeit festlegen
---
Diese Option im Taskmanager ist für Ryzom und andere Einkernprozesse im Grunde recht sinnlos. Aber gut zu gebrauchen, wenn man Mehrkernprozesse auf wenige Kerne begrenzen will. Damit sie etwas anderes z.B. nicht stören.
NeL erledigt seine Arbeit in einem einzigen "Prozess". Dort baut ein Schritt auf dem nächsten auf. Das läßt sich technisch (ausser durch den Programmierer selbst) nicht "vergleichzeitigen". Teilt man das mehreren Kernen zu, so macht jeder ein Stückchen Arbeit und schiebt es dann einem anderen zu, der weitermacht. Durch das Weiterschieben ist das Aufteilen sogar potenziell langsamer als wenn der Prozess auf nur einem Kern gehalten wird - Trotzdem soll dies bei mehreren Spielern Vorteile gebracht haben.
Denkbar wäre, daß man andere Prozesse davon abhalten will, einen bestimmten Kern zu nutzen. Möglich wäre, Ryzom auf Kern 4 zu legen, und allen anderen die Nutzung von Kern 4 zu verbieten. Aber a) ist das nicht praktisch machbar, nicht jeder Prozess läßt sich per Hand einstellen, b) gibts (m.W.n.) keine Automatik oder speicherbare Einstellung dafür, und c) macht das der Kernel sowieso selbstständig und verteilt die Lasten meistens sinnvoll und gleichmäßig.
3. Performance
---
Ich spiele Ryzom (nicht normalerweise, aber gelegentlich) auf einem ION-Board. Eigentlich Müll, aber für knapp 20 Watt hat man einen guten Office- / Surf- / Netzwerkrechner / Mediaplayer. Lautlos. Hat eine schmale GeForce 9800 und 2 x 1,6GHz in der Atom-CPU, die technisch aber eher an die Leistung eines 1,2ers erinnern. Trotzdem: weitgehend flüssig
(Ich empfehle trotzdem nicht, so ein Ding zu kaufen, um darauf ernsthaft Ryzom oder andere 3D-Games spielen zu wollen - dafür ist und bleibt es Müll).
Bei Ryzom ist der Punkt, an dem die CPU wichtiger ist als die Grafikkarte, sehr niedrig gelegen. Es macht an einem bestimmten Punkt (wenn die Grafikkarte gut genug ist) also Sinn, die CPU zu entlasten. Jede Grafikkarte, die in den letzten 3-4 Jahren gekauft wurde und nicht gerade absoluter Müll war, ist stark genug für Ryzom. Als CPU ist ein guter DualCore mit 4GHz wesentlich wertvoller als ein Vierkerner mit 3,2GHz, was (siehe oben) für die meisten anderen Spiele ebenso gilt.
Daraus gefolgert sind mehr als 2 Kerne zwar nett, aber bezogen auf Ryzom nutzlos. Es kommt auf einen hohen Takt an. .. Noch
Obiges gilt natürlich nicht für Programme, die mehrere Kerne sinnvoll zu nutzen verstehen.
4. Tuning
---
Sound abstellen:
Der Sound kann in weniger als 1% der CPU-Leistung ganz bequem verrechnet werden. Was stresst ist ein schlechter Soundkartentreiber. Manche lassen das abspielende Programm einen Moment lang "vor dem Tresen warten", wenn es eine Hand voll neuen Sound abliefern möchte. In der Zeit kann das Programm nicht weiterarbeiten. Daher kann das Abschalten in Einzelfällen was bringen, manchmal sogar deutlich.
Ergänzung: Ich besitze 3 Rechner verschiedener Leistungsklassen, bei denen die Soundabschaltung keinen merkbaren Vorteil bringt. Bei einigen Ryzomspielern soll es aber durchaus deutlich spürbar sein, einen Versuch ist es in jedem Fall wert.
Grafikeinstellungen Offgame:
Größter Fresser ist jede Form von Anti-Aliasing.
Und zusätzliche (im Treiber hinzufügbare) Pixelshader, je nach Art.
Anisotrope Filterung ist im Schnitt weniger belastend.
Falls neuere Spiele mit normalen ingame-Einstellungen gut und flüssig arbeiten, kann man sie anlassen, dann liegt das Problem bei der Systembelastung.
Grafikeinstellungen Ryzom-Konfigurator:
Ati-Karten halten sich meist an DirectX, nVidia-Karten können beides gut.
Unter Erweitert kann man Pixel- und Vertexshader abstellen. Hilft aber meistens nur bei älteren Karten. Ryzom macht davon zwar Gebrauch, die Gewinne sind aber relativ gering, die optischen Verluste auch. Auch dort hilft einfaches Ausprobieren. Man erhöht damit auch die Kompatibilität zu älteren/schlechten Karten/Treibern.
Ingame-Einstellungen:
Obiges war bisher nur zur Grafikkartenentlastung.
Die Ingame-Einstellungen steuern Dinge, die die Grafikkarte und CPU unterschiedlich stark belasten. Das habe ich in der Tabelle unten mit dem Balken angegeben.
(Diese Balken geben nicht an, wie man die Regler im Spiel einstellen soll.)
Wer also primär seine Grafikkarte entlasten will, dem ist z.B mit dem Abstellen des Schattens geholfen, und wer eher die CPU etwas entlasten will, sollte hier die ersten beiden Einstellungen herunterregeln.
Die Wertung besteht aus der Kenntnis der NeL-Quellen, Erfahrung mit dieser und anderen Engines, und einer kleinen Portion Bauchgefühl. Als Referenz für die Verteilung nehme ich gedanklich ein System, in dem CPU und Grafikleistung in etwa ausgeglichen vorhanden sind, also weder eine überstarke CPU, noch überstarke Grafikkarten.
(Die obenstehenden haben normalerweise die größere Auswirkung)
[CPU -O--- GFX] - Landschaft Sichtweite
[CPU -O--- GFX] - Landschaft Qualität - Bezier-Verrechnung. Ist hauptsächlich CPU..
[CPU ---O- GFX] - Effekte Schatten aktivieren
[CPU --O-- GFX] - Allgemein Warte VBL - siehe unten *)
[CPU --O-- GFX] - Charakter Sichtweite
[CPU ---O- GFX] - Charakter Max Hoch Def.
[CPU ---O- GFX] - Landschaft Details am Sichthorizont
[CPU ---O- GFX] - Charakter Max Polygone
[CPU ---O- GFX] - Effekte Max Polygone - Beeinflußt Feuerwerk, Effekte wie beim Ring-Terminal, Flammen, Magie, etc ...
(Fast) vernachlässigbar:
[CPU ----O GFX] - Effekte Bloom - Sehr einfacher Filter, machen heutige Karten zum Frühstück.
[CPU --O-- GFX] - Landschaft Mikro-Vegetation
[CPU --O-- GFX] - Allgemein Textur - Macht ein wenig mehr Speicher zu, aber das wars schon. Belastet eher das System als die Karte, aber nicht deutlich.
*) Heißt im Treiber "Vertikale Synchronisierung". Nur benutzen, falls das Spiel eh schon flüssig läuft. Fügt Wartezeiten im Prozessablauf hinzu.
Sonstiges Offgame:
Defragmentierung wird überschätzt.
Auf gut organisierten Rechnern fast überflüssig.
Auf schlecht organisierten Heimrechnern mit normaler Nutzung nicht öfter als 1 Mal alle 1-3 Monate.
Auf Workstations kommts auf die Nutzung an.
Hintergrundtools:
Fressen Speicher. Selten genug CPU, daß es Spiele stören würde. Manche greifen auf spezielle Systemteile zu, was andere Programme zum Warten zwingt, wenn sie das gleiche vorhaben. Solche Tools bremsen dadurch den ganzen Rechner. Sollte man also besser gar nicht nutzen.
Wer Vista *hust*, oder Seven mit 2GB Ram und vielen Tools / Widgets nutzt:
Aufrüsten auf 4GB in 64bit-Versionen, oder unnötige Tools entfernen.
Ansonsten geht Ryzom in die Auslagerung, was mehr Stocken, Ladezeiten und Lags verursacht, als alles andere. Defekte und schlechte Netzwerkverbindungen mal aussen vor gelassen.
Ryzom machts sich in 700-1300 MB Ram recht gemütlich. Wer noch was mehr frei hat, erlaubt dem System, durch Caching (Intelligentes Zwischenspeichern) ein paar Festplattenzugriffe einzusparen, was ebenfalls Ruckler vermindert.
Soo. Wer hier angekommen ist: Glückwunsch, ist was länger geworden, als gedacht
Hmm .. hab sicher wieder irgendwas vergessen *grübl* .. gibt ja edit.
Edit: Kleine RS-Korrekturen, leicht umformuliert / erweitert
Edit: Nochmals auf Nachfrage leicht erweitert / umformuliert
Edit: Ein paar Rückmeldungen mit eingearbeitet, Formulierung verbessert.
Viel Erfolg, alle Angaben ohne Gewähr, dafür nach bester Erfahrung.
Grüße
[ˈtʌʎˌjaː ˈʃʌtˑənˌtans]
Einigen hier wird das nachfolgend Geschriebene nichts Neues sein.
Diese mögen es einfach überlesen und sich nicht zu Unrecht belehrt fühlen. Belehren is ja uncool. Ich verzichte auch weitgehend auf coole englische und unverständliche Fachbegriffe, mache dafür einfachere Erklärungen. Manch einer mag meinen Worten dadurch ggf. nicht so viel Wichtigkeit und Professionalität beimessen. Bitte dann einfach eine PM mit Name und Adresse, eine Beileidskarte wird dann automatisch versandt.
Also, in der Hoffnung, daß es das Thema brauchbar erklärt und beim "Tuning" der Einstellungen auf langsameren Rechnern behilflich sein möge, läßt sich dazu weitgehend folgendes sagen:
1. NeL
---
Die NeL ist eine Einkern-Engine, so wie der bedeutende Großteil aller Gameengines. Daraus ein Mehrkern-Monster zu machen ist eine immense Arbeit, nicht nur vom reinen Programmieren, sondern auch von der logischen Strukturierung her. Dinge zu parallelisieren, die normalerweise nacheinander laufen und oft aufeinander aufbauen, ist sehr schwierig. Ich würde nicht erwarten, daß das bald passiert, wenn überhaupt. Sinnvoller wäre: Unnötige Lasten in der Engine reduzieren, Ablauf optimieren, etc. Aber das tut hier nichts zur Sache, und die Devs wissen das sowieso.
2. Zugehörigkeit festlegen
---
Diese Option im Taskmanager ist für Ryzom und andere Einkernprozesse im Grunde recht sinnlos. Aber gut zu gebrauchen, wenn man Mehrkernprozesse auf wenige Kerne begrenzen will. Damit sie etwas anderes z.B. nicht stören.
NeL erledigt seine Arbeit in einem einzigen "Prozess". Dort baut ein Schritt auf dem nächsten auf. Das läßt sich technisch (ausser durch den Programmierer selbst) nicht "vergleichzeitigen". Teilt man das mehreren Kernen zu, so macht jeder ein Stückchen Arbeit und schiebt es dann einem anderen zu, der weitermacht. Durch das Weiterschieben ist das Aufteilen sogar potenziell langsamer als wenn der Prozess auf nur einem Kern gehalten wird - Trotzdem soll dies bei mehreren Spielern Vorteile gebracht haben.
Denkbar wäre, daß man andere Prozesse davon abhalten will, einen bestimmten Kern zu nutzen. Möglich wäre, Ryzom auf Kern 4 zu legen, und allen anderen die Nutzung von Kern 4 zu verbieten. Aber a) ist das nicht praktisch machbar, nicht jeder Prozess läßt sich per Hand einstellen, b) gibts (m.W.n.) keine Automatik oder speicherbare Einstellung dafür, und c) macht das der Kernel sowieso selbstständig und verteilt die Lasten meistens sinnvoll und gleichmäßig.
3. Performance
---
Ich spiele Ryzom (nicht normalerweise, aber gelegentlich) auf einem ION-Board. Eigentlich Müll, aber für knapp 20 Watt hat man einen guten Office- / Surf- / Netzwerkrechner / Mediaplayer. Lautlos. Hat eine schmale GeForce 9800 und 2 x 1,6GHz in der Atom-CPU, die technisch aber eher an die Leistung eines 1,2ers erinnern. Trotzdem: weitgehend flüssig
(Ich empfehle trotzdem nicht, so ein Ding zu kaufen, um darauf ernsthaft Ryzom oder andere 3D-Games spielen zu wollen - dafür ist und bleibt es Müll).
Bei Ryzom ist der Punkt, an dem die CPU wichtiger ist als die Grafikkarte, sehr niedrig gelegen. Es macht an einem bestimmten Punkt (wenn die Grafikkarte gut genug ist) also Sinn, die CPU zu entlasten. Jede Grafikkarte, die in den letzten 3-4 Jahren gekauft wurde und nicht gerade absoluter Müll war, ist stark genug für Ryzom. Als CPU ist ein guter DualCore mit 4GHz wesentlich wertvoller als ein Vierkerner mit 3,2GHz, was (siehe oben) für die meisten anderen Spiele ebenso gilt.
Daraus gefolgert sind mehr als 2 Kerne zwar nett, aber bezogen auf Ryzom nutzlos. Es kommt auf einen hohen Takt an. .. Noch
Obiges gilt natürlich nicht für Programme, die mehrere Kerne sinnvoll zu nutzen verstehen.
4. Tuning
---
Sound abstellen:
Der Sound kann in weniger als 1% der CPU-Leistung ganz bequem verrechnet werden. Was stresst ist ein schlechter Soundkartentreiber. Manche lassen das abspielende Programm einen Moment lang "vor dem Tresen warten", wenn es eine Hand voll neuen Sound abliefern möchte. In der Zeit kann das Programm nicht weiterarbeiten. Daher kann das Abschalten in Einzelfällen was bringen, manchmal sogar deutlich.
Ergänzung: Ich besitze 3 Rechner verschiedener Leistungsklassen, bei denen die Soundabschaltung keinen merkbaren Vorteil bringt. Bei einigen Ryzomspielern soll es aber durchaus deutlich spürbar sein, einen Versuch ist es in jedem Fall wert.
Grafikeinstellungen Offgame:
Größter Fresser ist jede Form von Anti-Aliasing.
Und zusätzliche (im Treiber hinzufügbare) Pixelshader, je nach Art.
Anisotrope Filterung ist im Schnitt weniger belastend.
Falls neuere Spiele mit normalen ingame-Einstellungen gut und flüssig arbeiten, kann man sie anlassen, dann liegt das Problem bei der Systembelastung.
Grafikeinstellungen Ryzom-Konfigurator:
Ati-Karten halten sich meist an DirectX, nVidia-Karten können beides gut.
Unter Erweitert kann man Pixel- und Vertexshader abstellen. Hilft aber meistens nur bei älteren Karten. Ryzom macht davon zwar Gebrauch, die Gewinne sind aber relativ gering, die optischen Verluste auch. Auch dort hilft einfaches Ausprobieren. Man erhöht damit auch die Kompatibilität zu älteren/schlechten Karten/Treibern.
Ingame-Einstellungen:
Obiges war bisher nur zur Grafikkartenentlastung.
Die Ingame-Einstellungen steuern Dinge, die die Grafikkarte und CPU unterschiedlich stark belasten. Das habe ich in der Tabelle unten mit dem Balken angegeben.
(Diese Balken geben nicht an, wie man die Regler im Spiel einstellen soll.)
Wer also primär seine Grafikkarte entlasten will, dem ist z.B mit dem Abstellen des Schattens geholfen, und wer eher die CPU etwas entlasten will, sollte hier die ersten beiden Einstellungen herunterregeln.
Die Wertung besteht aus der Kenntnis der NeL-Quellen, Erfahrung mit dieser und anderen Engines, und einer kleinen Portion Bauchgefühl. Als Referenz für die Verteilung nehme ich gedanklich ein System, in dem CPU und Grafikleistung in etwa ausgeglichen vorhanden sind, also weder eine überstarke CPU, noch überstarke Grafikkarten.
(Die obenstehenden haben normalerweise die größere Auswirkung)
[CPU -O--- GFX] - Landschaft Sichtweite
[CPU -O--- GFX] - Landschaft Qualität - Bezier-Verrechnung. Ist hauptsächlich CPU..
[CPU ---O- GFX] - Effekte Schatten aktivieren
[CPU --O-- GFX] - Allgemein Warte VBL - siehe unten *)
[CPU --O-- GFX] - Charakter Sichtweite
[CPU ---O- GFX] - Charakter Max Hoch Def.
[CPU ---O- GFX] - Landschaft Details am Sichthorizont
[CPU ---O- GFX] - Charakter Max Polygone
[CPU ---O- GFX] - Effekte Max Polygone - Beeinflußt Feuerwerk, Effekte wie beim Ring-Terminal, Flammen, Magie, etc ...
(Fast) vernachlässigbar:
[CPU ----O GFX] - Effekte Bloom - Sehr einfacher Filter, machen heutige Karten zum Frühstück.
[CPU --O-- GFX] - Landschaft Mikro-Vegetation
[CPU --O-- GFX] - Allgemein Textur - Macht ein wenig mehr Speicher zu, aber das wars schon. Belastet eher das System als die Karte, aber nicht deutlich.
*) Heißt im Treiber "Vertikale Synchronisierung". Nur benutzen, falls das Spiel eh schon flüssig läuft. Fügt Wartezeiten im Prozessablauf hinzu.
Sonstiges Offgame:
Defragmentierung wird überschätzt.
Auf gut organisierten Rechnern fast überflüssig.
Auf schlecht organisierten Heimrechnern mit normaler Nutzung nicht öfter als 1 Mal alle 1-3 Monate.
Auf Workstations kommts auf die Nutzung an.
Hintergrundtools:
Fressen Speicher. Selten genug CPU, daß es Spiele stören würde. Manche greifen auf spezielle Systemteile zu, was andere Programme zum Warten zwingt, wenn sie das gleiche vorhaben. Solche Tools bremsen dadurch den ganzen Rechner. Sollte man also besser gar nicht nutzen.
Wer Vista *hust*, oder Seven mit 2GB Ram und vielen Tools / Widgets nutzt:
Aufrüsten auf 4GB in 64bit-Versionen, oder unnötige Tools entfernen.
Ansonsten geht Ryzom in die Auslagerung, was mehr Stocken, Ladezeiten und Lags verursacht, als alles andere. Defekte und schlechte Netzwerkverbindungen mal aussen vor gelassen.
Ryzom machts sich in 700-1300 MB Ram recht gemütlich. Wer noch was mehr frei hat, erlaubt dem System, durch Caching (Intelligentes Zwischenspeichern) ein paar Festplattenzugriffe einzusparen, was ebenfalls Ruckler vermindert.
Soo. Wer hier angekommen ist: Glückwunsch, ist was länger geworden, als gedacht
Hmm .. hab sicher wieder irgendwas vergessen *grübl* .. gibt ja edit.
Edit: Kleine RS-Korrekturen, leicht umformuliert / erweitert
Edit: Nochmals auf Nachfrage leicht erweitert / umformuliert
Edit: Ein paar Rückmeldungen mit eingearbeitet, Formulierung verbessert.
Viel Erfolg, alle Angaben ohne Gewähr, dafür nach bester Erfahrung.
Grüße
[ˈtʌʎˌjaː ˈʃʌtˑənˌtans]