Jump to content

Quarterly Producer Letter for Q2 2024 ×

[PVP] Lösungansatz für das vorzeitige Verlassen und den Einstieg in ein laufendes BG


Hwang

Recommended Posts

Wie jeder weiß gibt es immer mehr Spieler die ein BG vorzeitig verlassen. Aus welchen Gründen auch immer. Weil sie meinen dass es nicht möglich sei eine 2:0 Führung in Huttenball einzuholen oder weil gerade die Ehefrau/Mama ruft. Der Grund ist eigentlich egal, fakt ist dass sie dem BG beigetreten sind und sich somit bereit erklärt haben zu kämpfen. Dadurch dass sie vorzeitig den BG verlassen desertieren sie und das ist natürlich nicht tapfer.

 

Mein Vorschlag für Deserteure:

Spieler die ein BG vorzeitig verlassen, aus welchem Grund auch immer, sollten Tapferkeit verlieren. Jedoch dürfen sie sofort wieder in ein neues BG einsteigen.

 

Mein Vorschlag für AFK Spieler:

Spieler die, weil sie AFK sind oder einen disconnect hatten, gekickt werden sollten keine Tapferkeit verlieren. Sie können das BG aus dem sie geflogen sind wieder sofort joinen. Falls sie das nicht bis zum Ende des BG's oder innerhalbt eines angebrachten Zeitrahmens auf die Reihe bekommen erhalten Sie eine Zeitstrafe und dürfen für z.B. die nächsten 1-2 Stunden kein anderes/neues BG joinen.

 

Mein Vorschlag für den Einstieg in ein laufendes BG:

Man joint ein laufendes BG nur dann wenn z.B. in Huttenball der erste Punkt noch nicht gefallen ist, in Voidster die erste Minute noch nicht vorüber ist oder in Alderaan der erste Turm noch nicht erobert wurde.

 

Mein Vorschlag bei zu wenig verbliebenen Restspielern in einem BG:

Falls innerhalb eines BG's das Spielerzahlverhältnis unter 75/100 sinkt wird der laufende BG abgebrochen (dies würde auch die Problematik lösen dass in einem BG 12 vs 8 Spieler antreten können, das Verhältnis würde dann nämlich 66,6/100 betragen und ein solches BG würde direkt abgebrochen werden).

 

Wenn ich Tapferkeit für das durchhalten oder gewinnen eines BG's erhalte dann ist es doch nur fair dass wenn ich vom Schlachtfeld flüchte und meine Teamkollegen in Stich lasse Tapferkeit abgezogen bekomme. Denn ich benehme mich dann ja nicht tapfer sondern feige.

 

Was haltet ihr davon? Habe ich noch eine Eventualität vergessen?

Edited by Hwang
Link to comment
Share on other sites

Gute Ideen generell.

 

Allerdings müssen ein paar Probleme dann noch gefixed werden:

 

AFKer sollten nicht raus teleportiert werden, und schon gar nicht zur Flotte

 

Spieler benutzen PvP als Teleport, da ja der Flottenpass 18 Stunden CD hat. Mache ich übrigens auch, sorry. Wenn ich am Arsch der Welt in Tatooine bin, join ich PvP, time out und bin in der Flotte um nen Flashpoint zu spielen.

 

Fix: Flottenpass CD auf 30 mins, Schnellreise zum eigenen Schiff erlauben, AFK Port immer zum letzten Standort.

 

AFK Auto Detection sollte abgeschafft werden

 

Da der Ladebildschirm in einem angefangenen BG länger ist als der AFK Timer, funktioniert das momentane System nicht. Ich werde sehr oft rausgeportet, bevor ich überhaupt ne Chance habe, das BG zu betreten, weil die Tür ja auch noch zu ist.

 

Fix: Auto AFK Detection auf 5 mins stellen, Spielern Möglichkeit geben AFKer zu reporten.

 

Deserteure sollten einen moderaten Debuff (kein BG joinen können) kriegen

 

Denke mal so 20 mins wäre ok.

 

AFKer sollten einen kleineren Debuff kriegen

 

