Wyliczenie rankingu

1

Wiec, chcialbym stworzyc drabinke rankingowa w Quake'2. Problem jest taki, ze przeskok skillowy jest ogromny (@axelbest moze potwierdzic :D). Sa trzy formaty gier

4vs4
2vs2
1vs1

Nazwijmy ranking ELO (jako, ze jest dosc popularny ale chyba nie jest wystarczajacy na to co potrzebuje)

Mozna graczy podzielic na kilka kategorii

  1. nowy gracz
  2. pol roczny gracz
  3. 2 letni gracz
  4. weteran- sredniak
  5. weteran- dobry
  6. weteran - pro

roznica w kategoriach jest dosc spora. Na tyle spora. Ze gracz z 4 polki. Nie ma absolutnie zadnych szans przeciwko 6 jezeli chodzi o 1vs1. Natomiast 1 gracz pro bez problemu poradzi sobie z 4 graczami pol rocznymi

teraz sa dwa problemy

Szukanie
Dodawanie-odejmowanie rankingu

Szukanie teoretyczynie jest proste, jezeli dodawanie-odejmowanie bedzie zrobione z glowa bo wtedy bierzemy wszystkich graczy i staramy sie zrobic wspolny ranking ktory bedzie bliski temu drugiemu i bedzie w miare sprawiedliwie (powiedzmy)

natomisat nie wiem jak zrobic by poczatkowa wartosc ELO miala sens. W sensie roznica miedzy kategoriami. Kolejna rzecza, jak dodac ranking prawidlowo? Powidzmy, ze przegrales mecz w 4vs4 ale zrobiles niesamowicie duzo dla swojej druzyny (35 fragow 5 smierci) jak powinno to odbyc sie na ranking ELO?

Macie jakies pomysly jakby to fajnie rozplanowac by mecze byly wyrownane i progress ludzi odwierdziedlal to jak graja?

1

Początkowa wartość ELO może bazować na pierwszych 10 grach - tak jak jest to zrobione w wielu tytułach esportowych.
Co do tego 4v4 to bym zrobił tak, że jeżeli jest to losowym mm i po prostu do drużyny przydzieliło nam randomów to fajnie gdyby dobry gracz nie był karany za słaby team - jakieś + punkty do rankingu jak najbardziej by się przydały. Jeżeli jest to pre-made to żadnych punktów za fragi. Chyba, że chcesz zrobić oddzielny ladder dla randomowych rozgrywek i tych pre-made'owych.

//

Co do jakichś cyferek, to tu: https://dota2.gamepedia.com/Matchmaking/Seasonal_Rankings jest jak to rozwiązało Valve - każdy poziom umiejętności dzieli 840 MMR/ELO. Inna sprawa, że mecz w takiej docie trwa dłużej niż rozgrywka 1v1 w Kłejka.

3

Nigdy ale to absolutnie nigdy w tego typu rankingach nie powinieneś brać pod uwagę personalnego wkładu w grę. Do obliczenia tego ile zyskasz/tracisz możesz brać pod uwagę tylko ELO innych osób w grze i wynik gry. (Zakładam że jest to przegrana/wygrana)

Jeżeli zaczniesz próbować uwzględniać personalne osiągnięcia w stylu K/D to ludzie zaczną zamiast myśleć o wygranej to myśleć o tym żeby nie zginąć, bądź będą próbowali oszukać system w inny sposób. To jest główny powód dla którego każda gra z drabinkami właśnie tak to robi, nawet jeżeli gracze sami narzekają na to że nie to "nie fair" że oni byli 22/1 i że nie powinni tracić ELO.

Jeżeli chodzi o tworzenie zbalansowanej gry: ELO jest logarytmiczne. W oryginalnym algorytmie 400 pkt różnicy oznacza 10% szans na wygraną dla gorszego gracza. Jak umiesz dodawać/odejmować logarytmy to z liczeniem średniego ELO drużyny nie jest ciężko sobie poradzić, wobec tego w miare łatwo da się dla 8 graczy dobrac tak drużyny żeby były jak najbardziej zbalansowane. (Partition Problem, NP trudny ale 8! to nie tak dużo)

Ten podział który zasugerowałeś jest raczej tylko i wyłącznie kosmetyczny. Prawie każdy ranking w tym stylu który ma powiedzmy "ligi" i tak pod spodem ma coś w stylu ELO, a to do jakiej ligi należszych jest tylko prostym mapowaniem ELO.

0

troche mnie nie bylo, choruje do tego remont i w ogole rozne dziwne rzeczy ale do rzeczy. @GN @Noozen

