Statusupdates

Was auch immer nicht in die anderen Themenbereiche passt.
Gesperrt
Benutzeravatar
Robin
Administrator
Beiträge: 1723
Registriert: So 30. Jun 2013, 18:12
Wohnort: Rheinland-Pfalz
Hat sich bedankt: 303 Mal
Danksagung erhalten: 354 Mal

Statusupdates

Beitrag von Robin »

Hallo zusammen!

Da einige nach kurzen Statusupdates/Statements gefragt haben, ist dies hier nun der Thread in dem die Entwickler die Möglichkeit haben, grob ihre Fortschritte am MFBot anzusprechen ;)

Das wird zwar unregelmäßig und ebenfalls muss es nicht ausführlich sein, aber so bekommt man etwa einen kleinen Überblick ;)

Grüße,
Robin
Benutzeravatar
oRGaZMo
Core Developer
Beiträge: 236
Registriert: Sa 15. Feb 2014, 10:27
Hat sich bedankt: 0
Danksagung erhalten: 3 Mal

Re: Statusupdates

Beitrag von oRGaZMo »

Aloha zusammen,

ich arbeite ya am sammelalbum und beschäftige mich mit den problemen,
die sich beim scannen der ehrenhalle (nach den lohnenswertesten gegnern) ergeben.

Problem a)
==========
optimieren der benötigten rechenleistung ist jetzt erstmal abgeschlossen.
die fortschritte als grafik:

Bild Bild

die linke zeigt den ressourcenverbrauch der alten version:
- um bei 30 k gegnern die jeweilige anzahl der items, die im eigenen SA noch fehlen, zu errechnen. (~5min 1 CPU-Kern volllast)

die rechte zeigt:
- 30k accounts aus nem savefile laden
- interessante items für jeden acc ausrechnen (dauert statt 5 min. jetzt max 5 sek.)
- filterkriterien anwenden um z.b. nicht schaffbare gegner auszusondern
- und anschließendes sortieren.


Problem b)
==========
optimieren des entstehenden traffic zu den SF-Servern.

- das scannen von so vielen accounts erzeugt in 10 minuten so viele pakete, wie EIN GANZES JAHR täglich 100ALU spielen.
- eine lösung ist erdacht, erste "messdaten" sind gesammelt, arbeit im gang...
mehr kann ich noch nicht sagen^^
regelmäßige statusupdates veröffentliche ich in meiner signatur... ;)

hoffe das stillt etwas deine neugier! :mrgreen:

so long
oRGaZMo
Die Signatur befindet sich aus technischen Gründen auf der Rückseite dieses Beitrags.
Benutzeravatar
Robin
Administrator
Beiträge: 1723
Registriert: So 30. Jun 2013, 18:12
Wohnort: Rheinland-Pfalz
Hat sich bedankt: 303 Mal
Danksagung erhalten: 354 Mal

Re: Statusupdates

Beitrag von Robin »

Hallo zusammen!

Nachdem die Entwicklung in der letzten Woche etwas schleppend verlief, weil von uns keiner am Bot arbeiten konnte, haben wir die letzten zwei Tage wieder damit verbracht, viele Bugs zu fixen und einiges neues hinzuzufügen.

Zentrales Problem war hierbei unter anderem die Integration des Sammelalbums und dessen Integration in die Arena.
So haben wir uns also dazu entschieden, die SA-Funktionen komplett in ein externes und vom Bot (fast) unabhängiges Programm zu verlegen. Dieses Tool wird - zumindest in unserer bisherigen Theorie - auf zwei Arten arbeiten können:
  • Unabhängig vom Bot mit eigener Datenbank
  • Das Tool verwendet die Acc.ini des MFBots und die SIDs (Einlogg-/Sitzungsids) und teilt sie sich mit ihm, während es trotzdem alle Funktionen freigeben kann
So wird es den Bot nicht stören und für Nicht-Bot-Nutzer ist es auch kein Problem.

