=]RC[= Conquest - Maintain Balance

Alles zum Spiel Bad Company 2 sowie unseren damit verbundenen Servern
---
All about the game Bad Company 2 as well our related game servers
User avatar
Nino-6-years
Staff Sergeant
Staff Sergeant
Posts: 162
Joined: Tue Jun 23, 2015
Favorite Server: BC2
Been thanked: 10 times
Germany

Contributor

Membership

22 Aug 2016, 19:53

Hallo zusammen,

wie ihr sicherlich bereits wisst, wird euer Conquest Server von vielen Stammgästen besucht. Darunter befinden sich auch einige überdurchschnittliche Spieler, die oftmals in der Lage sind ein starkes Ungleichgewicht hervorzurufen, sodass das schwächere Team auf der eigenen Base eingeschlossen wird. Nicht selten passiert es schon wenige Minuten nach Rundenbeginn, was zu Frustration im schwächeren Team und Langeweile im stärkeren Team führt.

Ich und einige anderen Mitspieler versuchen zwar das Gleichgewicht aufrecht zu erhalten indem ins schwache Team gewechselt wird, aber es fehlt oft die Möglichkeit, weil das gegnerische Team kein Platz hat oder der Server einfach verbietet zu wechseln, weil man bereits letzte Runde gewechselt hat. Man kann natürlich dem Server neu beitreten, aber das ist eher lästig, weil oft mit langen Wartezeiten verbunden.

Deswegen die Frage an euch: Gibt es eine Möglichkeit effizienter für ein Gleichgewicht zu sorgen?

Es ist zwar Autobalance aktiv, aber es orientiert sich lediglich nach der Spielerzahl und Beitrittszeit, nicht nach der Teamfähigkeit, Erfahrung etc. eines Spielers. Habe schon oft erlebt, dass gute Spieler vom Autobalance ins stärkere Team geschmissen wurden, was das Ungleichgewicht noch weiter verstärkte ...
Dann gibt es noch Gestalten, die relativ gut Spielen, aber absichtlich ins Winner-Team wechseln, statt den Schwächeren zu helfen, weil sie anscheinend nur an einer guten K/D interessiert sind - das Spiel wird dadurch noch unausgeglichener und langweiliger.

Da ihr über eine umfangreiche Datenbank verfügt und die meisten Besucher schon lange bekannt sind, könnte man da nicht Autobalance zwingen sich z.B. nach der K/D (ob nun ingame oder global) eines Spielers zu orientieren und bei Bedarf den stärkeren zu verschieben, statt den zuletzt beigetretenen?

Oder man könnte auch ein Vote-Verfahren einfügen, welches die bestehenden Teams (nach bestimmten Kriterien) durchmischt, wenn eine bestimmte Zahl an Stimmen abgegeben wird. Oder Vote-Verfahren zum verschieben einzelner Spieler? Oder wie wäre es mit einer Whitelist mit Spielern, denen erlaubt wird sich mit !move ins andere Team zu versetzen? Oder, wenn es überhaupt möglich ist, könnte man auch einfach die Begrenzung für die Anzahl von Teamwechsel deaktivieren?


Image
armithaeus
Private First Class
Private First Class
Posts: 43
Joined: Tue Sep 15, 2015
Germany

25 Aug 2016, 01:10

+1


User avatar
[RC]Hunter
Site Admin
Sergeant
Sergeant
Posts: 2376
Joined: Fri Apr 04, 2008
Location: Hue City
Favorite Server: All of them
Has thanked: 3 times
Been thanked: 19 times
Germany

Networker

Contributor

Membership

=]RC[= Hunter’s avatar
Loading…

29 Aug 2016, 16:50

Ich war die letzten Tage etwas eingespannt, daher melde ich mich erst jetzt zu Wort.

Danke erstmal für diesen Input, ich versuche mich kurz zu halten in meinen Antworten. :)



Technische Seite:

1) Der BC2 Server liefert keine Ränge, nur aktuelle Punktestände. Daher muss man jeden Kill sofort aufzeichnen und entsprechend verwerten, was ja zum Beispiel mit unserer Datenbank geschieht.

2) Ist der Server voll, kann man keine Spieler zwischen den Teams verschieben.



Prinzipielle Herangehensweise:

Nimmt man dieses technische Manko nun als Fakt, kann man also nicht in einer Sekunde X den Server über seinen aktuellen Stand der Spieler abfragen. Eine entsprechende Datenbank müsste abgefragt werden, dies kann eine existierende sein (wie zum Beispiel unsere) bzw. man erzeugt immer eine extra DB für jede Kartenrunde um dessen Daten bei Laden der nächsten Map heranzuziehen. Datenbankabfragen sind rechenintensiv und nicht immer schnell genug, speziell bei der erwähnten DB von uns ... diese wurde nie für eine solche Datenmenge ausgelegt und wir daher schon merklich langsamer bei diversen Afragen Modi, wie zum Beispiel beim einfachen Aufruf der Stats hier über die Webseite ... müsste man demzufolge optimieren und umbauen.

Es gelte dann auch zu klären nach welchem Schemata man welchen Spieler wann und wie verschiebt. Sofort, oder nächste Runde oder beim nächsten Tod usw ...

Es gilt auch zu bedenken das man Squads nicht zwingend auseinander reisst, sprich man muss von der Code-/Admintechnischen Seite beachten ob eventuelle Lonewolfs unterwegs sind, oder Freunde in einem Squad spielen. Nichts ist frustrierender also immerzu von seinen Freunden "getrennt zu werden", was man damit erreicht ist das nicht ein Spieler den Server verlässt, sondern gleich mehrere. Da frage ich mich dann was für den Erhalt der Server Population am besten ist ...


Diese und ähnliche Gedanken wurden schon vor einigen Jahren von uns gewälzt, ehrlich gesagt mit keinem endgültigen Ergebnis... der viel diskutierte Base Rape Schutz auf unserem CQ Server ist ein Teilergebnis vielleicht, primär von mir ins Leben gerufen aufgrund der Fairnes an sich, heutzutage fungiert er wohl auch in Bezug auf Team Balance, da ein zu starkes Team merklich reduziert wird, wenn es denn unfaire Spieler onboard hat. Da diese temporär nicht zurückkehren können, greift entweder die Autobalance oder Spieler im unterlegenen Teams switchen oder es joinen neue Spieler, ob nun schwächer oder nicht vom Skill. Also eine gewisse "Abwechslung" wird dadurch bereits erzeugt.

Ich und einige anderen Mitspieler versuchen zwar das Gleichgewicht aufrecht zu erhalten indem ins schwache Team gewechselt wird, aber es fehlt oft die Möglichkeit, weil das gegnerische Team kein Platz hat oder der Server einfach verbietet zu wechseln, weil man bereits letzte Runde gewechselt hat. Man kann natürlich dem Server neu beitreten, aber das ist eher lästig, weil oft mit langen Wartezeiten verbunden.

Ursache hiefür ist technischer Aspekt 2) ... das ein Spieler nicht permanent die Teams wechseln kann ist im Server hardcoded und nicht beeinflussbar. (ausser durch Admin Rechte Remote, oder ingame)


Es ist zwar Autobalance aktiv, aber es orientiert sich lediglich nach der Spielerzahl und Beitrittszeit, nicht nach der Teamfähigkeit, Erfahrung etc. eines Spielers. Habe schon oft erlebt, dass gute Spieler vom Autobalance ins stärkere Team geschmissen wurden, was das Ungleichgewicht noch weiter verstärkte ...
Autobalance funktioniert so, weil technischer Grund 1) es nicht erlaubt zu "wissen" was der neue joinende Spieler als Rang und Skill hat, der Fairness halber Du sicherlich auch nicht 200 Tickets geackert hast und dann 20 Tickets vor Ende vom Server als bester Spieler Deines Teams ins gegnerische verschoben wirst. Daher habe ich mich dazu entschieden einfach den letzten Beitritt zu verschieben, denn dieser hat ja bisher für diese Runde/dieses Team am wenigsten oder gar nix beigesteuert.

