YARCC für BF3 - Unsere Battlefield3 Serversteuerung

Moderatoren: JDZ, Moderatoren

Antworten
Benutzeravatar
BlackSoul
Administrator
Administrator
Beiträge: 7900
Registriert: 13.01.2003, 20:13

Beitrag von BlackSoul » 09.04.2013, 19:27

ManiacAndy hat geschrieben:
BlackSoul hat geschrieben:
ManiacAndy hat geschrieben:die k/d sollte NUR eine rolle spielen wenn wie hotty sagte, ein team dominiert. bzw wenn der unterschied so massiv wäre das 8 leute gegen 12 deutlich dominieren sollte der banlancer (noch) nicht greifen.
Problem ist, wenn wir einen deutlichen Spielerüberhang haben, so brauchen wir Kriterien hierfür. Die K/D eignet sich grundsätzlich hierzu ebenso, wie das Squadweise verschieben. Welches davon man stärker gewichtet, müssen wir noch sehen. Jedoch wäre eine Unterscheidung nach K/D schlichtweg einfacher, als nach Squads zu fahnden, denke ich. Aber diese Frage kann wohl nur David beantworten.
Mein gedanke dahinter war einfach das es keinen sinn macht einen menschen mit hoher k/d (guten spieler) im grösseren Team in das kleinere Team zu switchen obwohl das kleinere team sowieso schon dominiert und evtl sowieso noch bessere spieler bereits im team hat. klar ist selten aber ein durchaus realistisches szenario.
Ja, genau solche Szenarios machen Automatismen schwierig.
ManiacAndy hat geschrieben:Daher wäre die verschiebung mit etweiliger mischung (wie ich sagte, zb 7 spieler in das kleinere team damit die zusammenbleiben können, und dann vom anderen team 2 leute wiederum ins andere um die balance zu bekommen. wie gesagt falls das möglich ist, kenne bis jetzt nur das sture "Last joining" spieler switch... was für den letzt gejointen eben immer scheisse ist.
Eine Ideallösung gibt es hier wohl sowieso nicht. Das ist bei Automatismen nun einmal so. Wir können uns nur annähern und der Rest liegt dann sowieso bei den jeweils Administrierenden.

Benutzeravatar
ManiacAndy
Geschäftsmodell
Beiträge: 898
Registriert: 23.01.2010, 14:48
Wohnort: Eifel
Kontaktdaten:

Beitrag von ManiacAndy » 09.04.2013, 19:45

genau so ist es :) aber irgendwie bezweifel ich das sowas überhaupt möglich ist, sonst wär sicher schon ein anderer mit seinen server plugins darauf gekommen.
Bild Bild

Benutzeravatar
JDZ
Geschäftsmodell
Beiträge: 810
Registriert: 05.01.2004, 02:10
Wohnort: Frankfurt am Main

Beitrag von JDZ » 09.04.2013, 20:24

Heisst das das die anderen Teambalancer auch nicht optimal funktionieren?

Das Problem mit dem Playerlistenpuffer ist auch schon gelöst. Der Puffer fällt einfach weg weil er eh nicht ohne größeren Aufwand aktuell zu halten ist. Erhält der Serverlayer ein Playerlist Paket wird es einfach direkt an alle verbundenen und authentizierten Clients durchgeroutet.
Dies ist sogar noch ressourcenschonender da die Clients im
YARCC Relay Betrieb keine querys mehr senden müssen.
Selbstverständlich hat man so immer das aktuellste Playerlistpaket und die restlichen Steuermechanismen werden durch die Eventpakete geregelt. Aus de Maus

Benutzeravatar
ftn|hotty
Geschäftsmodell
Beiträge: 444
Registriert: 26.09.2004, 14:14

Beitrag von ftn|hotty » 09.04.2013, 21:53

Meine Idee zuerst Squadlose zuerst zu verschieben basiert darauf, wer in keinem Squad ist, hat auch kein Interesse an Teamwork. Dann spielt das Team keine Rolle. Sollte kein Spieler gefunden werden, dann wird der zuletzt gejointe genommen und verschoben. Mir geht es darum, Spieler, die gerade auf den Server gekommen sind, nach ein paar Minuten nauf die andere Seite wechseln sollten. Das ist einfach nervig.

@JDZ: Bei Teambalancing wird standard die zuletzt auf den Server gekommen Spieler genommen. Nervig für denjenigen, der gerade auf den Server kam, aber sie funktioniert.
Powerbalance ist dagegen schwierig, algorithmisch vermutlich sogar kaum lösbar. Die einzige Lösung, die ich kenne und halbwegs funktioniert, ist es nach einer gewisssen Zeit die Spieler durchzumischen, falls die eine Seite zu lange dominiert.

Benutzeravatar
JDZ
Geschäftsmodell
Beiträge: 810
Registriert: 05.01.2004, 02:10
Wohnort: Frankfurt am Main

