Hint

After clicking "OK" a connection to Facebook will be established so that you can share the post there with your Facebook account.

 

Feature Idee

Träger
Avatar
Gender:
Age: 29
Posts: 14
Registered: 01 / 2015

VPN-Key:
Betreff:

Feature Idee

 · 
Gepostet: 13.11.2015 - 09:03  · #1
Hallo zusammen,

konnte im Forum keine Rubrik für Feature-Ideen finden. Daher schreibe ich hier im Bereich der Alobby.
Bitte verschieben, wenn fehl am Platz ;-)

Meine Idee ist es ein automatisiertes Statistikmanagement aufzubauen.
Es könnte in erster Instanz zum Beispiel so ein, dass am Ende eines Spiels die ALobby des Hosts einen Screenshot von der Statistik macht und auf einen Server hochlädt. Vielleicht über die Liste der angemeldeten Personen in der ALobby könnten die letzten 3 Statisiken oder so aufrufbar sein.

In zweiter Instanz wäre es natürlich schöner, nicht den Screenshot zu speichern, sondern die Daten daraus zu extrahieren. In einer Datenbank könnte man die Daten so sammeln und könnte schöne Webseiten mit Statisiken erstellen und sogar Spieler vergleichen.

Eine weitere mögliche Funktion wäre dann sogar, dass die ALobby einen Spieler beim connect direkt einem Team zuweist, um ausgeglichene Teams zu poduzieren.

Ich muss allerdings dazu sagen, dass ich nicht weiss, ob die ALobby aktuell eigentlich schon Texte "lesen" kann vom Bildschirm oder lediglich (beim Multiplayerspiel finden) auf die farbig erkennbare Textzeile klickt, wenn eine erscheint.
Jedenfalls würde ich diese Funktionen praktisch finden :D

Gerne beteilige ich mich auch an der Entwicklung. Folgende Meilensteine würde ich vorschlagen:
- ALobby: Erkennen eines beendeten Spiels (Sichtbar werden der Statistik) + Screenshot + Upload
Hier sollte natürlich darauf geachtet werden, keine pollende Lösung zu implementieren. CPU Leistung ist unter Wine auf einem Kern sowieso bereits begrenzt >_<
- ALobby: Erweiterung um die Anzeige von Statistiken (z.B. über das Öffnen eines Links im Browser)
- ALobby: Lesen / interpretieren von Texten / Zahlen vom Bildschirm
- Web: Erstellen eines Datenbankmodells zur Verwaltung von Statistiken. (Ggfs. unter Verwendung von bisher vorhandenen Spielerdaten aus Forum und/oder ALobby).
- Web. Erstellen einer Webseite zur Darstellung von Statisikdaten (Z.B. mit JavaScript Diagrammerstellung (fertige OpenSource Lösung verfügbar).

Grüße
ErrorFlexXx

Similar topics:

Forumsinventar
Avatar
Gender:
Age: 39
Posts: 4647
Registered: 11 / 2013

VPN-Key:
Betreff:

Re: Feature Idee

 · 
Gepostet: 13.11.2015 - 10:11  · #2
Hallo ErrorFlexXx,

vielen Dank für deine Anregungen. Einiges davon steht schon auf einer ToDo-Liste für die aLobby, die Stück für Stück abgearbeitet wird. Selbst das Screenshot-Thema ist zumindest serverseitig schon vorbereitet - fehlt "nur" noch in der aLobby. Da es ein Hobby-Projekt ist und die Entwickler hier nicht rund um die Uhr anwesend sein können, dauert so eine Entwicklung eben etwas - und manche Themen werden erstmal bevorzugt abgearbeitet (z.B. VPN damit die Leute überhaupt noch spielen können).

Wenn Du dich selbst beteiligen willst, wäre interessant zu wissen welche Fähigkeiten zu bereits mitbringst. Ohne ausreichend Erfahrung würde dir eine Einarbeitung in die Themen ggfs. schwerer Fallen als dir bewusst ist ;) Evtl. wäre ein Gespräch im TeamSpeak dazu mal interessant.