Das Problem nach der Frage "Wo kommt das SA hin?" war dann: "Wie stellen wir jetzt die Arena um?".
Auch hierzu gab es wieder zwei Möglichkeiten:
  • Der Bot ruft sich im angegebenen Rangbereich jeden Gegner einzeln auf, berechnet die Gewinnchancen und greift den Gegner mit der höchsten Gewinnchance an.
    Vorteil: Du hast höhere Gewinnchancen.
    Nachteil: Erzeugt sehr viel Traffic, ist auffällig und es dauert länger, das zu implementieren.
  • Der Bot ruft die Namen aller Gegner im angegebenen Rangbereich ab, nimmt sich dann einen Zufallsgegner und prüft, ob er nach den Kriterien (Schon erledigter Gegner? Auf deiner Ignorieren-Liste?) zugelassen wäre.
    Vorteil: Geht schneller, erzeugt weniger Traffic und ist somit unauffälliger.
    Nachteil: Da die Gegner nach Zufall ausgesucht werden und bis dato maximal 12 Versuche für einen passenden Gegner gemacht werden, kann es eher passieren, dass kein Gegner gefunden wird.
Letztendlich haben wir uns aufgrund der Nachteile des ersten Punktes dann aber für die Zweite entschieden.

Noch ein Punkt zur Arena, der heute eingebaut wurde, ist die Möglichkeit zur Auswahl ob der angegebene Rangbereich fix oder relativ zu deiner eigenen Position sein soll, da sich das ein paar Leute gewünscht haben.

Außerdem kann jetzt mittels des Platzhalters {own_guild} im "Alle bearbeiten"-Fenster unter "Ignorierte Gilden" für jeden Account seine eigene Gilde auf die "Ignorierte Gilden"-Liste gesetzt werden.


Außerdem ist uns aufgefallen, dass noch zu viele Leute eine (teilweise stark) veraltete Version des Bots nutzen, die a) unsicher ist, b) langsam ist und/oder c) vor Bugs nur so strotzt.
Versionsverteilung im Tortendiagramm
Versionsverteilung im Tortendiagramm
MFBot-Stats.PNG (10.67 KiB) 2882 mal betrachtet
Daher haben wir uns entschlossen, dass der Bot ab Version RLS (Release) 3.0 und höher nicht mehr laufen wird, sobald der Bot länger als 20 Tage mit einer veralteten Botversion läuft.
Im Zuge dessen ist es dann auch nicht mehr möglich, die Suche auf Updates abzuschalten, weil das ja vor Programmstart so oder so gemacht wird ;)

Als letzte "größere" Änderung wäre da zum Schluss nur noch, dass man die Flaschen in Zukunft auch bei Botstart kaufen lassen kann ;)

Ansonsten gab es nur kleinere Bugfixes, die zwar teilweise auch zeitaufwändig waren, dennoch aber nicht der Rede wert sind.

Grüße,
Robin
MFBot-VersionCode-Zeilen*In Dateien*Letzte Version
MFBot 1.5.x64851Juli 2013
MFBot 2.x1436316März 2014
MFBot 3.x2209536März 2015
MFBot 4.x55242241Juli 2018
MFBot 5.x66000440Tbc
*Ohne automatisch generierten Designer-Code
Benutzeravatar
oRGaZMo
Core Developer
Beiträge: 236
Registriert: Sa 15. Feb 2014, 10:27
Hat sich bedankt: 0
Danksagung erhalten: 3 Mal

Re: Statusupdates

Beitrag von oRGaZMo »

Aloha dudes!
und hier kommt das angekündigte StatusUpdate :)

also die Lösung von o.g. "Problem b)" nähert sich.


Wie sieht der Plan aus?
=========================
- um die unzähligen pakete an die SF-Server zu verhindern wird das ganze so ablaufen:

- Ein Scan über die ersten 60k user auf einem server erzeugt ca. 45 MB traffic.

