![]() |
Tips für Enginevergleiche/-tests unter MessEmu/Winboard/Arena
Hallo zusammen.
Nachdem ich im Moment ziemlich intensiv verschiedene Tests mit der Emu durchführe hier mal ein paar Tipps 1. Test mit beschleunigten Versionen oder "Wie würde die Engine spielen, wenn sie xxx MHz hätte Teil 1 Natürlich muss man dazu erstmal feststellen, inwieweit sich eine Emu auf dem eigenen Compi überhaupt beschleunigen lässt. Dazu ist es zwingend erforderlich genau zu messen, da die Angaben unter "Show FPS" gerade bei hoher Beschleunigung kaum mehr zu lesen sind. Am besten misst man auf einer entsprechend hohen Spielstufe mit Anfangszügen die nicht in der Bibliothek sind. Alternativ kann man auch mit schwierigen Problemstellungen arbeiten und dann die Zeiten von "unlimited" und 100 % vergleichen. Es macht Sinn dies mit mehreren Stellungen zu tun, und einen Durchschnittswert zu ermitteln, damit man eine exakte Messung erhält. Vorsicht: Es gibt immer 2 Möglichkeiten wie man z.B. unter Winboard oder Arena arbeiten kann. Man kann a) die Enginefenster offen lassen oder b) sie auf die Taskleiste verkleinern. Hier ist allerdings zu beachten, dass eine Engine, die in die Taskleiste verkleinert und somit unsichtbar ist - schneller wird. Das liegt daran, dass Windows hier nicht mehr mit der Darstellung der Engine belastet wird. Gerade bei Rechnern mit OnBoard-Grafik kann das gewaltige Unterschiede ausmachen. So bekomme ich auf meinem Rechner z.B. die Emulation eines Boris Diplomat auf nahezu die 60fache Geschwindigkeit. Lege ich ihn allerdings in die Taskleiste, so dass nur noch Winboard zu sehen ist, geht er sogar auf die 120fache Speed rauf. Gerade bei Boris lässt sich das schön messen, da man eine exakte Bedenkzeitvorgabe geben kann. Gebe ich ihm eine Bedenkzeit von 6 Stunden und lasse ihn in der Taskleiste verschwinden, dann antwortet Winboard bei mir nach ziemlich genau 3 Minuten. Lasse ich das Emu-Fenster jedoch offen, dauer es erheblich länger. Ebenfalls wichtig: Je nachdem, welche Emulation zu Grunde liegt, wie kompliziert deren Grafik aufgebaut ist, wieviele Engineausgaben erfolgen, etc. können die Werte zwischen "Enginefenster offen" und "Engine in Taskleiste" differieren. Bei manchen Geräten erhält man durchaus doppelten Speed bei unsichtbarem Emu-Fenster, bei anderen liegt der Geschwindigkeitsvorteil bei vielleicht nur 30 %. Man kommt also nicht drum herum, bei jeder einzelnen Engine genaue Messungen vorzunehmen. Man kann auch nicht davon ausgehen, dass sich Engines mit gleicher MHz-Zahl und gleichem Prozessor auch gleich verhalten. Einfach weil die Grafik z.B. bei einem Sargon 2.5 MGS eine andere ist als beim Sargon 2.5 ARB. Daher wird die maximal erreichbare Geschwindigkeit vermutlich auch differieren. Will man genaue Werte muss man also wirklich BEI JEDEM Gerät messen. - to be continued - |
AW: Tips für Enginevergleiche/-tests unter MessEmu/Winboard
1. Test mit beschleunigten Versionen oder "Wie würde die Engine spielen, wenn sie xxx MHz hätte Teil 2
Hat man nun die höchste emulierbare Geschwindigkeit gefunden, dann muss man noch eine Spielstufe finden, unter der man nun spielen kann. a) Bei Geräten wie Boris oder Delta 1 etc. ist das natürlich leicht, da hier die Antwortzeit exakt vorgegeben werden kann. Will ich wissen wie ein 10mal schnellerer Boris spielen würde, dann kriegt er 10mal mehr Zeit als normal (also 5 Minuten für Aktivschach, 30 Minuten für Turnierschach) wird in der Emu auf 1000 % gesetzt, fertig. b) Etwas schwieriger wird es bei Geräten, die einfach nur verschiedene Spielstufen mit vorgegebenen Durchschnittszeiten haben. Hier kann man einfach nicht alle möglichen MHz-Experimente ausprobieren sondern muss sehen, was die Spielstufen hergeben und ob deren durchschnittliche Bedenkzeiten noch im Rahmen des Machbaren liegen. Ich nehme jetzt mal den Chess Challenger Voice als Beispiel. Er hat neben der Turnierstufe 6 (3 Minuten) auch noch die Spielstufen 7-9 und H. H ist die Analysestufe und rechnet unendlich lange. Die können wir also vergessen, es sei denn, wir wollen jede Berechnung von Hand abbrechen. Die Spielstufen 7-9 haben folgende durchschnittliche Bedenkzeiten: Level 7: 3 Min 20 sec Level 8: 6 Min Level 9: 11 Min Damit kann ich also zuverlässig testen wie ein CCVoice mit 111 %, 200% oder 367 % in Turniereinstellung abschneiden würde. Viel mehr geht nicht, wenn im Treiber keine Möglichkeiten vorhanden sind, die MHz-Zahl einzustellen (was bei einigen Geräten ja möglich ist). Für Aktivschach hat man bei unserem Beispiel mit dem Voice ein paar Möglichkeiten mehr, da die Bedenkzeiten ja kürzer sind. Ich kann also zum Beispiel auch testen wie ein 600 % Voice oder ein 1200 % Voice Aktivschach spielt, indem ich ihn mit 600% auf Turnierstufe bzw. mit 1200% Level 8 laufen lasse (immer vorausgesetzt der emulierende Computer bringt die entsprechende Leistung) c) Ganz schwierig wird es bei Geräten die eine Einstellung x Züge in y Stunden/Minuten erfordern. Hier geben die Treiber unter Winboard meistens keine mögliche Einstellung her, während man bei den Fällen a und b im Treiber das Level unter "Engineoptionen" einstellen kann. Man kann leider oftmals auch nicht vor Beginn der Partie in der Engine direkt die Spielstufe definieren, da sie bei Partiebeginn (zumindest in Winboard) von der Voreinstellung überschrieben wird. Dies liegt einfach daran, dass die entsprechenden Einstellungen auf dem Schachcomputer erheblich schwieriger sind und entsprechend in der lua-Steuerdatei viele Eingaben zu berücksichtigen sind. Da hat Franz natürlich keine gesteigerte Lust zu, was auch verständlich ist. Man muss also entweder selbst in dieser Lua rumpfuschen (wobei Franz dann aber immer noch die Möglichkeit schaffen müsste, zumindest die Eingabemöglichkeit im Treiber zu ermöglichen) oder aber man benutzt folgenden Trick: Partie unter Winboard starten und den ersten Zug ausführen (lassen). Der kommt, wenn man nicht gerade mit 1. a4 oder 1. h4 beginnt sowieso meist aus der Bibliothek, macht also wenig aus, wenn bei diesem die Spielstufe (noch) nicht stimmt. Danach in Winboard im Menu "Mode" auf "Pause" gehen und dann in der Engine direkt (nicht unter Winboard) die entsprechende Spielstufe einstellen. Danach die Pause in Winboard wieder rausnehmen. Fertig. Unter anderen GUIs muss man entsprechend sehen ob eine solche Pause-Einstellung möglich ist. Dann geht es genauso. Ist so eine Einstellung nicht möglich, dann bleibt wirklich kaum etwas anderes übrig als auf Winboard auszuweichen. Entsprechende Tips, wie man sowas unter anderen GUIs lösen kann, werden natürlich gerne entgegen genommen. Ich ergänze den Thread dann entsprechend. Anmerkung: Für einen reinen Test oder zum selbst spielen stellen sich die Probleme mit der Turnierbedenkzeit natürlich nicht, da man hier Winboard nicht notwendigerweise braucht. Normal ergeben sich solche Probleme erst dann, wenn man verschiedene Engines gegeneinander antreten lassen will. Allerdings für das normale Spiel Mensch-Computer ist es natürlich auch schön, wenn man sofort eine vernünftige PGN-Datei hat oder die Partie gleich in eine bestehende PGN anhängen kann. Und dafür ist natürlich eine vernünftige GUI die schönere Lösung. Daher wurde auch alles hier bereits mit aufgeführt. Im Enginewettkampf ergeben sich dann noch ganz andere Probleme, wie wir sehen werden - to be continued - |
AW: Tips für Enginevergleiche/-tests unter MessEmu/Winboard
Nachdem der erste Teil nun fertig ist, kommen wir zum Teil 2
2. Enginevergleiche bzw. Enginewettkämpfe unter Winboard auf Basis der normalen Geschwindigkeit der Geräte Hier wird es ein wenig knifflig. Vielleicht will ja der eine oder andere (hallo Micha) die Engines auf einfachem Wege vergleichen um Partien für eine Elo-Liste zu erhalten. Dabei muss man sehr genau aufpassen, dass die Ergebnisse nicht verfälscht werden. Zuerst mal das Grundsätzliche. Man kann mehrere Dinge machen. Das einfachste ist natürlich, die Engines in normaler Geschwindigkeit spielen lassen. Da hat man dann überhaupt keine größeren Probleme. Engine 1 definieren, Engine 2 definieren, die entsprechenden Spielstufen in den Enginedefinitionen oder bei komplizierteren Zeiteinstellungen in der Engine selbst definieren wie unter 1. gepostet, fertig. Aber abgesehen davon dass man damit natürlich jede Menge Strom für den Computer verbraucht, dauert es auch lange. Man kann natürlich in der Emulation die Sache auch beschleunigen, dabei muss man aber einige Dinge berücksichtigen. Zuerst einmal. Man sollte mindestens 3 Kerne haben. Einen für jede Engine und der 3. muss natürlich auch da sein, damit die Engines nicht durch Windows beeinträchtigt werden. Mit einem gängigen 4-Kern-Prozessor sollte man keine Probleme haben. Nun beginnt wieder dasselbe Spiel... messen. Wie hoch können wir die Engines überhaupt beschleunigen und vor allem, wie hoch können wir sie beschleunigen, wenn noch eine 2. Engine mit ebenfalls höchstmöglicher Beschleunigung geladen ist. Die Vorgehensweise und die Dinge auf die man achten muss, sind unter Punkt 1 beschrieben. Auch hier gilt: Eine nicht sichtbare Engine in der Taskleiste ist schneller, als wenn ich sie auf die Oberfläche hole, vor allem bei OnBoard-Grafikkarten. Haben wir die entsprechenden Werte ermittelt, sollten wie sie uns generell für die spätere Verwendung notieren. Für den Enginewettkampf müssen wir nun einige Fälle unterscheiden. Fall A: Keine Engine benutzt Permanent Brain Der einfachste Fall. Wir wollen 2 Engines auf Aktivstufe oder Turnierstufe vergleichen, stellen also bei beiden die entsprechende Stufe ein, geben jeder Engine Unlimited Speed und geniessen die Show. Da keine Engine Permanent Brain verwendet, können wir beide auch mit jeder möglichen Geschwindigkeit laufen lassen, ohne dass das Ergebnis verfälscht wird. Jede Engine wird sich immer genauso verhalten, als würde sie auf normaler Geschwindigkeit laufen, nur eben schneller. Auf diese Weise kann man in einer Stunde Dutzende Turnierpartien z.B. zwischen Boris und Delta 1 erzeugen, wenn man das will Fall B: Mindestens eine der Engines benutzt Permanent Brain Der Fall ist etwas schwieriger, da hier die Gefahr besteht, dass Ergebnisse verfälscht werden. Ein Beispiel: Ich könnte z.B. mit Maximalspeed Boris auf Faktor 60 beschleunigen. Er soll nun gegen Sargon 2.5 antreten, den ich aber nur auf Faktor 20 beschleunigen kann. Sargon 2.5 beherrscht Permanent Brain. Angenommen, ich würde jetzt beide auf Turnierstufe stellen (Boris 3 Minuten, Sargon Level 4) und mit maximaler Speed laufen lassen. Was passiert? Für Boris macht es keinen Unterschied. Er rechnet intern 3 Minuten lang, auch wenn wir beschleunigt den Zug bereits nach 3 Sekunden erhalten. Bei Sargon, der vielleicht den Zug von Boris erwartet hat, sieht das jedoch anders aus. Er hatte intern keine 3 Minuten für das Permanent Brain Zeit sondern nur 1 Minute, da Boris 3mal so viel beschleunigt werden konnte, wie er selbst. Das heisst: Beschleunige ich beide auf den maximal möglichen Wert, dann wird Sargon benachteiligt und das Ergebnis unseres fiktiven Wettkampfes damit verfälscht. Nun brauchen wir also wieder unsere Messwerte. Wir wissen: Boris kann maximal 60fach beschleunigt werden, Sargon 20 fach. Wollen wir den Wettkampf schneller ablaufen lassen, als er normal mit den Originalgeräten zu bewerkstelligen wäre, müssen wir uns also an dem Gerät orientieren, welches wir am wenigsten beschleunigen können, in diesem Fall also Sargon. Wir können also den Wettkampf um den Faktor 20 schneller ablaufen lassen. Der Wettkampf geht dann immer noch weit schneller. Boris wird bei Einstellung 3 Minuten etwa 9 Sekunden für die Antwort brauchen und auch Sargon wird , sofern er einen Zug erwartet, dann intern 3 Minuten Rechenzeit gehabt haben. Will man ganz auf Nummer Sicher gehen und eventuelle Messungenauigkeiten verhindern, dann nimmt man nicht den Maximalwert sondern vielleicht nur 18fache Geschwindigkeit. Auch dann wird man einen Vergleichswettkampf weit schneller bewerkstelligen können als mit den Originalgeräten. Dasselbe gilt auch, wenn beide Geräte Permanent Brain beherrschen. Auch hier muss man sich an dem Gerät orientieren, welches man am wenigsten Beschleunigen kann. Hat man natürlich Geräte die sich nicht oder nur wenig beschleunigen lassen, wie z.B. den Fidelity V11, dann läuft der Wettkampf halt im dümmsten Fall in Originalgeschwindigkeit ab. Aber anders geht es eben nicht. Um ein genaues Vergleichsergebnis bei eingestelltem Permanent Brain zu erhalten, muss ich mich zwingend an dem Gerät orientieren, dass ich am wenigsten beschleunigen kann. Da führt leider kein Weg dran vorbei. - to be continued - |
AW: Tips für Enginevergleiche/-tests unter MessEmu/Winboard
Nun noch ein kleiner Nachtrag, da ich gestern von einem User gefragt wurde, wie man Enginewettkämpfe eventuell besser automatisieren kann.
Da stoßen wir im Moment leider noch ans Limit der Möglichkeiten. Vor allem bei Winboard. Winboard ist in dieser Hinsicht ziemlich dämlich. Zwar gibt es hier im Menu "Mode" die Option "Machine Match" aber leider funktioniert diese Option mit unseren Mess-Emus nicht zufriedenstellend. Winboard selbst erkennt nicht, dass nach einem regelgemäßen Ende der Partie eine neue Partie beginnen soll und bleibt nach der ersten Partie einfach stehen. Es scheint, dass normale Windows-Engines in diesem Fall noch irgendetwas an die GUI senden wodurch dann die GUI weiss: "Aha, Partieende, weiter gehts". Die Mess-Engines tun dies anscheinend nicht. Inwieweit hier Arena schlauer ist, habe ich noch nicht ausprobieren können, werde dies aber in den nächsten Tagen nachholen. Große Hoffnungen habe ich allerdings hier auch bei Arena nicht. Zwar ist Arena in vielfacher Hinsicht klüger als Winboard, aber an einigen Problemen kommt auch Arena wohl nicht vorbei. Ich musste bisher jedenfalls bei vielen Enginetests immer mal wieder eingreifen. Nicht in der GUI, aber bei den Emulationen selbst. Manche Geräte sagen ja im Vorfeld das Matt an oder geben eine Partie auf, wenn das Matt unvermeidlich ist. Wenn nun ein Sargon 2.5 seine Laufschrift anzeigt: "I Resign, OK?" kann man danach weiterspielen und es hat keine Auswirklung. Einige Fidelity-Sensory-Geräte sind da aber in Bezug auf die GUI sehr gemein. Sie sagen ein Matt an, indem einige Leuchtdiodenreihen komplett aufläuchten und erwarten dass man dann CL drückt, bevor sie sich zum Weiterspiel bewegen lassen bzw. bevor sie überhaupt den Zug anzeigen, den sie zu spielen gedenken. Und so wartet die GUI... und wartet... und wartet... und kommt nix. Allein aus diesem Grund ist ein "Über-Nacht-Schnellturnier" bereits zum Scheitern verurteilt. Hier gibt es leider nur die Möglichkeit, selber in den lua-Dateien zu experimentieren und vielleicht eine Abfrage einzubauen, die checken kann, ob z.B. eine ganze Reihe Dioden aufleuchten (wie eben bei Fidelity Sensory-Geräten) oder etwas anderes geschieht, was vielleicht bei anderen Geräten üblich ist. An Franz braucht man sich in diesem Fall nicht zu wenden, da er bereits angekündigt hat, sich um diese .lua-Dateien nicht mehr kümmern zu wollen (wenngleich... vielleicht kann ihn ja der eine oder andere mit einem Kasten Bier oder irgendetwas anderem bestechen, grins) Oder aber man wendet sich an den Ersteller der .lua-Dateien. Den Link zu den Dateien habe ich ja schon mal gepostet. Möglicherweise kann man in dem entsprechenden GitHub-Portal ja mal solche Fragen stellen. By the Way: Wenn jemand solche Probleme lösen kann und eine solche lua-Datei verändert oder an anderer Stelle eine Lösung findet, wäre es nett, wenn er uns am Schatz seines Wissens teilhaben lässt und diese Dateien dann auch zur Verfügung stellt. Edit: Micha hat mir gesagt, dass mehrere Partien unter Arena zu funktionieren scheinen (wobei das sicherlich auch Engineabhängig ist, denn das Fidelity Sensory-Problem wird auch Arena nicht automatisch lösen), aber sich die Spielstufen angeblich nicht verändern lassen. Ich habe es selbst noch nicht ausprobiert. Wer aber ein Turnier oder einen Wettkampf starten will, kann auch in den .lua-Dateien einfach den Wert "Interface Level" vom dort eingegebenen Standardwert auf den gewünschten Wert ändern. Das funktioniert zwar meist nicht mit komplizierten Zeitstufen wie bei Mephisto Almeria und ähnlichen, aber mit den normalen Spielstufen bzw. bei Boris mit der Zeiteinstellung funktioniert es. - to be continued - |
AW: Tips für Enginevergleiche/-tests unter MessEmu/Winboard
Zitieren:
Wer also Spaß an vollautomatischen Turnieren mit Schachcomputern hat, kann dieses unter Arena durchaus durchführen. Und selbst bei Spielstufen bzw. speziellen Einstellungen (z.B. Turnierbibliothek o.ä.) findet sich eine Lösung. Ist nicht ganz simpel, aber auch nicht so schwer, sprich machbar. Die lua-Dateien muss nach nicht anfassen, geht auch etwas einfacher. Als Test hatte ich folgende Konstellation gewählt. Tasc R40 V2.5 mit normaler Turnierbibliothek gegen Mephisto Risc II ebenfalls mit Turnierbibliothek. Als Spielstufe hatte ich 30 Sekunden pro Zug gewählt. Also nicht nur 1 Partie, sondern ein Turnier über mehrere Partien. Aber wer nicht der große Freund von vollautomatischen Turnieren ist, wird mit Arena sehr glücklich. Was mir bisher gar nicht bewusst war, Arena ermöglicht das Spiel gegen einen Schachcomputer wie gegen eine Engine, d.h. die Antwortzüge des Schachcomputers werden automatisch unter Arena auf dem virtuellen Brett ausgeführt. Und da man unter Arena auch entsprechende externe Bretter anschließen kann (habe ich aber noch nicht getestet), hat man die fast perfekte Schachcomputerstation. Ich muss gestehen, ich bin schwer begeistert von all den Möglichkeiten. Gruß Micha |
AW: Tips für Enginevergleiche/-tests unter MessEmu/Winboard
Hallo ....
Zitieren:
Schade das Franz in dieser Richtung nichts mehr entwickelt. Aber man hat ja genug Engines zur Auswahl. Viele grüße Mark 1 |
AW: Tips für Enginevergleiche/-tests unter MessEmu/Winboard
Zitieren:
Zitieren:
|
AW: Tips für Enginevergleiche/-tests unter MessEmu/Winboard
Hallo Hartmut....
Wie sieht es eigenglich mit der Reduzierbarkeit von Partien aus Engine A gegen Engine B . Da ja alles automatisiert abläuft sind ja die Zeiten immer identisch bei der Zugübermittlung. Das Pergament Brain spielt dabei wohl keine Große Rolle , wenn es um Abwechslung geht bei den Partien. Wie wäre es wenn man eine Verzögerung bei jeden Zug die zwischen 2 und 5 sec (RND) dauert und so eventuelle mehr Abwechslung bringt. In Endeffekt simuliert man halt den Menschen der die Züge eingibt . Ich Weiß , doofe Idee und nicht im Sinne der Entwickler .Aber für uns vielleicht ein nettes Feature bei Eng- Eng Vergleiche. Viele Grüße Mark 1 |
AW: Tips für Enginevergleiche/-tests unter MessEmu/Winboard
Zitieren:
|
AW: Tips für Enginevergleiche/-tests unter MessEmu/Winboard
Hallo Hartmut
Zitieren:
Viele Grüße Mark 1 |
AW: Tips für Enginevergleiche/-tests unter MessEmu/Winboard
OK, jetzt hab ich es verstanden. Aber das kann Dir halt auch passieren, wenn Du die Geräte im Original gegeneinander spielen lässt. Verhindern lässt sich sowas nur, wenn Du - wie z.B. im TCEC Superfinale - die Eröffnungen vorgibst. Und das gibt die Emu nun beim Besten Willen nicht her. Eine Verzögerung um ein paar Sekunden, die z.B. die menschliche Eingabe simuliert, würde in der Regel hier nichts ändern. Ich habe schon oft Partien - auch mit Geräten ohne Permanent Brain - automatisch spielen lassen. Natürlich gab es da ab und an Wiederholungen. Die wurden dann aber in den meisten Fällen durch den Zufallsgenerator abgefangen (und wenns irgendwo im 20. Zug war). Damit muss man halt leben. Innerhalb eines Datenbankprogramms kann man wirklich komplette Dubletten ja dann löschen und eventuell ein paar Partien nachspielen, wenn man z.B. wirklich 50 verschiedene Partien haben will.
|
AW: Tips für Enginevergleiche/-tests unter MessEmu/Winboard
Bevor ich zum Teil 3 komme, noch ein kleiner Nachtrag.
Bei Enginevergleichen hat sich so einiges verbessert, einiges ist - zumindest für meine Tests - schlechter geworden. Die meisten Probleme, dass Partien wegen einer Mattansage angehalten werden - scheinen zwischenzeitlich behoben zu sein. Scheinbar gibt es für solche Fälle nun entsprechende Abfragen in den lua-Dateien, zumindest bei den meisten Geräten In einigen Fällen hingegen ist scheinbar leider keine Lösung möglich gewesen. Mattansagen des Savent (oder entsprechende Aufgabebekundungen, wenn ein unausweichliches Matt gesehen wird) enden immer noch mit einem Dauerton und Abbruch der Partie, d.h. der Savant spielt nicht weiter und wartet darauf, dass man sich mit Trace Forward das Matt zeigen lässt oder zumindest den nächsten Zug auf dem Brett anzeigen lässt. Danach läuft das Spiel weiter. Für automatische Enginevergleiche ist das etwas störend. Wer jedoch "über Nacht" einen Enginewettkampf startet, der wird sich wenig daran stören. Der Mattsetzende gewinnt im dümmsten Fall dadurch, dass (z.B. in Arena) der Gegner durch Zeitüberschreitung verliert. So gehts natürlich auch. Ist man dabei und sieht das Matt, kann man natürlich die Partie dann auch in Arena einfach durch klicken auf "1-0" oder entsprechend "0-1" beenden und die nächste Partie des Wettkampfes wird gestartet. Ein ähnliches Problem ergibt sich auch bei anderen Geräten, die vor dem Matt aufgeben. Hier wird dann einfach nichts mehr an die GUI übermittelt und das automatische Spiel steht bis die Zeit abgelaufen ist. Trotzdem ist durch verbesserte lua-Dateien die Fehleranfälligkeit bei automatischen Matches stark gesunken, was als positiv zu bewerten ist. Allerdings sind die neuen lua-Dateien nun auch auf das eingebaute Sensorbrett von Mess abgestimmt. Das kann man als positiv werten, jedoch ist es in automatischen Matches teilweise störend. Lässt man Engines nicht mit normaler Geschwindigkeit sondern beschleunigt laufen kommt es zum Problem, dass die Engines immer mit diesem sichtbaren Brett starten. Dieses hat - ganz egal ob es nun benutzt wird oder nicht - schon mal eine weit umfangreichere Grafik als wenn man nun nur die Bedienelemente sichtbar hätte. Daraus ergibt sich, dass der Beschleunigungsfaktor bei "unlimited" nun deutlich geringer ist. Daran ändert leider auch das Ausblenden dieses Sensorboards (im Enginefenster von Mess unter Options-Video-Internal Layout) nur wenig. Zwar ist die Engine dann etwas schneller, erreicht aber nicht mehr die Geschwindigkeiten der Version von Anfang Juli mit der ich den Test begonnen hatte. Und weil manche Verbesserung natürlich auch ihre Nachteile mit sich bringt, ist auch in dem nun weit umfangreicheren lua-Code eventuell ein Grund gegeben, dass die Engines in der Einstellung "unlimited" nun etwas träger reagieren wie früher. Immerhin wird ja im Hintergrund ständig Code abgearbeitet, der sich auf die Performance auswirkt. Bei normaler Geschwindigkeit merkt man das in der Regel nicht, bei maximal beschleunigten Engines hat es allerdings seine Auswirkungen. Man sollte also, wenn man gerade ein Match durchführt, nicht während des Matches auf eine neue Version umsteigen, da jede neue Version aufgrund geänderter Optionen und geänderter lua-Dateien eventuell Änderungen in der Performance mit sich bringt. Vor Benutzung einer neuen Programmversion sollte man daher stets neue Messungen durchführen, inwieweit sich eine Engine beschleunigen lässt. Damit komme ich nun zum letzten Punkt unserer Enginematches. In Arena und Winboard sollte man die Bedenkzeiteinstellung innerhalb der GUI etwas großzügig gestalten, damit die GUI nicht von sich aus eine Matchpartie wegen Zeitüberschreitung abbricht. Dies hat folgenden Hintergrund: Sobald ein Zug ausgeführt wird, wird er an die GUI übertragen und die Bedenkzeit des Gegners beginnt zu laufen. Bei Sensorbrettern normalerweise kein Problem, da ein Zug normalerweise dadurch ausgeführt wird, dass man die Figur vom Ausgangsfelt anhebt und auf dem Zielfeld abstellt. Es gibt also nur 2 "Tastenaktionen", Ausgangsfeld und Zielfeld. Anders ist es jedoch bei Tastengeräten. Hier werden in der Regel mindestens 5 Tasten gedrückt. Buchstabe Ausgangsfeld, Zahl Ausgangsfeld, Buchstabe Zielfeld, Zahl Zielfeld, Enter. Während dieser ganzen Eingaben läuft in der GUI aber bereits die Bedenkzeit. Bei normaler Enginegeschwindigkeit gehen so wichtige Sekunden verloren, was sich über die Partie natürlich summiert. Noch länger dauert es, bei der Emulation des Mattel, der nur mit Cursortasten bedient wird. Bis der Cursor durch andauerndes Drücken der Richtungstasten das Anfangsfeld ausgewählt hat und die Figur dann zum Zielfeld bringt, können schon mal locker 10 Sekunden vergehen. 10 Sekunden in denen innerhalb der GUI aber bereits die Zeit des Mattel läuft. Es macht also durchaus Sinn, innerhalb der GUI eine höhere Bedenkzeit einzugeben, als für die gewählte Spielstufe eigentlich erforderlich ist. Die Engines steuern ihre Bedenkzeit sowieso aufgrund ihrer eingestellten Spielstufen und richten sich nicht nach der GUI. Insofern kann man hier ruhig großzügig sein. Man könnte natürlich auch die Option abwählen, dass bei Zeitüberschreitung die Partie beendet wird oder eine Stufe wählen in der Zeitüberschreitungen von der GUI nicht angemahnt werden (z.B. Durchschnittlich x Sekunden/Zug oder Unendlich). Allerdings kommt einem da dann das oben bereits geschilderte "Aufgabeproblem" in die Quere, weswegen ich eher dazu neige eine höhere Turnierbedenkzeit einzustellen oder - was bei entsprechender Rechenleistung natürlich auch geht - beide Kontrahenten mit 110 % rechnen zu lassen (was dann diese zusätzliche Zeit auffängt und bei gleicher Einstellung beider Engines für keine einen Nachteil bedeutet) Nun noch ein Tipp zum Schluss. Bevor man unter Arena ein Match startet, sollte man jede Engine einmal reingeladen und die entsprechende Spielstufe eingestellt haben. Erst danach sollte man das Match anlegen. Zudem sollte bei Arena in den Turnieroptionen eingestellt sein, dass nach Ende der Partien die Engines neu geladen werden. Ansonsten kann es vorkommen, dass sich eine Engine - warum auch immer - auf die Grundeinstellungen zurücksetzt, noch die alte Partie im Speicher hat, oder sonst irgendeinen Unsinn anstellt. Wird sie neu geladen, werden jedoch die in den Engineoptionen definierten Spielstufen neu eingestellt und die Engine ist auch definitiv im "New Game" Modus. Nun noch kurz der 3. Punkt 3. automatische Turniere mit mehreren Teilnehmern Das ist im Endeffekt schnell abgehakt. Grundsätzlich gilt unter Arena dasselbe wie bei einem Match zwischen 2 Engines. Es sind halt von vornherein alle nötigen Messungen vorzunehmen, von vornherein jede einzelne Engine einmal reinzuladen und die entsprechenden Leveleinstellungen durchzuführen und dann erst das Turnier entsprechend anzulegen. Bezüglich möglicher Probleme gilt das bereits vorher für Matchpartien gesagte. Was ich allerdings nun noch nicht probiert habe sind Matches zwischen Engines, bei denen eine bestimmte Zeitstufe (also z.B. 40/120) definiert werden muss (z.B. neuere Mephistos), die also nicht über normale Levels oder feste Zeiteinstellungen wie die älteren Geräte verfügen. Daher an dieser Stelle nochmal... ... - to be continued - |
AW: Tips für Enginevergleiche/-tests unter MessEmu/Winboard
"Nun noch ein Tipp zum Schluss. Bevor man unter Arena ein Match startet, sollte man jede Engine einmal reingeladen und die entsprechende Spielstufe eingestellt haben."
Das Problem sollte doch jetzt automatisiert sein durch die entsprechenden Einträge in den LUA Skripts, oder? |
AW: Tips für Enginevergleiche/-tests unter MessEmu/Winboard
Zitieren:
|
AW: Tips für Enginevergleiche/-tests unter MessEmu/Winboard
Hallo Hartmut..
Schöne Beschreibung. Aber wie handhabst du dass mit MM2,MM4,Rebel und ich glaube auch MM5. Bei Engine Vergleichen mit der aktuellen Messchess Version geht keine Partie zu ende weil immer wieder die interne Zeitkontrolle zu schlägt in den Engines. Bei den vor Versionen hatte Franz die entsprechende Lua Dateien umgeschrieben und es funktionierte ohne Probleme . Offensichtlich hat Sandro die entsprechende Routine den Lua Datei entfernt . Viele Grüße Mark 1 |
AW: Tips für Enginevergleiche/-tests unter MessEmu/Winboard
Gerade bei denen hab ich es noch nicht probiert. So schnell wie im Moment neue Versionen kommen, kommt man ja auch nicht nach... lach.
Bei den genannten Geräten mal Franz anhauen. Vielleicht lässt er sich ja erweichen. Er weiss ja am besten, was er in den lua-Dateien hier verändert hat. Oder im Github von Snadro darauf hinweisen, dass der sich das mal ansieht. Aber gerade bei MM4 und MM5 benutz ich unter Arena und Co immer noch die alten ursprünglichen Dateien, die man auch auf der Rebel-Homepage noch findet und die speziell für Arena gemacht wurden. Einfach weil sie am unkompliziertesten laufen. Und da hat man die Probleme nicht. Aber klar... befriedigend ist das natürlich nicht. Wie gesagt. Mal Franz fragen, der weiss ja wo er die Änderungen vorgenommen hat und kann die eventuell wieder einfügen. |
AW: Tips für Enginevergleiche/-tests unter MessEmu/Winboard
Zitieren:
Beim MM2 kann man ja weiterspielen. Wird die Bedenkzeit überschritten erscheint zwar das "Time"-Symbol aber durch drücken von CL kann man das wegdrücken und dann weiterspielen. Das ist zwar in automatischen Turnieren störend, weil man quasi dabeibleiben muss um an der entsprechenden Stelle einzugreifen, aber ohne Änderung der .lua-Datei nicht zu ändern. Hier musst Du mal Franz oder Sandro anhauen. Beim MM4 und MM5 kann man das ebenfalls mit der CL-Taste machen, muss es aber nicht. Normalerweise kann (zumindest laut Anleitung) hier auch weitergespielt werden, indem man einfach seinen Zug ausführt. Wie reagiert Arena mit der Mess-Engine an dieser Stelle? Normalerweise sollte doch eigentlich nichts passieren. Während der Gegner des MM4 am Zug ist, macht die .lua des MM4 nichts. Führt der Gegner den Zug aus (und steht zwischenzeitlich Time auf dem Display) müsste der Zug eigentlich ganz normal ausgeführt werden. Zumindest, wenn die Anleitung an dieser Stelle korrekt ist. Beim Rebel5 sollte es eigentlich keine Probleme geben. Laut Anleitung ist hier eine Zeitkontrolle in der Form wie bei MM2 - MM5 gar nicht vorgesehen. Daher sollte es hier auch keine Spielabbrüche geben. |
AW: Tips für Enginevergleiche/-tests unter MessEmu/Winboard
Nun noch eine kleine Ergänzung zu meinen Ausführungen mit automatischen Spiel. Es gibt hier leider (auch bei den Geräten mit "normaler" Spielstufe) noch so einige Gags...
Wir haben ja mehrere Geräte die sich mit verschiedenen Taktfrequenzen betreiben lassen (z.B. der Mephisto II im Batteriemodus oder mit 6.1 MHz Vollleistung). Rein theoretisch kann man die beiden in Arena gegeneinander spielen lassen. Man erstellt dann in der Engineverwaltung - um beim Beispiel Mephisto II zu bleiben - einfach eine Kopie der Engine. Das schöne ist: Hat man in den Engineeinstellungen für die erste Version jetzt eine Spielstufe definiert (z.B. a6) so kann man für die 2. Version auch eine andere definieren. Da dies in den Engineeinstellungen von Arena gespeichert wird, ist das kein Problem. Das weniger schöne ist: Man hat nun zwar offiziell in der Engineliste 2 verschiedene Mephisto II-Engines, aber leider greifen beide auf dieselbe Enginedatei zu. Die Einstellungen der Taktfrequenz geschehen aber nicht in Arena sondern in Mess unter Configuration. Daher ist es nicht möglich dass nach Ende der Partie die Einstellungen gespeichert werden. Man kann lediglich für die aktuell laufende Partie bei beiden Instanzen (wenn man Mephisto II Version 1 gegen Mephisto II Version II spielen lässt) die Taktfrequent der einen Engine ändern, während die der anderen Engine beibehalten wird. Nach der Partie aber, ist die Einstellung wieder auf der, der zuletzt geschlossenen Engine. Das ist etwas störend. Naja, ich wäre nicht ich, wenn ich nicht ein paar dreckige Tricks drauf hätte. Und so kann man sich auch hier mit einem Trick behelfen, indem man ganz einfach mit 2 Versionen von Franz Emulation arbeitet (z.B. CB-Emu und CB-Emu Kopie) und in Arena eine 2. mess.cmd anlegt (z.B. messkopie.cmd). Die erste muss dann auf CB-Emu verweisen, die 2. auf CB-Emu Kopie. Ensprechend muss auch in der Engineverwaltung von Arena dann natürlich dafür gesorgt werden, dass die jeweils richtige cmd-Datei aufgerufen wird. Hat man das alles richtig gemacht, dann werden jeweils die Versionen aus den verschiedenen CB-Emus verwendet und man kann auch die gleiche Engine mit verschiedenen Taktfrequenzen innerhalb eines Turniers verwenden. Ist zwar ein wenig aufwändig, aber es funktioniert. Aber vorsicht: Bei der Geschwindigkeit, mit der neue Versionen von Franz kommen, muss man in diesem Fall natürlich darauf achten, dass man gerade ein Turnier mit 2 CB-Emu-Ordnern laufen hat und muss natürlich entsprechend immer beide ersetzen, wenn man eine neue CB-Emu Version benutzen will. Aber da muss man halt durch. |
AW: Tips für Enginevergleiche/-tests unter MessEmu/Winboard
Hallo Hartmut
Die Sache werde ich mir noch mal genauer anschauen. Ich habe noch eine frühere Version von Franz wo er das Problem gelöst hat. Somit konnte man einigermaßen auch Turniere durchführen. Ein Zeit Problem gibt es immer dann wenn das Display „ A1A1 “ (MM II) „ ΓINE “ (Rebel) kurzzeitig im Display , aber Rebel spielte weiter. Und ja , manchmal muss man die Figur auch selber ziehen . Das hatte ich nicht getan. Wie gesagt, werde ich mir das nochmal genauer anschauen. Keine Probleme gibt es wenn man Stufe 1 einstellt .Die Zeitkontrolle beginnt ab Stufe 2 (ohne Gewähr) Ok , jetzt alles nicht schlimm und bin früh über weitere Modelle. Freue mich auf Mark 3 und V. Viele Grüße Mark 1 |
AW: Tips für Enginevergleiche/-tests unter MessEmu/Winboard
Ich persönlich interessiere mich für automatische Turniere von Brettcomputeremulationen zwar nicht, aber finde die Möglichkeit an sich prima. Da das Ganze (wie nicht anders zu erwarten war) recht kompliziert ist, würde ich folgenden Rat geben:
Hartmut sollte seine gesammelten Ratschläge in eine Textdatei zusammenfassen und diese dann bei Ergänzungen oder Neuerungen jeweils aktualisieren. Am besten auch ein konkretes Beispiel-Turnier ganz genau step-by-step erläutern. Dieses Textfile dann irgendwo zum Download anbieten oder (noch besser) gleich dem Emu-Download von Franz hinzufügen. Denn so ein Foren-Thread wird schnell groß und unübersichtilich.... |
AW: Tips für Enginevergleiche/-tests unter MessEmu/Winboard
Zitieren:
|
AW: Tips für Enginevergleiche/-tests unter MessEmu/Winboard
Zitieren:
Aber wenn, dann lieber als PDF, denn Word-Dokumente mag ich gar nicht. |
AW: Tips für Enginevergleiche/-tests unter MessEmu/Winboard
Zitieren:
Wie wäre es (als Kompromiss ;)) mit .rtf? Da kann man ja auch Grafiken einbinden, falls nötig. Ansonsten könnte man ja auch einfach ASCII-Text nehmen. Viele Grüße Robert |
AW: Tips für Enginevergleiche/-tests unter MessEmu/Winboard
Hallo,
ich habe festgestellt, das unter Winboard teilweise die Speederhöhung nicht funktioniert. Bei mir z. B. der Elite Privat oder Avantgarde 2100. Ist das bei euch auch so? Kann man das beheben? Auch wäre es toll, wenn man den Mephisto Glasgow S mit 18 MHz und den Super Constellation mit 18 MHz unter Winboard noch hinzufügen könnte. Ist da was zu machen? |
AW: Tips für Enginevergleiche/-tests unter MessEmu/Winboard
Zitieren:
Elite Privat funktioniert mit der Speederhöhung. Allerdings ist bei meinem Rechner, obwohl es ein i7-Prozi ist, bei 400-500 % Schluss. Auch wenn in der Configuration der CPU-Divider auf disabled gestellt ist. Beim Avantgarde 2100 trifft genau dasselbe zu. Auch hier komme ich über 400 % kaum hinaus, muss dazu aber den CPU-Divider auf disabled stellen und Frameskip auf 10. hap hat diesen CPU-Divider in diese Geräte eingebaut, weil sowas scheinbar im Original auch drin ist. Was der tut, was er bewirkt, keine Ahnung. Musst Du hap fragen. Das einzige was ich weiss ist, dass in sehr frühen Versionen dieses Treibers der CPU-Divider nicht drin war (oder Franz ihn rausgenommen hat, was jetzt aber wohl aus welchen Gründen auch immer, nicht mehr geht). Damals konnte ich die entsprechenden Geräte locker auf 1000 % und darüber bringen. Heute bremsen sie einfach nur sinnlos aus und fressen Ressourcen die verschwendet sind. Was immer dieser CPU-Divider bewirkt... mich stört er gewaltig und für die Funktionalität des Gerätes leistet er nix. Wegen mir dürfte er verschwinden... Aber da steht eben die Doktrin entgegen, die man bei den Machern von MESS/MAME hat, dass Geräte eben möglichst 1:1 emuliert werden sollen. Ob es dann für die praktische Anwendung Sinn bringt, oder der Kompatibilität irgendwie schadet, wenn man da mal das eine oder andere Auge zudrücken würde steht wieder auf einem anderen Blatt... Insofern, einfach mal hap oder Franz im Hauptthread ansprechen. Dieser hier ist eigentlich für Einstellungsprobleme gedacht. Und da denke ich, hab ich Dir alles gesagt, was Du eventuell machen kannst. Wieviel Du insgesamt rausholen kannst hängt natürlich letztlich noch von Deinem Prozessor ab. Die Funktionen der Beschleunigung funktionieren jedenfalls, nur eben nicht ohne den CPU-Divider auszuschalten und auch dann nur recht zäh. |
| Alle Zeitangaben in WEZ +1. Es ist jetzt 11:31 Uhr. |
Powered by vBulletin (Deutsch)
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
©Schachcomputer.info