przede wszystkim format gry to TDM czyli Team Death Match. Czyli druzyna ktora ma wiecej fragow wygrywa

Początkowa wartość ELO może bazować na pierwszych 10 grach

to nie bedzie dobre. Jezeli mam byc w tym samym rankingu co nowy gracz. To uwierz mi, ze nowy gracz sie zniecheci po dwoch grach. Nawet jezeli bedzie to 4vs4. bardzo prosty przyklad czego chce uniknac to jest to

http://cup.planetquake.pl/quake2/plq2/index.php?op=descr&id=25235

330 : 39. To jest praktycznie 20 min respienia sie a nie grania w quake'2 :D Jezeli kazdy bedzie startowal z takiego samego poziomu, beda na prawde duze roznice i szybciej sie to rozpadnie niz ustabilizuje

moim celem jest zrobienie gier takich jak ten

http://cup.planetquake.pl/quake2/plq2/index.php?op=descr&id=25267

tylko, ze to jest najwyzsza mozliwa polka. Niestety, ale malo ludzi takich gra. Oni robia na prawde wielka roznice. Zeby zaobrazowac

https://cdn.discordapp.com/attachments/521348498579390464/549356230918012930/ws.jpg

Ci ludzie graja juz pare (parenascie!) lat w quake'a, a jednak potrafilem w miare sam pociagnac mocno gre dla mojego teamu. Dlatego uwazam, ze stwierdzenie

Nigdy ale to absolutnie nigdy w tego typu rankingach nie powinieneś brać pod uwagę personalnego wkładu w grę.

tutaj nie jest na miejscu i bardziej chyle sie do wypowiedzi @GN

Co do tego 4v4 to bym zrobił tak, że jeżeli jest to losowym mm i po prostu do drużyny przydzieliło nam randomów to fajnie gdyby dobry gracz nie był karany za słaby team - jakieś + punkty do rankingu jak najbardziej by się przydały.

format gry bedzie tak, ze zapisuje sie 8 osob na dany dzien i z tych 8 osob sa tworzone dwie druzyny o zblizonym rankingu. Teraz pytanie co oznacza zblizony ranking? 1) sredni skill ten sam? 2) gracz z odpowiedniego koszyka?

Jeżeli zaczniesz próbować uwzględniać personalne osiągnięcia w stylu K/D to ludzie zaczną zamiast myśleć o wygranej to myśleć o tym żeby nie zginąć

zgadzam sie prawie w 100%. Dla poczatkujacego gracza, lepiej zeby patrzyl na statystki niz pomagal teamowi :D Przewaznie pierwsze kroki w quake'u to jest nauczyc sie nie ginac. Wiadomo, ze na jakims tam poziomie zacznie byc to bardzo denerwujace. Dlatego chcialbym wymyslec system dla ktorego:

  1. dobrzy gracze nie sa karani za to, ze graja ze slabszymi
  2. slabsi gracze, nie beda czuc az tak wielkiego skoku trudnosci (bo beda miec dobrych w swoim teamie)
  3. ranking odwierdziedla plus minus kto co soba reprezentuje
  4. mecze sa wyrownane (tu dochodzi, jeszcze kto na jakich pozycji gra, bo jezeli jest 4 z rg kontra 2rg i 2 quaderow to Ci z dwoma quaderami maja przewage)

Jeżeli chodzi o tworzenie zbalansowanej gry: ELO jest logarytmiczne. W oryginalnym algorytmie 400 pkt różnicy oznacza 10% szans na wygraną dla gorszego gracza.

no to wszyscy polroczni gracze (nawet jak sie zbiora w 2-3) to maja razem zero punktow przeciwko mnie a przeciwko innemu graczowi maja iles punktow? Bo do tego to sie mniej wiecej sprowadza. Dlatego nie podoba mi sie ranking ELO, stad ten temat

To ma byc drabinka, ktora bedzie resetowana moze raz na rok. Nadal jestem mocno za tym zeby pokategoryzowac graczy na jakies progi zamiast wrzucac ich do jednego worka. Ale nie moge znalezc zadnego fajnego rozwiaznaia ktore rozwiaze te 4 problemy ktore wspomnialem.

Wolam @vpiotr moze go zainteresuje temat :)

0

Dzięki za zawołanie, ale szczerze mówiąc to nie znam się na tym. Wiem tylko że jeśli mam pełny magazynek, wbiegam do budynku za kimś a gościu skacząc ze schodów z półobrotu mnie rozwala to musi być lepszy :)
Obecnie pracuję nad "celowaniem różnicowym" - tym mnie najczęściej pokonują (strzelają czymś solidnym tak gdzie za chwilę będę).