Beitrag von JDZ » 09.04.2013, 23:24

Wenn wir alle die Köpfe zusammenstecken und die Entwicklung nie stehen bleibt, werden wir schon eine gute Lösung finden. Lassen wir es piano angehen und Schritt für Schritt unsere Erfahrungen in dieses Modul einfliessen.


Ich suche einen dualen Studienplatz Wirtschaftsinformatik
für 2014 im Raum Frankfurt/Mannheim. Wer nen Tip hat bitte melden!

Benutzeravatar
JDZ
Geschäftsmodell
Beiträge: 810
Registriert: 05.01.2004, 02:10
Wohnort: Frankfurt am Main

Beitrag von JDZ » 10.04.2013, 01:45

Clantags werden über das rcon Protokoll nicht übermittelt.

Switchen wir per last join müssten alle Spieler einen Zeitstempel
erhalten. Stellt euch vor die 4 zuletzt gejointen Spieler befinden sich
schon im Team mit den wenigsten Spielern. Das ist auch Käse.

Das Balancing über Runden hinweg anhand der K/D, in Summe Teamstärke
genannt ist bei genauer Überlegung auch nicht akzeptabel. Wie oft
kommen und gehen Spieler, d.h die gegenwärtige Teamstärke auf vergangene
Matches zu beziehen endet in einem in endlosen Code und zum anderen
würde es Szenarien geben, wo ohnehin schon die Looserteams zusätzlich
bestraft würden. Wir wollen das Balancing sofort ohne wilde Vorberechnungen.

Mein Lösungsansatz wäre folgender:
Schon beim join auf den Server wird der Spieler in das Team mit dem
geringsten Spielerstand gestopft. Das wäre die erste Sortierstufe und auch gut
da BF3 dies nicht macht. Der joinende Spieler merkt es gar nicht da
er sich noch nicht im Spawn Menü befindet.

Die zweite Stufe überwacht das laufende Spiel und switched Spieler
ohne Squad/unvollständigem Squad anhand des geringsten Punktestands. Wer wenig Punkte hat
idled oder ist vor kurzem gejoint. Im Grunde genommen kann uns die
Teamstärke egal sein. Solange gleiche Spieleranzahlen herrschen
hat jedes Team die gleiche Chance zu gewinnen.

was haltet ihr davon?

Benutzeravatar
ManiacAndy
Geschäftsmodell
Beiträge: 898
Registriert: 23.01.2010, 14:48
Wohnort: Eifel
Kontaktdaten:

Beitrag von ManiacAndy » 10.04.2013, 06:24

JDZ hat geschrieben: Mein Lösungsansatz wäre folgender:
Schon beim join auf den Server wird der Spieler in das Team mit dem
geringsten Spielerstand gestopft. Das wäre die erste Sortierstufe und auch gut
da BF3 dies nicht macht. Der joinende Spieler merkt es gar nicht da
er sich noch nicht im Spawn Menü befindet
...
was haltet ihr davon?
Gut, aber dann hat man wieder das problem das freunde nicht zusammen spielen können wenn sie zb zeitgleich auf den server joinen :)
die sache mit den clantags verstärkt das problem natürlich da man keinen anhaltspunkt hat wer zu wem gehört...
Bild Bild

Benutzeravatar
tequilio
Geschäftsmodell
Beiträge: 2131
Registriert: 24.06.2005, 19:06

Beitrag von tequilio » 10.04.2013, 08:07

Zerredet die Geschichte doch nicht. Haltet es einfach...

Das der letzt gejointe zuerste geswitcht wird finde ich sogar sehr gut. Was würdest du von einem Server halten, wenn du 10 Minuten schon für eine Seite kämpfst und dann ins Gegner Team gesteckt wirst?
Was ist wenn 4 "Freunde" auf dem Server kommen und auf der gleichen Seite spielen wollen? Da wird vermutlich dann ja immer eine Seite größer sein im blödesten Fall...
Das ist halt nunmal so... Wie oft joinen wir woanders und können auch nicht sofort miteinander spielen, weil es die Teams einfach nicht hergeben. Ein wenig weniger Egoismus muss auch der Spieler besitzen und das auch einsehen, das hilft halt mal alles nix :D
Bild

Benutzeravatar
JDZ
Geschäftsmodell
Beiträge: 810
Registriert: 05.01.2004, 02:10
Wohnort: Frankfurt am Main

Beitrag von JDZ » 10.04.2013, 08:08

Mhhhhh
Also bliebe als letzter Anhaltspunkt nur der Spieler mit dem geringsten Punktestand und seinem Squadstatus.......