Zwirni
Träger
Avatar
Gender:
Age: 29
Posts: 14
Registered: 01 / 2015

VPN-Key:
Betreff:

Re: Feature Idee

 · 
Gepostet: 13.11.2015 - 13:31  · #3
Hallo Zwirni,

Quote
Da es ein Hobby-Projekt ist und die Entwickler hier nicht rund um die Uhr anwesend sein können, dauert so eine Entwicklung eben etwas


Absolut ! Ich bin sogar überrascht wie schnell hier reagiert wird und wie viel in der Freizeit geleistet wurde und immernoch wird!

Quote
Evtl. wäre ein Gespräch im TeamSpeak dazu mal interessant.


Sehr gerne, gegen 19 Uhr heute Abend bin ich ca. da.

Grüße
ErrorFlexXx
Forumsinventar
Avatar
Gender:
Age: 39
Posts: 4647
Registered: 11 / 2013

VPN-Key:
Betreff:

Re: Feature Idee

 · 
Gepostet: 13.11.2015 - 15:02  · #4
Ich bin dann sicher nicht da, aber versuchen kannst du es ja mal :D
Moderator
Avatar
Gender:
Location: bei Auxsburg
Age: 42
Homepage: youtube.com/user/K…
Posts: 5199
Registered: 05 / 2005

VPN-Key:
Betreff:

Re: Feature Idee

 · 
Gepostet: 14.11.2015 - 10:23  · #5
Die dumme Frage von mir: wozu brauchen wir STatistiken?

WIe ja einige wissen sagt die Stati eh meistens nix aus.

Ich würde eher begrüßen, wenn die Entwicklung der 1vs1 Liga endlich fertiggestellt wird.
Träger
Avatar
Gender:
Age: 29
Posts: 14
Registered: 01 / 2015

VPN-Key:
Betreff:

Re: Feature Idee

 · 
Gepostet: 14.11.2015 - 11:42  · #6
Hallo Kevin,

Quote
Ich würde eher begrüßen, wenn die Entwicklung der 1vs1 Liga endlich fertiggestellt wird.


Keine Ahnung was mit 1vs1 Liga gemeint ist -- Aber mir fällt da ein, dass immer die Rede von einer ToDo-List war. Ich habe jetzt ein bischen gesucht und kann sie nicht finden. Vielleicht wäre es tatsächlich sinnvoller zunächst auf die ToDo-List zu schauen und die wichtigsten Sachen zuerst zu erledigen. Bald wird sich die Gelegenheit bestimmt bieten mit den derzeitigen Entwicklern zu sprechen, dann schauen wir weiter :lol:

Danke jedenfalls für den Wink mit dem Zaunpfahl :D

Grüße
Christian
Bastler
Avatar
Gender:
Age: 49
Posts: 7622
Registered: 04 / 2005

VPN-Key:
Betreff:

Re: Feature Idee

 · 
Gepostet: 16.11.2015 - 11:19  · #7
Huhu,

hat sich hier was getan ?
Soll ich versuchen eine "Zusammenführung" zu planen ? :police:
Träger
Avatar
Gender:
Age: 29
Posts: 14
Registered: 01 / 2015

VPN-Key:
Betreff:

Status Update

 · 
Gepostet: 21.11.2015 - 15:45  · #8
Ich kann ein Update zu meinem Stand geben:

Ich habe einen Test gemacht Schrift aus einem Screenshot zu lesen mit der Software Tesseract (genauer tess4j). Leider hab ich nicht rausbekommen wie man einen Schriftsatz anlernen kann -- Daraufhin habe ich versucht Statistikdaten zu lesen indem ich das Bild vorverarbeitet habe:
-> Farbe: Gelb => #FFDF00 zu Schwarz
-> Farbe: Orange => #ff5d18 zu Schwarz
-> Alle anderen Farben zu Weiß.
Bild um Faktor 4 vergrößern und dann durch tess4j jagen.