1
fasadin napisał(a):

To ma byc drabinka, ktora bedzie resetowana moze raz na rok. Nadal jestem mocno za tym zeby pokategoryzowac graczy na jakies progi zamiast wrzucac ich do jednego worka. Ale nie moge znalezc zadnego fajnego rozwiaznaia ktore rozwiaze te 4 problemy ktore wspomnialem.

Jak dla mnie nie da się tego zrobić dzieląc na progi. Co jeżeli jakiś gracz zaczał dużo grać i staje się coraz lepszy? Będzie kozaczył w swojej grupie coraz bardziej aż w pewnym momencie z dnia na dzień przerzuci go do wyższego bracketa i będzie kompletnie lamił. Co gorsza, co wtedy z takim graczem zrobić?

a) Uwzględniasz możliwość spadnięcia z powrotem. To pewnie skończyłoby się tak że gościu byłby cały czas przerzucany między dwoma bracketami, bo jest mega silny jak na jeden i mega słaby jak na drugi i taki "ping-pong" raczej nie jest miłym doświadczeniem dla gracza.

b) Nie uwzględniasz mozwliwości spadnięcia z powrotem. Gwarantuje że będzie prowadziło to do frustracji związanej z tym że ktoś w końcu zaczał ogarniać i nagle nie jest w stanie sobie kompletnie radzić w żadnym meczu i zawsze go cisną (mimo że ostatnie 50 gier radził sobie świetnie!). Szczególnie jeżeli community jest relatywnie niewielkie to słabo jest zrażać graczy do gry przez to że nagle zderzają się z rzeczywistością że bracket wyżej są tak słabi.

c) Przypisujesz człowieka raz na "reset" na stałe do rangi. To też w sumie nic nie rozwiązuje, bo następny sezon będzie to samo co w punkcie b)

0

bracket bylby tylko poczatkowy. To jest glownie pod 4vs4 i zeby wszystkich ludzi niezaleznie od bracketow ustawic tak by kazdy sie dobrze bawil. Bracket jedynie przy zapisie, pozniej nie ma podzialow.

Tutaj raczej by dzialala na zasadzie

Poczatkujacy + 2 weteranow + pro
vs
3 weteranow + prawie weteran

taki sklad ma sens i bedzie meczowo w miare wyrownane. Nie moge miec bracketow... bo nie ma na to tyle osob i sa problemy wlasnie te ktore opisales.

1

Nie grałem w Quake, ale może coś w tym stylu? (pisane na improwizacji, nie wiem jaki w praktyce ma to sens)
ELO = winrate*skill*(exp/max_exp)
gdzie
skill - osobisty wkład w grę, np (player_kills/team_kills)
exp - liczba gier rozegranych przez danego gracza
max_exp = max(exp wszystkich graczy)
Powyższe dane można odpowiednio dobrać z całej historii gracze lub jej najnowszego fragmentu.
Po wyliczeniu "ELO" dla każdego gracza dopasować zespoły tak, żeby suma była możliwie podobna.

Tu masz opisane założenia matchmakingu dla Doty https://dota2.gamepedia.com/Matchmaking#Criteria W praktyce to nie wyglądało tak fajnie. Zazwyczaj albo się masakrowało przeciwnika, albo było się masakrowanym. Zbalansowane mecze trafiały się rzadko. Często były też sytuacje typu 5 zwycięstw, 5 porażek itp, co jest denerwujące, jakby gra wymuszała ~50% winrate.

1

A gdyby zamiast na sztywno ustawiać ile ELO trzeba zdobyć na dany brackets, to niech ten pułap będzie determinowany przez ELO najgorszego gracza w danym percentylu.

np.

Tier 7 = top 500 graczy / top 0.1%
Tier 6 = top 1%
Tier 5 = top 5%
Tier 4 = top 15%
Tier 3 = top 50%
Tier 2 = top 75%
Tier 1 = top 100%

Najwięcej powinno być ludzi pomiędzy Tier 2 i Tier 3, chociaż wtedy mogą się z tym źle czuć i może lepiej byłoby ich wrzucić pomiędzy 3/4 :)

0

podoba mi sie polaczenie @Potat0x z @WeiXiao

jest tylko jeden problem do rozwiazania

Startowy ranking.

Nie mam historycznych danych (powiedzmy), ale wiem jak kto mniej wiecej gra. Wiec teoretycznie moglbym ustawic jakis pulap, ale nie mam bladego pojecia jak wielkie roznice beda dobrze dobrane.