AFKer sollten auch einen kleinen Debuff kriegen, wenn sie nicht wieder einloggen in den nächsten 10 Minuten, und sollten kein BG joinen können, solange das momentane noch läuft. Denke mal 10 mins wäre in Ordnung.

Link to comment
Share on other sites

Mein Vorschlag für Deserteure:

Spieler die ein BG vorzeitig verlassen, aus welchem Grund auch immer, sollten Tapferkeit verlieren. Jedoch dürfen sie sofort wieder in ein neues BG einsteigen.

 

Etwas abziehen finde ich nicht wirklich gut, denn damit werden auch diejenigen bestraft, die plötzlich afk gehen müssen. Bei denen ist mir lieber sie verlassen das BG und lassen die Chance, dass eine andere Person nachrückt. Mein Vorschläg wäre aber, dass man pro verlassenem BG ein -10% Tapferkeitsbuff erhält - stapelbar bis -50% und er hält 1 Stunde an.

 

Mein Vorschlag für AFK Spieler:

Spieler die, weil sie AFK sind oder einen disconnect hatten, gekickt werden sollten keine Tapferkeit verlieren. Sie können das BG aus dem sie geflogen sind wieder sofort joinen. Falls sie das nicht bis zum Ende des BG's oder innerhalbt eines angebrachten Zeitrahmens auf die Reihe bekommen erhalten Sie eine Zeitstrafe und dürfen für z.B. die nächsten 1-2 Stunden kein anderes/neues BG joinen.

 

Woher weißt Du, ob ein Spieler, der das BG verlässt es nicht auf Grund des afk-Zustandes gemacht hat? AFK -> kann vorher das BG verlassen oder kann sich töten lassen und den Timer ablaufen lassen. Genau das kann der, der das BG wegen des Verlierens verlässt, auch machen.

 

Mein Vorschlag für den Einstieg in ein laufendes BG:

Man joint ein laufendes BG nur dann wenn z.B. in Huttenball der erste Punkt noch nicht gefallen ist, in Voidster die erste Minute noch nicht vorüber ist oder in Alderaan der erste Turm noch nicht erobert wurde.

 

Man sollte immer als Gruppe die Chance bekommen, dass aufgefüllt wird. Also sollte man immer joinen können, doch würde ich denen, die spät dazu kommen, einen Bonus einräumen. Meist kommen sie ja eh zur Verlierer-Seite...

 

Mein Vorschlag bei zu wenig verbliebenen Restspielern in einem BG:

Falls innerhalb eines BG's das Spielerzahlverhältnis unter 75/100 sinkt wird der laufende BG abgebrochen (dies würde auch die Problematik lösen dass in einem BG 12 vs 8 Spieler antreten können, das Verhältnis würde dann nämlich 66,6/100 betragen und ein solches BG würde direkt abgebrochen werden).

 

8 gute Spieler könnten durchaus gegen 12 schlechte gewinnen... ich bin gegen einen solchen Abbruch. Ich habe durchaus auch BGs erlebt, wo man in der Unterzahl verloren hat und es dennoch Spaß gemacht hat.

 

Mein Vorschlag wäre:

- 10 Minuten Sperre beim ersten Ausscheiden aus einem BG, 30 Minuten bei jedem weiteren (Reset am Zeitpunkt des Dayly-Rests)

- ab dem 2ten Ausscheiden dann einen Buff (1 Stunde), der pro Stapel die erhaltene Tapferkeit um 10% senkt (bis zu 5 Stapel, jeder neue Stapel setzt die Wirkungsdauer wieder auf 1 Stunde); Buff wirkt auch auf Ilum

 

Gute Ideen generell.

 

Allerdings müssen ein paar Probleme dann noch gefixed werden:

 

AFKer sollten nicht raus teleportiert werden, und schon gar nicht zur Flotte

 

Spieler benutzen PvP als Teleport, da ja der Flottenpass 18 Stunden CD hat. Mache ich übrigens auch, sorry. Wenn ich am Arsch der Welt in Tatooine bin, join ich PvP, time out und bin in der Flotte um nen Flashpoint zu spielen.

 

Fix: Flottenpass CD auf 30 mins, Schnellreise zum eigenen Schiff erlauben, AFK Port immer zum letzten Standort.

 