Bis auf 2-3 Buchstabenfehler werden dann die Spielernamen korrekt gelesen und die Punkte komplett richtig mit einer Ausnahme: Aus 1170 wird gelegentlich 11 70 z.B.. Und da die Software die großen Abstände lediglich als ein Leerzeichen interpretiert kann man nicht mehr sauber klassifizieren, zu welcher Kategorie welche Ziffer genau gehört. Gelöst hätte ich das, in dem ich die einzelnen Punktestände die immer statisch platziert werden aus dem Bild herausgeschnitten und einzeln verarbeitet hätte. Damit sind auch falsch erkannte Leerzeichen nicht mehr schlimm. Diese Variante sollte funktionieren und ist sogar relativ einfach zu implementieren.

Eine weitere Möglichkeit stellt die Software JavaOCR dar. Mittels dieser kann man Schriftsätze anlernen, was jedoch eher schlecht als recht funktioniert. Es ist sehr hart ein Bild mit allen Buchstaben so zu erzeugen, dass die automatische Buchstabenerkennung die einzelnen Buchstaben korrekt erkennt. Ließt er zwei Buchstaben als einen beispielsweise gibt es natürlich einen Fehler alla: Ich sollte 74 Buchstaben lernen, aber im Lernbild sind nur 68.. Ziemlicher Mist. Bekommt man es dann hin über größere Abstände oder so ließt er nur absoluten Bockmist: Zeichen als Sonderzeichen, Ziffern als Buchstaben und alles mögliche...

Eine weitere Möglichkeit die Statistik zu lesen wäre eine DLL von Sielder 3 zu modifizieren, indem man eine Proxy-DLL erstellt, die von der original DLL alle enthaltenen Funktionen zur Verfügung stellt. Damit kann man seinen eigenen Code in das Spiel laden und zum Beispiel dafür sorgen, dass eine selbstgeschriebene Funktion nach der Statistikerzeugung angesprungen wird. Jetzt kann man der ALobby über eine Datei, über einen Socket oder sonst wie mitteilen wie das Spielergebnis aussieht ohne ein Bild lesen zu müssen. Diese Variante hier ist am effizientesten, sichersten und wahrscheinlich am schnellsten umgesetzt. Aber ich meine mich erinnern zu können, dass wir das Spiel an sich nicht modifizieren wollen und von daher wird diese Variante wohl nicht bevorzugt Ich finde diese eigentlich am besten..

Wie dem auch sei gibt es bei den bildverarbeitenden Varianten ein Problem, für das ich auch eine Lösung habe:
Wie erkennen wir ohne Polling, dass ein Spiel beendet wurde und gleich eine Statistik zu verarbeiten ist ? Sicherlich könnte man die CPU Auslastung überwachen und einen Abfall der Last registrieren, jedoch wäre das potenziell eine unsichere Methode. Ebenso wenn das Spiel geschlossen wird, denn dann ist es zu spät eine Auswertung zu starten, denn die Stati ist bereits weg.
Eine sichere Möglichkeit ist es den Port 2300 (TCP) zu überwachen. Läuft ein Spiel steht dieser auf Listen und ist blockiert. Unmittelbar nachdem im Menü auf Spiel beenden => Ja gedrückt wurde steht dieser Port wieder zur Verfügung. Jetzt kann 2 Sekunden gewartet werden und anschließend ist mit großer Sicherheit die Statistik zu sehen.

So siehts derzeit aus.
Wie es jetzt weiter geht weiss ich nicht. Vielleicht sollte man mal drüber sprechen.
Vielleicht auch über die ominöse To-Do List, die ich immer noch nicht gefunden habe.

Grüße
Christian
Bastler ohne Hand
Avatar
Gender:
Location: Bern
Age: 37
Homepage: adrianer.org
Posts: 2973
Registered: 06 / 2009

VPN-Key:
Betreff:

Re: Feature Idee

 · 
Gepostet: 21.11.2015 - 15:58  · #9
Quote by ErrorFlexXx