Fajnie by bylo, gdyby ustawienie gracza nizej, skutkowaloby tym, ze po 5-6 meczach moze pojsc w gore (taki boost startowy) i tak samo jakby byl ustawiony za wysoko to moze spasc. Tutaj pewnie dam jakis multiplayer dla pierwszych X gier

1

Problem wyliczania rankingów znam głównie z szachów, tych realnych jak i tych wirtualnych. W realu w światowej federacji jest stosowany system ELO i tam to o czym piszesz ("boost startowy") jest sterowane za pomocą parametru K. Jest to mnożnik który opisuje jak dużo dany zawodnik może stracić/zyskać. Jest on większy na starcie, a po rozegraniu odpowiedniej liczby partii albo osiągnięciu wieku jest zmniejszany. Zmniejszany jest też po osiągnięciu odpowiednich progów rankingowych.

Natomiast na serwerach online jest stosowany często system Glicko, który bym Tobie polecił. Nie będę tutaj używał matematycznych pojęć, bo nigdy się w to nie wgłębiałem. Główna różnica w stosunku do Elo jest taka, że jest parametr RD, który odpowiada za "stabilność" rankingu danej osoby. Na starcie jest wysoki i im więcej i częściej ktoś gra to maleje. Jak ktoś zrobi sobie dłuższą przerwę to znowu RD wzrasta, a jego ranging staje się przez to mniej stabilny. Mając wysokie RD możemy dużo zyskać po jednej rozgrywce jak i dużo stracić. No i standardowo startowy ranking dla nowego zawodnika ustalany jest na 1500

0

poki co najlepszym pomyslem jaki wymyslilem jest cos takiego

1) kazdy nowy gracz dostaje jakis tam ranking poczatkowy. Jest on ustalany indywidulanie przez osoby ktore znaja jak gracze graja
2) po wygranym meczu +10 do rankingu
3) jezeli net jest +10 to +10 do rankingu, jezeli jest +20 to 15 do rankingu. +30 to 20 do rankingu. Wiecej nie ma
4) Jezeli sie przegra to -10 do rankingu
5) po meczu, automatycznie jest generowane glosowanie na discordzie by wybrac MVP. MVP dostaje 10 do rankingu

Wiec teoretycznie jest to ok? Najlepszych graczy na poczatku bedzie boostowac by ustawic ranking odpowiednio. Pozniej w nastepnym etapie bedzie wiekszy problem gdy ranking sie jakos ustabilizuje.

Rankingi ktore podajecie sa ok gdy ma sie historyczne dane i ma sie duzo graczy, czego tutaj nie ma

0

W szachach kazdy zaczyna od 0, czyli od rankingu 1000, jak ktos jest dobry to szybko leci w gore. Dlaczego nie zrobic w ten sposob?

0

@90909090:
bo przy meczach 4vs4 taki "nowy" gracz rozwali calkowicie balans i ta druzyna bedzie doslownie dominowac, czego chce uniknac

0

Jeszcze coś takiego podrzucę co gdzieś znalazłem link

0

Zrobienie dobrego systemu ELO/matchmakingu do gier zespołowych jest ekstremalnie trudne, i wymaga zagrania bardzo dużej ilości gier przez wszystkich graczy, żeby było w stanie w miarę dokładnie oddać poziom umiejętności.
Może i takie proste rozwiązanie jest lepsze, niż kombinowanie, ale:
'1) kazdy nowy gracz dostaje jakis tam ranking poczatkowy. Jest on ustalany indywidulanie przez osoby ktore znaja jak gracze graja'
Moim zdaniem brzmi słabo. Zbyt subiektywne, i niektórzy mogą czuć się źle ocenieni (znając efekt Dunninga-Krugera, to będzie takich sporo).
IMHO jeśli chcesz, żeby w miarę dobrze ustalić "poziom startowy", to najlepiej byłoby zacząć np. od zagrania jakiegoś turnieju 1v1 (bo to ustali Ci "hierarchię skilla" o WIELE szybciej, niż gry zespołowe), a gry 2v2/4v4 uwzględniać dopiero po przejściu etapu "początkowego chaosu".

0

Również nic nie broni Ci wdrażać poprawek po jakimś czasie typu zmiana otrzymywanych/traconych punktów, pułap bracketsów, startowe elo, rekalkulacja elo każdego gracza na podstawie historii gier, ale chyba wypadałoby projektować ten system z myślą o ów poprawkach.

1 użytkowników online, w tym zalogowanych: 0, gości: 1