Btw: war wiedermal fleissig und habe noch ein paar Fehlerchen beseitigt und den neuen Lösungsansatz für die Serverinfo- und Playerlistenpakete geschrieben. Funktioniert ganz wunderprächtig und wir kommen jeden Tag dem Ziel einen Schritt näher.

Benutzeravatar
Peacemaker
Geschäftsmodell
Beiträge: 1010
Registriert: 03.11.2002, 11:36
Wohnort: Rahden

Beitrag von Peacemaker » 10.04.2013, 08:41

Ich habe zwar mit dem Thema nicht all zu viel zu tun, aber um den Schwierigkeitsgrad mal wieder ein wenig zu erhöhen:

Wie wäre es denn mal mit einen Grafischen Ingame Overlay zur Steuerung? :hehehe:

Benutzeravatar
Fussballgott
Geschäftsmodell
Beiträge: 2349
Registriert: 10.12.2002, 15:48
Wohnort: Ruhrpott

Beitrag von Fussballgott » 10.04.2013, 09:11

Bei einem Join sollte definitiv immer gebalanced werden, für das Balancing muss aber eine Toleranz angegeben werden (Autobalance erst ab 2,3,4 Spielern mehr). Dann kann der Spieler bei entsprechenden Gegebenheiten das Team wechseln, wenn die Toleranz überschritten ist wird er als letzter Wechsler eben wieder zurückgeswitcht.

Bei einem Autoteam mitten im Spiel würde ich Kandidaten folgendermaßen suchen:

1. Nicht in Squad
2. Punktzahl (niedrigste zuerst)

Wenn man es auf die Spitze treiben will, kann man gucken, ob man geschickt komplette Squads switchen kann (Ein vierer rüber, einer zweier zurück. Damit könnte man auch VIP-Squads balancen ohne das Teamspiel kaputt zu machen.)

Gibt viele Möglichkeiten, die letztgenannte sollte man abschaltbar machen, ist aber eine Funktion die man gut für ein Randomize nutzen kann, das muss ja auch wieder ausbalancierte Teams ergeben.
"Ich habe viel von meinem Geld für Alkohol, Weiber und schnelle Autos ausgegeben...
Den Rest habe ich einfach verprasst."

George Best

Benutzeravatar
tequilio
Geschäftsmodell
Beiträge: 2131
Registriert: 24.06.2005, 19:06

Beitrag von tequilio » 10.04.2013, 12:11

Niedrigste Punktzahl entspricht in 95% der Fälle einem Idler oder dem letzt gejointen. Von daher, meine Rede!
Bild

Benutzeravatar
ftn|hotty
Geschäftsmodell
Beiträge: 444
Registriert: 26.09.2004, 14:14

Beitrag von ftn|hotty » 10.04.2013, 14:20

JDZ hat geschrieben:Switchen wir per last join müssten alle Spieler einen Zeitstempel
erhalten. Stellt euch vor die 4 zuletzt gejointen Spieler befinden sich
schon im Team mit den wenigsten Spielern. Das ist auch Käse.
Dann erhält jeder Spieler einen Zeitstempel. Irgendwie musst du doch die Spieler im Programm vorhalten. Da einen Zeitstempel hinzuzufügen sollte kein Thema sein. Und danach den zuletzt gejointen Spieler herauszufinden ist bei max. 64 Spielern keine Thema.

JDZ hat geschrieben:Das Balancing über Runden hinweg anhand der K/D, in Summe Teamstärke
genannt ist bei genauer Überlegung auch nicht akzeptabel. Wie oft
kommen und gehen Spieler, d.h die gegenwärtige Teamstärke auf vergangene
Matches zu beziehen endet in einem in endlosen Code und zum anderen
würde es Szenarien geben, wo ohnehin schon die Looserteams zusätzlich
bestraft würden. Wir wollen das Balancing sofort ohne wilde Vorberechnungen.
Nein, viel zu kompliziert. Wenn ein Match mit soviel Prozent der Tickets Unterschied zwischen den Teams beendet wird, wird ein Zähler um eins erhöht. Am Anfang der Runde wird geprüft, ob der Zähler 2 ist. Falls ja, werden die Teams durchgemischt, neu sortiert, was auch immer. Falls eine Runde mit einem zu geringen Unterschied in Tickets ausgeht, wird der Zähler auf null gesetzt.
Was wir verhindern wollen, ist es, das ein Team zu lange einen Server dominiert und die Spieler der anderen Runde vertreibt. Diesen Powerbalancer würde ich aber erst später einbauen.

JDZ hat geschrieben:Mein Lösungsansatz wäre folgender:
Schon beim join auf den Server wird der Spieler in das Team mit dem
geringsten Spielerstand gestopft. Das wäre die erste Sortierstufe und auch gut
da BF3 dies nicht macht. Der joinende Spieler merkt es gar nicht da
er sich noch nicht im Spawn Menü befindet.