Eine weitere Möglichkeit die Statistik zu lesen wäre eine DLL von Sielder 3 zu modifizieren, indem man eine Proxy-DLL erstellt, die von der original DLL alle enthaltenen Funktionen zur Verfügung stellt. Damit kann man seinen eigenen Code in das Spiel laden und zum Beispiel dafür sorgen, dass eine selbstgeschriebene Funktion nach der Statistikerzeugung angesprungen wird. Jetzt kann man der ALobby über eine Datei, über einen Socket oder sonst wie mitteilen wie das Spielergebnis aussieht ohne ein Bild lesen zu müssen. Diese Variante hier ist am effizientesten, sichersten und wahrscheinlich am schnellsten umgesetzt. Aber ich meine mich erinnern zu können, dass wir das Spiel an sich nicht modifizieren wollen und von daher wird diese Variante wohl nicht bevorzugt Ich finde diese eigentlich am besten..


Im Gegenteil: das wäre sogar die präferierte Variante. Da sie aber eine ganze Menge Zeit für's reverse-engineering erfordern würde, müsste es halt einer machen, der dazu Zeit, Lust und Erfahrung hat. Bei mir ist zwar das zweite vorhanden, das dritte aber nur im begrenztem Masse (genug, um einen Aufruf im Code zu patchen (bei Siedler4 angewendet, kommt bald in die aLobby ;) ), aber definitiv nicht genug für das, was hier gebraucht wird) - und das erste so ziemlich gar nicht...

Ansonsten bleibt der ursprüngliche stumpfe Gedanke: nach dem Start eines Spiels ein oder zwei mal pro Sekunde einen Screenshot anfertigen und Anhand von festen Bild-Farbpunkten schauen, ob das eine Stati ist...


Quote by ErrorFlexXx

Vielleicht auch über die ominöse To-Do List, die ich immer noch nicht gefunden habe.

https://trello.com/b/041eJ2Yl/alobby-todo
Forumsinventar
Avatar
Gender:
Age: 39
Posts: 4647
Registered: 11 / 2013

VPN-Key:
Betreff:

Re: Feature Idee

 · 
Gepostet: 21.11.2015 - 16:07  · #10
Hab dazu noch weniger Erfahrung als ihr, hab aber rein aus Interesse letzte Woche auch mal geschaut wie denn das Autosave ausgeführt wird. Dazu wird wohl regelmäßig geprüft, ob in einer bestimmte Ecke des Bildschirms eine bestimmte Grafik vorhanden ist. Ich könnte mir vorstellen das für die Speicherung der Statistik zu adaptieren, z.B. durch Prüfung der Überschrift oberhalb "Du hast gewonnen" oder "Du hast verloren" nur in den jeweiligen Sprachen (Herausforderung ^^).

Die Erkennung von Texten in Bildern ist immer schon ein schwieriges Thema, kenne das aus dem Web-Bereich ja auch. Könnte mir aber vorstellen, dass es so einem Tool einfacher fallen würde, wenn die Texte einen rein weißen Hintergrund hätten. Man müsste quasi aus der Ergebnis-Statistik alle Pixel mit der Schriftfarbe auslesen (dürften vermutlich dank Schattierung einige Farben mehr sein) und das Ergebnis dann durch das Tool jagen. Nur so als Idee :)
Träger
Avatar
Gender:
Age: 29
Posts: 14
Registered: 01 / 2015

VPN-Key:
Betreff:

Re: Feature Idee

 · 
Gepostet: 21.11.2015 - 16:13  · #11
Ja wie gesagt:
Quote
indem ich das Bild vorverarbeitet habe:
-> Farbe: Gelb => #FFDF00 zu Schwarz
-> Farbe: Orange => #ff5d18 zu Schwarz
-> Alle anderen Farben zu Weiß.
Bild um Faktor 4 vergrößern und dann durch tess4j jagen.

Das funktioniert ziemlich zuverlässig. Die Faktor 4 Vergrößerung ist übrigens wichtig, ansonsten erkennt Tess4j auch nur Mist.
Bastler ohne Hand
Avatar
Gender:
Location: Bern
Age: 37
Homepage: adrianer.org
Posts: 2973
Registered: 06 / 2009