- Die dabei entstehenden daten lassen sich allerdings exzellent komprimieren.
so bleiben nur etwa 1 MB "netto" übrig.

- außerdem haben ausgiebige stichproben gezeigt, dass die daten eines solchen scans
sehr lange "frisch" bleiben. Denn die Hohen spieler steigen immer langsamer und
bei den niedrigen leveln ist die anzahl der spieler viel höher.

- deshalb ist datenaustausch unter den usern pflicht.

- beim erststart des crawlers wird die acc.ini des mfbots ausgelesen, um zu sehen auf welchen
servern ihr spielt. dann werden lvl1 chars auf jedem server angelegt, die ausschließlich
zum scannen dienen.
- anschließend wird auf einem zentralen server nachgesehen, ob für eure server frische
"datensammlungen" am start sind.
*falls ja: 1MB download -> vllt. einige sekunden.
*falls nein: dann kannst du dich entscheiden, ob du mit dem eben angelegten dummy-account
einen server abscannen willst.
*es wird immer der gleiche 0-60k bereich gescannt und das ergebnis wird automatisch geshared.
(dauer: bei meiner 32k leitung ca. 6 minuten. die leitung ist aber nicht das ausschlaggebende)


Wo liegen die nächsten probleme?
==================================
- also die einzelfunktionen sind im prinzip schon alle mal gelaufen. aber die jetzt noch in ner
gui unter einen hut zu bringen ist ne sache für sich.
- der teufel steckt in details, die manchmal viele viele stunden aufhalten.
- heut nacht hab ich z.b. mindestens 8 stunden damit verbracht rauszufinden, warum auf dem
ftp-server alle datensätze mit 0 byte ankommen.
*ursache war dann nicht die zip funktion, oder die upload funktion, sondern ne
fehlkonfiguration meines so schon bestimmt 2 jahre unverändert laufenden ftp servers, die
nie aufgefallen ist weil immer nur runtergeladen wird. O_o

aber ich bleib dran und mach so schnell es geht...


so long & greetz
oRGaZMo


Bild
Die Signatur befindet sich aus technischen Gründen auf der Rückseite dieses Beitrags.
Benutzeravatar
olafson
Moderator
Beiträge: 745
Registriert: Do 28. Nov 2013, 14:01
Hat sich bedankt: 11 Mal
Danksagung erhalten: 12 Mal

Re: Statusupdates

Beitrag von olafson »

Hört sich alles total gut an!
Bin schon sehr gespannt wie's wird
Keine Unterstützung per Mail - bitte bei Fragen das Forum verwenden!
No support by mail - please use the forum in case of questions!
Do you enjoy our work? Donate a coffee, or chocolate - even advocaat would be welcome :mrgreen:
Licor
Core Developer
Beiträge: 80
Registriert: Do 27. Feb 2014, 00:08
Hat sich bedankt: 0
Danksagung erhalten: 0

Re: Statusupdates

Beitrag von Licor »

Hallo, auch wenn ich nur einen kleinen Teil zur Entwicklung beitrage, wollte ich euch auch über diesen status informieren.

Wie ihr sicherlich bemerkt habt, verfügt der Bot seit Release-Version 3.0.0 über die experimentelle SMART-Questauswahl.
Derweil wurden einige Bugs reportet, die mich veranlasst haben die komplette abfrage nochmal zu überarbeiten.
Diese Überarbeitung löst soweit alle bisher geposten bugs, jedoch gibt es noch ein Problem was es zu lösen gilt...

Für die Zukunft ist geplant:
Sobald wir die funktion aus dem experimentellen status entlassen, werden weitere alternativen der SMART-Auswahl folgen.
Bisher arbeitet die Auswahl auf einer Optimierten Erfahrungs-Zeit schiene, eine weitere Gold-Erfahrungs bzw Gold-Zeit Auswahl wird folgen, und hoffentlich bald die klassischen varianten ersetzen.

