Wyliczenie rankingu

Odpowiedz Nowy wątek
2019-03-11 13:16
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?

edytowany 1x, ostatnio: fasadin, 2019-03-11 13:26
Potwierdzam :) - axelbest 2019-03-11 13:26

Pozostało 580 znaków

2019-03-11 13:48
GN
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.


“Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter.” ~ Eric S. Raymond
edytowany 1x, ostatnio: GN, 2019-03-11 14:06

Pozostało 580 znaków

2019-03-11 15:56
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.

edytowany 4x, ostatnio: Noozen, 2019-03-11 16:03

Pozostało 580 znaków

2019-03-14 09:42
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/qua[...]dex.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/qua[...]dex.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/at[...]464/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 :)

edytowany 2x, ostatnio: fasadin, 2019-03-14 09:43

Pozostało 580 znaków

2019-03-14 09:53
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ę).


Szacuje się, że w Polsce brakuje 50 tys. programistów
Pokaż pozostałe 4 komentarze
Pocieszę Cię że jak zamontujesz coś >= 2070 to spanie przy włączonym kompie w tym samym pokoju możesz sobie darować. Za to dobrze powinno usypiać dzieci. - vpiotr 2019-03-14 10:08
mam osobny pokoj na komputer ;) prawie ze w garazu, dzieciaki spia na pietrze takze nie powinno byc problemow :D ale jak tak glosno chodzi to poczekam na cos nowego - fasadin 2019-03-14 10:09
Wcześniej miałem 960 to jeszcze spoko, zwłaszcza w wersji Asus Strix (btw: tanio sprzedam). Niestety wersja Asus Strix dla 2070 kosztowała 500..700 zł więcej więc jakoś średnio mi to pasowało. - vpiotr 2019-03-14 10:11
Ale przynajmniej przez jakiś czas pogram na High(est), tyle że raczej w Windozie - vpiotr 2019-03-14 10:13
ja mam 780 gtx od asusa i chodzi cichutko :) Rzeczywiscie te od asusa maja fajne chlodzenie i ni slychac ich tak bardzo - fasadin 2019-03-14 10:14

Pozostało 580 znaków

2019-03-14 11:10
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)

edytowany 2x, ostatnio: Noozen, 2019-03-14 11:13

Pozostało 580 znaków

2019-03-14 11:14
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.

Pozostało 580 znaków

2019-03-15 23:49
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.

edytowany 1x, ostatnio: Potat0x, 2019-03-15 23:52
Nie wiem jak wygląda aspekt strategiczny Quake (@fasadin), ale skill i exp wydają się być bardzo złymi parametrami. - WeiXiao 2019-03-16 00:27
strategia w quake'u jest bardzo istotna ;) powiedzialbym, ze bardziej niz skill - fasadin 2019-03-18 08:50

Pozostało 580 znaków

2019-03-16 00:40
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 :)

edytowany 3x, ostatnio: WeiXiao, 2019-03-16 00:42

Pozostało 580 znaków

2019-03-18 08:54
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

Pozostało 580 znaków

2019-03-18 11:24
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

edytowany 1x, ostatnio: paulonio, 2019-03-18 11:24
fajny pomysl. Nadal problem jest z nowymi graczami. Jezeli dostanie 1500 gdzie powiedzmy bedzie to srednia polka (gracza) to zostanie on niesamowicie rozgromiony. Zeby zobrazowac. Wyobraz sobie, ze do milosnikow szachow (wiec, jest arcymistrz, sa mistrzowie ale sa niedzielni gracze) wchodzi 7 letnie dziecko bo potrafi zrobic roszade i dostaje 1500 punktow na poczatku - fasadin 2019-03-18 11:28
w szachach w realu jest to zrobione jeszcze inaczej. jak ktoś zaczyna to ma ranking 0 (wyniki z nim nie zmieniają rankingu innych osób). jak rozegra określoną liczbę partii (nie pamiętam ile obecne, ale kilkanaście) to z tych partii według odpowiedniego wzoru uwzględniając średni ranking przeciwników i wyniki jest liczony ranking startowy. tak czy inaczej nigdy nie unikniesz tego, że na początku przez jakiś okres nowy gracz ma nieoszacowany ranking który jest trochę niewiadomą - paulonio 2019-03-18 11:35
wlasnie tego chce uniknac. Na podstawie jednej / dwoch gier wrzucic go w odpowiednie miejsce. Taki gracz powiedzmy nowy ale bardzo dobry, rozwali calkowicie balans 4vs4 - fasadin 2019-03-18 11:36
no właśnie, wszystko co piszę bardzo dobrze się sprawdza dla szachów, które są siłą rzeczy 1vs1 ;) więc inny pomysł, mógłbyś ranking oceniać tylko na podstawie 1vs1, a rozgrywki drużynowe nie miałyby na niego wpływu. I dać wymóg, że z drużynowych możesz grać dopiero jak rozegrasz np. 10 gier 1vs1 - paulonio 2019-03-18 11:40
1vs1 nie ma sie nijak do druzynowych ;) w tym tez problem - fasadin 2019-03-18 11:41

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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