VPN-Key:
Betreff:

Re: Feature Idee

 · 
Gepostet: 21.11.2015 - 16:16  · #12
Quote by Zwirni

Hab dazu noch weniger Erfahrung als ihr, hab aber rein aus Interesse letzte Woche auch mal geschaut wie denn das Autosave ausgeführt wird. Dazu wird wohl regelmäßig geprüft, ob in einer bestimmte Ecke des Bildschirms eine bestimmte Grafik vorhanden ist. (...)

Das "regelmäßig" bezieht sich im Fall vom Autosave auf den eingestellten Autosave-Interval.
Aber stimmt: die Funktion ist generell dafür prädisponiert.

Quote by Zwirni

(...)Man müsste quasi aus der Ergebnis-Statistik alle Pixel mit der Schriftfarbe auslesen (dürften vermutlich dank Schattierung einige Farben mehr sein) und das Ergebnis dann durch das Tool jagen. Nur so als Idee :)


Die aLobby hat dazu schon die benötigte Funktion (wird für die TCP/IP (Text) Erkennung verwendet), die dann den Text auf schwarzem Hintergrund projiziert.
Und Schattierung gibt es mit den Standardeinstellungen von S3 keine - deshalb funktioniert das nahezu perfekt.
ABER! In dem Moment, wo man die Bildquali usw. mit DXGL verbessert, kommt auf Pixelbasis Unschärfe hinzu (und es passt die Auflösung nicht, deshalb gehen auch die festen Pixel-Positionen nicht mehr). Deshalb ist diese Lösung meines Erachtens eine Sack-Gasse... Nichtsdestotrotz, wenn jemand einen guten Patch mit diesem Ansatz einbringt, kommt der rein ;)
Forumsinventar
Avatar
Gender:
Age: 39
Posts: 4647
Registered: 11 / 2013

VPN-Key:
Betreff:

Re: Feature Idee

 · 
Gepostet: 21.11.2015 - 16:20  · #13
Quote by adrianer
Nichtsdestotrotz, wenn jemand einen guten Patch mit diesem Ansatz einbringt, kommt der rein ;)


Allerdings :) Allein schon der Screenshot der Statistik wäre im ersten Schritt hilfreich, da wir den dann direkt zur screen-Seite hochladen könnte (ist ja auch alles schon vorbereitet). Aber, wenn jemand etwas macht, dann bitte gut kommentieren :devil:
Träger
Avatar
Gender:
Age: 29
Posts: 14
Registered: 01 / 2015

VPN-Key:
Betreff:

Re: Feature Idee

 · 
Gepostet: 21.11.2015 - 16:22  · #14
Wie sieht es mit einer Modifikation des Siedler 3 Codes aus ?
Das wäre auch einfach machbar und hätte den Vorteil das man sofort keine Probleme mit anderen Schriftarten, Unschärfen und sonstigem hat..
Bastler ohne Hand
Avatar
Gender:
Location: Bern
Age: 37
Homepage: adrianer.org
Posts: 2973
Registered: 06 / 2009

VPN-Key:
Betreff:

Re: Feature Idee

 · 
Gepostet: 21.11.2015 - 16:22  · #15
Quote by Zwirni

Aber, wenn jemand etwas macht, dann bitte gut kommentieren :devil:


/me wusste, dass er für die 2.7.0 noch was vergessen hatte... O-)
Bastler ohne Hand
Avatar
Gender:
Location: Bern
Age: 37
Homepage: adrianer.org
Posts: 2973
Registered: 06 / 2009

VPN-Key:
Betreff:

Re: Feature Idee

 · 
Gepostet: 21.11.2015 - 16:22  · #16
Quote by ErrorFlexXx

Wie sieht es mit einer Modifikation des Siedler 3 Codes aus ?
Das wäre auch einfach machbar und hätte den Vorteil das man sofort keine Probleme mit anderen Schriftarten, Unschärfen und sonstigem hat..