AFK Auto Detection sollte abgeschafft werden

 

Da der Ladebildschirm in einem angefangenen BG länger ist als der AFK Timer, funktioniert das momentane System nicht. Ich werde sehr oft rausgeportet, bevor ich überhaupt ne Chance habe, das BG zu betreten, weil die Tür ja auch noch zu ist.

 

Fix: Auto AFK Detection auf 5 mins stellen, Spielern Möglichkeit geben AFKer zu reporten.

 

Deserteure sollten einen moderaten Debuff (kein BG joinen können) kriegen

 

Denke mal so 20 mins wäre ok.

 

AFKer sollten einen kleineren Debuff kriegen

 

AFKer sollten auch einen kleinen Debuff kriegen, wenn sie nicht wieder einloggen in den nächsten 10 Minuten, und sollten kein BG joinen können, solange das momentane noch läuft. Denke mal 10 mins wäre in Ordnung.

 

Der Cooldown sollte auf jeden Fall auf 30 Minuten reduziert werden und der AFK-Flottenport im Gegenzug entfernt werden. Ein Teleport zum Schiff (30 min cd) fehlt ebenfalls.

Den AFK Timer finde ich jedoch von der aktuellen Dauer ok, nur sollte er erst beginnen, wenn man aus dem Ladebildschirm raus ist (PC könnte ja ein Signal rücksenden). Für "neue", später hinzugekommene Spieler, könnte er verlängert werden, jedoch nicht mehr als auf 2 Minuten.

Edited by Aglareba
Link to comment
Share on other sites

Der Server kann nicht wissen, wann dein Ladebildschirm vorbei ist, denn was soll passieren wenn der Client niemals meldet, das der Ladebildschirm vorbei ist...

 

Du würdest dann niemals AFK gehen.

 

Man könnte es durchaus einbauen, dass der Client es meldet...

Link to comment
Share on other sites

 

Mein Vorschlag für AFK Spieler:

Spieler die, weil sie AFK sind oder einen disconnect hatten, gekickt werden sollten keine Tapferkeit verlieren. Sie können das BG aus dem sie geflogen sind wieder sofort joinen. Falls sie das nicht bis zum Ende des BG's oder innerhalbt eines angebrachten Zeitrahmens auf die Reihe bekommen erhalten Sie eine Zeitstrafe und dürfen für z.B. die nächsten 1-2 Stunden kein anderes/neues BG joinen.

 

Warum sollten Spieler mit disconnect 1 - 2 Stunden BG Sperre kriegen?

Link to comment
Share on other sites

Der Abbruch-Timer muss auf jeden Fall überarbeitet werden...

 

Es kann nicht sein, dass ich ein Huttenball mit 5 gegen 8 durchspielen muss, weil nach ner Minute einer reinkommt und dann sofort wieder verschwindet... Und dann der Timer neu beginnt... Das geht nicht...

 

AFK-Port zur ursprünglichen Stelle wäre absolut angemessen... Genau wie ein Deserteur-Debuff bei frühzeitigem Verlassen der WZ...

 

Für Einsteiger in laufende Warzones wäre es schon sinnvoll, bei Huttenball beim Stande von 0:5 und 1 Minute vor Ende nicht mehr reingeschickt werden zu müssen. Oder in Alderaan beim Stand von 100+ Punkten Unterschied und 1 - 1,5 Minuten Restspieldauer... Da ist man fast länger im Ladebildschirm als im Spiel... Voidstar im Endeffekt das Gleiche... Es bringt mir nichts, wenn ich in Runde 2 als Verteidiger reinkomme, und die Angreifer schon weiter sind, als mein Team vorankam in Runde 1...

 

Ich habe heute 5 Minuten lang 4 gegen 8 spielen müssen, bis endlich der Timer mal durch war...

Link to comment
Share on other sites

Nein, kann man nicht... das ist ein Logik Fehler.

 

Was machst du denn dann, wenn er es NICHT meldet?

 

Wenn der Client sich nicht meldet, nach dem Laden oder wann auch immer, nennt man das ja wohl einen Disconnect.

 