Die zweite Stufe überwacht das laufende Spiel und switched Spieler
ohne Squad/unvollständigem Squad anhand des geringsten Punktestands. Wer wenig Punkte hat
idled oder ist vor kurzem gejoint. Im Grunde genommen kann uns die
Teamstärke egal sein. Solange gleiche Spieleranzahlen herrschen
hat jedes Team die gleiche Chance zu gewinnen.
Ist das nicht schon auf dem Server aktiv, das die Spieler automatisch den Team mit den wenigeren Spielern zugewiesen wird :gruebel:
Das mit dem Score ist in Ordnung. Besser wäre fast, den Score/Minute zu nehmen, aber das wird wieder zu aufwendig.

JDZ hat geschrieben:Ich suche einen dualen Studienplatz Wirtschaftsinformatik
für 2014 im Raum Frankfurt/Mannheim. Wer nen Tip hat bitte melden!
Nicht noch ein Wirtschaftsinformatiker...

Benutzeravatar
Roland von Gilead
verdammt coole sau
Beiträge: 13171
Registriert: 02.07.2003, 20:05
Wohnort: wo die Kühe wilder als die Frauen sind !
Kontaktdaten:

Beitrag von Roland von Gilead » 10.04.2013, 15:03

Die meisten Autoteambalancer sind Mist und ich rege mich über diverse auf - einer davon ist z.B. der dämliche von den Germanfunfighter.

Was mich am meisten ärgert wenn ich geswichet werde sind die 2 Dinge:

1) wenn ich aus meinem Team geswitched werde, mit denen ich auch strategisch über TS zusammen spiele

Lösung: Keine Squads auseinander würfeln, wenn gleicher Clan oder einer über einen friend gejoined ist. Ich denke das wird schwierig, weil dir die Informationen dazu fehlen.
Alternative: generell keine Squads auseinander reißen

Für eine YARCC Lösung könnte ich mir noch eine whitelist vorstellen, sprich z.B. ftnler werden nicht aut. geswitched.


2) wenn ich schon Ewigkeiten spiele und dann ins andere Team verschoben werde, das dann gerade noch verliert.

Lösung: nur Spieler mit wenig Punkten o. K/D switchen - nichts ärgert mich so sehr, wenn man am gewinnen ist, dazu seine teil beigetragen hat und dann ins Losersquad geschoben wird, weil evtl. gerade noch andere ins "winningteam" gejoined sind.
Wenn eine Team eine Runde aufgrund Unausgeglichenheit unübersehbar gewinnt, sollte man am Ende der Runde ganze Squads durch wechseln. Das könnte man mit einem Faktor bestimmen ....
[fullalbumimg]804[/fullalbumimg]
Bild Bild Bild Bild

Benutzeravatar
tequilio
Geschäftsmodell
Beiträge: 2131
Registriert: 24.06.2005, 19:06

Beitrag von tequilio » 10.04.2013, 15:15

Roland von Gilead hat geschrieben:Die meisten Autoteambalancer sind Mist und ich rege mich über diverse auf - einer davon ist z.B. der dämliche von den Germanfunfighter.

Was mich am meisten ärgert wenn ich geswichet werde sind die 2 Dinge:

1) wenn ich aus meinem Team geswitched werde, mit denen ich auch strategisch über TS zusammen spiele

Lösung: Keine Squads auseinander würfeln, wenn gleicher Clan oder einer über einen friend gejoined ist. Ich denke das wird schwierig, weil dir die Informationen dazu fehlen.
Alternative: generell keine Squads auseinander reißen

Für eine YARCC Lösung könnte ich mir noch eine whitelist vorstellen, sprich z.B. ftnler werden nicht aut. geswitched.


2) wenn ich schon Ewigkeiten spiele und dann ins andere Team verschoben werde, das dann gerade noch verliert.

Lösung: nur Spieler mit wenig Punkten o. K/D switchen - nichts ärgert mich so sehr, wenn man am gewinnen ist, dazu seine teil beigetragen hat und dann ins Losersquad geschoben wird, weil evtl. gerade noch andere ins "winningteam" gejoined sind.
Wenn eine Team eine Runde aufgrund Unausgeglichenheit unübersehbar gewinnt, sollte man am Ende der Runde ganze Squads durch wechseln. Das könnte man mit einem Faktor bestimmen ....
Zu 1: Das ftnler auf der VIP Liste nicht geswitcht werden war ziemliche eine der ersten Anforderung von vor 2 Seiten. Trotzdem auch wenn der letzt gejointe in ein squad geht muss der geswitcht werden. Ansonsten haben wir ein problem, wenn sich alle in einem squad befinden. von daher finde ich die zuletzt gejointe regel völlig in Ordnung gegenüber den anderen.

Zu 2: Genau meine Rede, was ich in meinem Post auch bemängelt habe.
Bild

Antworten