-
-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
wrote a small elo calculation module #9
base: master
Are you sure you want to change the base?
Conversation
Will require Database integration, however I have never worked with PostgreSQL on Haskell so I haven' t touched the Database Module to add to the schema. |
When I think about it, it may be better to use the https://en.wikipedia.org/wiki/TrueSkill algorithm, because openage will barely have 1vs1 matches. If I understood right, ELO is only suitable for those. |
@TheJJ, one problem would be that TrueSkill is patented and as such not usable for this project. ELO can be generalized to multiple players by basically splitting a match into multiple matches. what we then do is calculate the results of the following matches;
|
Haven't read it completely but the following post seems interesting and we could steal some ideas from CSGO on how to implement this: |
We should however probably hide the ratings internally so people with high ratings don't get discouraged from playing due to being afraid of losing it. |
Another possibility would be doing ELO between the Teams then somehow calculate the Shapley Value of each Player to determine how much they contributed to their team and as such divide the gained and/or lost ELO points between the players. Would get interesting on losses however as then we would have to calculate the "inverse shapley value". |
@TheJJ Let's ask in the Siege Engineers community (so around us, basically) if some people from the machine learning group and some other ppl. e.g. from rec analysis and so on are willing to develop an algorithm that scales to AoE needs. If they maybe can work out something for Openage, how to judge the skill especially of an AoE player. I think something like this could really be derived from all that replays and it's analysis that is existing and by the knowledge of this beautiful nerdy community! There might be much different factors than just win or loose and to disappoint the prediction of an algorithm (Trueskill) - is it really just win or loose? What's with a civ-win, how should boar laming affect the numbers, how about killed units/better army compositions, researched upgrades etc. In my understanding of AoE this will get a somewhat "complex" (not "real" complex) function we can still play with, instead of taking something from Xbox and Microsoft. Now it gets philosophic: I mean isn't it all about experience that people get over the game. Playing to perfection. I really think we should take a look at this before we just add numbers together. This could be influencing the basic fun and long-time motivation of people coming new to the game. And as it's a a reimplementation, everyone is basically new. Also the question for a matchmaking algorithm will be a big one. These both algorithms will be a main factor, better be good! What do you think? |
Sure! I'd be glad if we had really good matchmaking someday :) |
Here is a small update after talking to n_brain: He was recommending us to take a look for the glicko rating system. There is also a pdf-File with mathematical explanations. n_brain said it would be best in combination with a community-based fairness reward system. Sounds like a really good approach to me, not reinventing the wheel and still practicable for our purpose. I would like to help implementing it in the future. EDIT: |
not sure where exactly to place it, still needs documentation
typical usage would be calling the win and lose functions and then save the new score in the DB