Wenn der Client sich meldet, es wird aber keine Benutzereingabe angezeigt, ist das afk.

 

Der Server kann sogar genau wissen wie weit dein Ladefortschritt ist, in 100stel Sekunden genau wenn es sein muss, warum soll das nicht gehen?

Link to comment
Share on other sites

Wenn der Client sich nicht meldet, nach dem Laden oder wann auch immer, nennt man das ja wohl einen Disconnect.

Wenn der Client sich meldet, es wird aber keine Benutzereingabe angezeigt, ist das afk.

Der Server kann sogar genau wissen wie weit dein Ladefortschritt ist, in 100stel Sekunden genau wenn es sein muss, warum soll das nicht gehen?

 

Das geht nicht, weil du den Bots und Hackern Tür und Tor öffnest.

 

Der Sinn der Sache ist es Leute aussortieren, die absichtlich AFK gehen. Definition von AFK: die Position des Spielers ist nach Timer Ablauf NICHT außerhalb der AFK Zone.

 

Angenommen Bioware macht das, was du da oben schreibst...

 

Dann muss es ein Daten-Packet geben, mit dem der Client anzeigt, dass er den Ladebildschirm hat, richtig? Dieses Daten-Packet VERHINDERT den AFK Timer. Wenn der Ladebildschirm vorbei ist, schickt der Client ein beliebiges anderes Packet, und der Server weiss, dass der Client keinen Ladebildschirm mehr anzeigt, und startet den AFK Timer.

 

Oder anders gesagt: In diesem Fall hat der CLIENT die Kontrolle darüber, ob der AFK Timer jemals aktiv wird.

 

Das Einzige, was also ein böswilliger Client (Bot) machen muss, ist, regelmässig ein Ladebildschirm Package zu schicken, und er wird niemals austimen. -> Fail.

 

Dann.. auf wieviel Minuten willst du den Disconnect einstellen?

 

Wenn ein sich nicht meldender Client nen Disconnect bekommt nach 2 Minuten, dann haben wir dasselbe Problem wie jetzt, nur anstelle raus geportet zu werden zur Imp Flotte, bekommen reguläre Spieler jedesmal aus dem Ladebildschirm nen Disconnect, obwohl sie nicht AFK sind sondern nur auf den Ladebalken starren.

 

Stellst du es auf 5 Minuten ein, dann hast du 5 Minuten einen AFK Spieler im BG drin wenn sein Client nach dem Ladebildschirm einfach keine Pakete mehr schickt, weil der AFK Timer ja niemals startet.

 

Damit der Server weiss, wo dein Ladebalken ist, müsste der Client diese Info schicken. Das ist zum Einen kontraproduktiv zum Ladebalken, denn das würde sinnlos Ressourcen verschwenden die du nicht hast, und das Laden würde noch um etliches länger dauern als es jetzt schon tut.

 

Zum Zweiten würdest du dann den Server mit völlig sinnlosen Datenpaketen zumüllen, die für den Server eh keinerlei Aussage haben, denn der Client kann jederzeit falsche Daten schicken. Aus Performance Gründen kann das nicht funktionieren.

 

Du musst eins immer bedenken: Das Wichtigste, das man bei Online-Spielen immer beachten muss, ist: Der Client ist der Feind und man kann ihm nicht trauen.

Der Server weiss nicht, ob der Client ein regulärer Client ist oder ein gehackter, nachgebauter oder ein reiner Bot Client. Der Server darf niemals die Kontrolle abgeben an den Client, sonst kann man ihn Hacken.

 

(Siehe Speedhacks - der Client hat nämlich z.B. eine gewisse Kontrolle über die Position des Spielers, da Kollision auf dem Client berechnet wird. Wenn der Client die Kollision einfach nicht berechnet, dann kann man als Spieler durch Wände gehen. Der Server hat zwar auch Checks, aber aus Performance Gründen nur sehr grobe und keine zeitlich korrekten.)

 

Ich könnte jetzt noch technischer und genauer werden und Mathematik posten, aber die Quintessenz ist - es geht nicht zufriedenstellend.

Edited by skyflash
Link to comment
Share on other sites