Zusätzlich beachte ich mit dieser Routine auch sogenannte "Winning Team Joiner". Sprich Spieler treten dem Server bei oder haben schon ein wenig gespielt, sind im schwächeren Team und nutzen die Möglichkeit des Team Wechsels zur stärkeren Seite. Kommt dadurch eine Unbalance zustande, oder weil es noch einen oder mehrere Rage Quitter gibt auf der schwachen Seite, so wird der Winning Team Joiner wieder brav in sein Ursprungsteam verschoben.

Oder man könnte auch ein Vote-Verfahren einfügen, welches die bestehenden Teams (nach bestimmten Kriterien) durchmischt, wenn eine bestimmte Zahl an Stimmen abgegeben wird.
Sehe ich kritisch, Votes funktionieren nur über den Ingame Chat, den lesen leider viele nicht.
Oder Vote-Verfahren zum verschieben einzelner Spieler?
Auf keinen Fall, dies provoziert Spieler Bashing.
Oder wie wäre es mit einer Whitelist mit Spielern, denen erlaubt wird sich mit !move ins andere Team zu versetzen?
Was ist wenn !move aufgerufen wurde und der Server voll ist. Wie lange soll das Kommando "vorgehalten" werden, was wenn es mehrer Spieler sind die "moven" wollen usw. ... so einfach ist das Thema nicht. RC Admins und Co Admins könnten sich durch remote Eingriffe natürlich verschieben ...


Man könnte auch über ein "Team Scrambling" nach jeder Runde, jeder Karte usw. ... aber auch hier gilt es Squads oder Clan Tags zu beachten ... was wiederum ungewollt einen "Clan War" auslösen kann usw. ... also das Thema ist nicht wirklich neu aber deswegen nicht einfacher.


=]RC[= Hunter
skill is not an unlock ... see ya on the battlefields

Image * Image * Image * Image
User avatar
Nino-6-years
Staff Sergeant
Staff Sergeant
Posts: 162
Joined: Tue Jun 23, 2015
Favorite Server: BC2
Been thanked: 10 times
Germany

Contributor

Membership

30 Aug 2016, 01:18

Alles verständlich, danke für die ausführliche Antwort.

Wenn ich alles in einen Satz zusammenfassen darf:
Man kann es nicht allen Recht machen. :D ... leider.


Image
User avatar
[RC]Hunter
Site Admin
Sergeant
Sergeant
Posts: 2376
Joined: Fri Apr 04, 2008
Location: Hue City
Favorite Server: All of them
Has thanked: 3 times
Been thanked: 19 times
Germany

Networker

Contributor

Membership

=]RC[= Hunter’s avatar
Loading…

30 Aug 2016, 10:37

Na allen recht machen sowieso nicht. :)

Was mir noch so in den Sinn kam wäre ein Team Durchmischen wenn die Tickets einer Runde einen gewissen definierten Unterschied ausmachen, zum Beispiel ein Delta von mehr als 200 ... allerdings weiss man das erst am Rundenende, dann laedt es die Runde oder Karte, der Script mischt nun durch (insofern weniger als 32 Spieler auf dem Server sind).

Aber damit wird ja nun auch nicht ausgeschlossen das nach dem Laden der neuen Runde und dem Durchmischen, noch 10 Spieler ausloggen und 3 joinen und die Teams ungleich sind in der Spieleranzahl. Dann kommt die Autobalance hinzu usw. ... und Du wirst in 3 Runden 5x hin und her geworfen. *lach


=]RC[= Hunter
skill is not an unlock ... see ya on the battlefields

Image * Image * Image * Image
Post Reply