Wie gesagt: wenn Du es machst - gerne :police:
Bastler ohne Hand
Avatar
Gender:
Location: Bern
Age: 37
Homepage: adrianer.org
Posts: 2973
Registered: 06 / 2009

VPN-Key:
Betreff:

Re: Feature Idee

 · 
Gepostet: 21.11.2015 - 16:32  · #17
Es ist ja nicht so, als das wir nicht jetzt schon den Siedler 3 Code modifiziert hätten: die s3_alobby.exe ist eine modifizierte s3.exe die mit dem Zweck modifiziert wurde, damit die Besitzer der CD und der GOG Version von S3 miteinander spielen können.
Forumsinventar
Avatar
Gender:
Age: 39
Posts: 4647
Registered: 11 / 2013

VPN-Key:
Betreff:

Re: Feature Idee

 · 
Gepostet: 23.12.2015 - 00:57  · #18
Btw. was mir noch einfiel wg. dem Screenshot der Stati selbst: viele Nutzer sind es gewohnt Screenshots in der Dropbox oder anderen externen Tools abzulegen und drücken dazu einfach auf Drucken. Könnte man nicht die aLobby mit der Drucken-Taste koppeln? Wenn diese gedrückt wird macht die aLobby einen Screen des aktuellen Bildschirms und läd ihn hoch.

Nachteil: sobald die Leute das Spitzkriegen machen sie im Spiel ständig Screenies :]
Förster
Avatar
Gender:
Location: Schwabenland
Age: 62
Posts: 151
Registered: 04 / 2005

VPN-Key:
Betreff:

Re: Feature Idee

 · 
Gepostet: 24.12.2015 - 18:37  · #19
Quote
Nachteil: sobald die Leute das Spitzkriegen machen sie im Spiel ständig Screenies :]


Dann sollte man diese vielleicht erst verwarnen und dann mal aussperren
Forumsinventar
Avatar
Gender:
Age: 39
Posts: 4647
Registered: 11 / 2013

VPN-Key:
Betreff:

Re: Feature Idee

 · 
Gepostet: 07.02.2016 - 16:02  · #20
Zur Info (da es hierzu keinerlei Rückmeldungen mehr gab):

Quote by ErrorFlexXx
Meine Idee ist es ein automatisiertes Statistikmanagement aufzubauen.
Es könnte in erster Instanz zum Beispiel so ein, dass am Ende eines Spiels die ALobby des Hosts einen Screenshot von der Statistik macht und auf einen Server hochlädt.


Ist jetzt durch Adrianer und mich in der aktuellen Beta eingebaut worden - eigener Code auf Basis von bereits in der aLobby vorhandener Erkennung von Bildschirminhalten im Spiel (was z.B. für das Autosave verwendet wird).

Quote
In zweiter Instanz wäre es natürlich schöner, nicht den Screenshot zu speichern, sondern die Daten daraus zu extrahieren. In einer Datenbank könnte man die Daten so sammeln und könnte schöne Webseiten mit Statisiken erstellen und sogar Spieler vergleichen.


Das wird niemals in die aLobby selbst integriert werden, allein aus Performance-Gründen. Wenn wir so etwas bauen, dann serverseitig (Screens sind ja nun auf dem Server). Wenn also jemand ein gutes Texterkennungstool, welches serverseitig laufen kann (PHP, Python, Perl, Bash, C++ ..), kann er sich gerne mal melden :)
Gewählte Zitate für Mehrfachzitierung:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.

Cookie Consent

This site uses cookies and tracking and (re-)targeting technologies to provide you with the best possible functionality and to constantly improve our website and advertisements.

By selecting "Accept cookies" you allow this website to use these cookies and technologies. This website may share this information with third parties - such as social media advertising partners like Google, Facebook and Instagram - for marketing purposes. Please visit our Privacy Policy (see section on cookies) for more information. There you will also find out how we use the data for necessary purposes (e.g. security).

Manage cookie settings

Please select and accept your cookie settings:

Further information on the data used can be found in the data protection declaration.