Das geht nicht, weil du den Bots und Hackern Tür und Tor öffnest.

 

Der Sinn der Sache ist es Leute aussortieren, die absichtlich AFK gehen. Definition von AFK: die Position des Spielers ist nach Timer Ablauf NICHT außerhalb der AFK Zone.

 

Angenommen Bioware macht das, was du da oben schreibst...

 

Dann muss es ein Daten-Packet geben, mit dem der Client anzeigt, dass er den Ladebildschirm hat, richtig? Dieses Daten-Packet VERHINDERT den AFK Timer. Wenn der Ladebildschirm vorbei ist, schickt der Client ein beliebiges anderes Packet, und der Server weiss, dass der Client keinen Ladebildschirm mehr anzeigt, und startet den AFK Timer.

 

Oder anders gesagt: In diesem Fall hat der CLIENT die Kontrolle darüber, ob der AFK Timer jemals aktiv wird.

 

Das Einzige, was also ein böswilliger Client (Bot) machen muss, ist, regelmässig ein Ladebildschirm Package zu schicken, und er wird niemals austimen. -> Fail.

 

Das wäre absolut sinnlos für den Client aber ist natürlich möglich, stimmt.

 

Dann.. auf wieviel Minuten willst du den Disconnect einstellen?

 

Wenn ein sich nicht meldender Client nen Disconnect bekommt nach 2 Minuten, dann haben wir dasselbe Problem wie jetzt, nur anstelle raus geportet zu werden zur Imp Flotte, bekommen reguläre Spieler jedesmal aus dem Ladebildschirm nen Disconnect, obwohl sie nicht AFK sind sondern nur auf den Ladebalken starren.

 

Stellst du es auf 5 Minuten ein, dann hast du 5 Minuten einen AFK Spieler im BG drin wenn sein Client nach dem Ladebildschirm einfach keine Pakete mehr schickt, weil der AFK Timer ja niemals startet.

 

Damit der Server weiss, wo dein Ladebalken ist, müsste der Client diese Info schicken. Das ist zum Einen kontraproduktiv zum Ladebalken, denn das würde sinnlos Ressourcen verschwenden die du nicht hast, und das Laden würde noch um etliches länger dauern als es jetzt schon tut.

 

 

Versteh ich nicht. Wenn du im Spiel bist, werden zig Informationen pro Sekunde hin und her gesendet. Warum soll da ein Paket pro Sekunde, das den Ladestatus übermittelt, was ausmachen? Aber ich seh schon: Selbst wenn der Ladebalken zu 99% durch ist kann man keine sichere Prognose machen wie lange die restlichen 1% dauern.

Man könnte ja pro Prozent (oder Abschnitt/ Datei was auch immer) ein Timeout vereinbaren, so dass der Client einen Fortschritt machen MUSS und nicht immer nur 'Loading' senden kann.

 

Aber abgesehen davon: Wie wird es denn bisher gemacht: man fliegt aus dem bg, wenn man nicht innerhalb einer vorgesehenen Zeit fertig geladen und den Startbereich verlassen hat. Das könnte man doch durchaus mit einem 'Loaded'- oder 'Loading'- Signal verknüpfen: Der Timer und alles andere bleibt so wie er ist, nur wird er neu gestartet, wenn einmalig 'Loaded' gesendet wird. (Wenn er zweimal (3/ 4 mal...) 'Loaded' sendet, kann man ihn direkt in den 'Spam-Ordner' schieben ;)

 

 

Zum Zweiten würdest du dann den Server mit völlig sinnlosen Datenpaketen zumüllen, die für den Server eh keinerlei Aussage haben, denn der Client kann jederzeit falsche Daten schicken. Aus Performance Gründen kann das nicht funktionieren.

 

Du musst eins immer bedenken: Das Wichtigste, das man bei Online-Spielen immer beachten muss, ist: Der Client ist der Feind und man kann ihm nicht trauen.

Der Server weiss nicht, ob der Client ein regulärer Client ist oder ein gehackter, nachgebauter oder ein reiner Bot Client. Der Server darf niemals die Kontrolle abgeben an den Client, sonst kann man ihn Hacken.

 

(Siehe Speedhacks - der Client hat nämlich z.B. eine gewisse Kontrolle über die Position des Spielers, da Kollision auf dem Client berechnet wird. Wenn der Client die Kollision einfach nicht berechnet, dann kann man als Spieler durch Wände gehen. Der Server hat zwar auch Checks, aber aus Performance Gründen nur sehr grobe und keine zeitlich korrekten.)

 

 

Wie oft bekommt ein Client denn die Position anderer Clients vom Server übermittelt? Ich denke mal, ob ein Spieler den Startbereich verlassen hat, wird auf jeden Fall vom Server überprüft, bei dem ja auch der Timer läuft. Das es dabei Ressourcen Probleme geben könnte hast du nicht überzeugend dargelegt.

 

 

Ich könnte jetzt noch technischer und genauer werden und Mathematik posten, aber die Quintessenz ist - es geht nicht zufriedenstellend.

 

Naja, also ich hab in meinem Leben ein realtime Client-Server-System geschrieben, bei dem der Client immer absolut vertrauenswürdig war. Mag sein dass du recht hast.

Link to comment
Share on other sites

Aber abgesehen davon: Wie wird es denn bisher gemacht: man fliegt aus dem bg, wenn man nicht innerhalb einer vorgesehenen Zeit fertig geladen und den Startbereich verlassen hat.

 

Bisher fliegt man aus dem BG, wenn man innerhalb einer Zeit den Startbereich nicht verlässt. Punkt. Das kann durchaus passieren, während du noch nen Ladebalken hast.

 

Das Problem ist, man kann viele schöne Dinge machen mit einem kooperierenden Client, aber am Ende des Tages muss immer noch der SERVER ohne irgendwelche Informationen vom Client (die falsch sein können) bestimmen, wann der Client AFK oder Disconnected ist.

 

Und selbst einen disconnected Client zu erkennen ist nicht trivial, das weisst du ja selber wenn du schon an sowas gearbeitet hast. Es gibt viele Arten von Disconnects, und nicht alle werden dir angezeigt. Wenn du UDP benutzt ist es noch viel schlimmer.

 

Wenn du mit Allem fertig bist, wirst du immer noch irgendeine Art von Timer haben... ob es jetzt ein Ladebalken Timeout ist mit Quartalen, ein Flat Timer ab BG entry, oder was auch immer.

 

Jemand muss entscheiden, wie lange der AFK / Disconnect Timer ist, und es führt kein Weg an ihm vorbei. Leider.

 

Zu der Performance... ein MMORPG unterscheidet sich massiv von einem normalen Client-Server System. Bei einem normalen Client-Server System schickt man als Programmierer halt ein Paket, wenn man Lust drauf hat.

 

Bei einem MMORPG wirst du dir eher ins Knie schiessen, als ein zusätzliches Paket abzuschicken, dass nicht zu 100% benötigt wird. Der Grund ist simpel.... Multiplikation. Jedes Paket wird von jedem Spieler geschickt, und z.B. Chat Nachrichten auch weiter geschickt.

 

Irgendwo in einem MMO hast du immer einen n^2 Algorithmus versteckt. Hoffentlich nur einen.

 

Bei einem MMORPG werden auch weniger Pakete geschickt, als du vermutlich annimmst. Es gibt keinen Server, der überleben würde, wenn der Client konstant Pakete schickt. Ja es sind natürlich viele, aber die Pakete sind meist gethrottled auf 1 Paket per X Zeitraum vom Client und ebenfalls vom Server.

 

Wenn man von Realtime redet, dann redet man von einem Server mit relativ kleinen Zeiträumen, aber im Grunde genommen ist fast jeder momentane MMO Server ein Turn-based Gameserver. Nur merkt der Spieler es nicht.

 

Das hier ist übrigens ein netter Text:

 

Cheating in online games

 

Der bezieht sich nicht auf MMOs, einige der Sachen gehen nicht bei MMO Servern, aber dafür andere die nicht erwähnt sind. Ist aber ein guter Überblick, auf was ein Server sich so einstellen muss.

Edited by skyflash
Link to comment
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.