Jedoch!
Bevor die zusätzlichen varianten entwickelt und implementiert werden, muss erst noch eine Simulation geschrieben werden, wie ich es für Erfahrung-Zeit in dem post dargestellt habe:
http://www.mfbot.de/forum/viewtopic.php?f=7&t=178

denn keiner brauch eine SMART-Auswahl nicht nicht besser ist, als die klasische ^^

cheers Licor
Benutzeravatar
oRGaZMo
Core Developer
Beiträge: 236
Registriert: Sa 15. Feb 2014, 10:27
Hat sich bedankt: 0
Danksagung erhalten: 3 Mal

Re: Statusupdates

Beitrag von oRGaZMo »

aloha zusammen!

so, seit meinem letzten statusupdate sind wieder gut 2 monate vergangen.
allerdings hat sich auch einiges getan.
die grundfunktionen sind schonmal alle in ner (wie ich finde^^) ziemlich übersichtlichen oberfläche angeordnet
und das tool verrichtet auf meinem rechner nen recht zuverlässigen dienst.

Bild

noch ein paar kleinere hürden sind zu nehmen:
- wie z.b. abspeichern der konfiguration in der win8 registry.
- und vor allem noch ne bessere dokumentation der funktionsweise/bedienung.
Die Signatur befindet sich aus technischen Gründen auf der Rückseite dieses Beitrags.
Benutzeravatar
oRGaZMo
Core Developer
Beiträge: 236
Registriert: Sa 15. Feb 2014, 10:27
Hat sich bedankt: 0
Danksagung erhalten: 3 Mal

Re: Statusupdates

Beitrag von oRGaZMo »

und nochmal n update^^

da die letzte "komposition" mich vor unüberwindbare hindernisse hinsichtlich der stabilität beim parallelbetrieb mehrerer accounts gestellt hatte, hab ich nochmal bei nem weißen blatt angfangen und alle funktionsblöcke neu zusammengeworfen und massiv optimiert... das ist bisher dabei rausgekommen:

der benchmark zeigt:

- crawl3r erststart
- 11 accounts auf 11 verschiedenen servern werden aktiviert
- 10 volle serverdatenbanken (a 100k spieler) liegen auf dem ftp
- alles herunterladen (GEPACKT zusammen nur ~27MB)
- entpacken (ENTPACKT zusammen ~400MB)
- herausfinden welche der ~6 Mio. Items aus ~1.2 Mio spieler-profilen noch gebraucht werden.
- alles sortieren und filtern
______________________________________
- DAUER 10 minuten! :mrgreen:

Bild

dabei steigt der ramverbrauch nicht über 250mb und nur 1 kern ausgelastet^^

ich muss sagen die neue version macht mir langsam freude^^

Lange vernachlässigt, aber endlich da: ein pornös detailliertes Log, das alle paketinhalte der aktuellen session bis aufs byte genau speichert:
Bild

und eine deutlich verbesserte scan-logik, um die DB möglichst frisch zu halten:
- alle 12 stunden lässt sich jede 6. ehrenhalle-seite absuchen, bis zu einem rang von ~102k (17k * 6)
- nach diesem scan wird kurz sortiert nach alter der einträge in der db.
- dann folgt nochmal n scan der 5000 ältesten profile der serverdatenbank.
______________________________________
Dauer eines serverscans (~23k profile) hängt etwas von der uhrzeit ab, ist aber in 5 minuten zu schaffen^^

Bild

eine "zwangsweise" autoupdate-funktion die alles von selbst erledigt wurde auch nötig, da sich im entwicklungsverlauf durch veränderungen im datenbankformat
inkompatibilitäten ergeben hatten -> 2 programmversionen können sich deshalb unter umständen gegenseitig die datenbanken kaputtschreiben.
so siehts aus:
Bild
Die Signatur befindet sich aus technischen Gründen auf der Rückseite dieses Beitrags.
Gesperrt

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast