Closed simonsan closed 2 years ago
How are we distinguishing aoe2
players from aoe4
players?
How are we distinguishing
aoe2
players fromaoe4
players?
I think that this is on the people that use an API to get the more information from a player on that specific platform e.g. using "age2" as a parameter to game
on the public AoE API if there is no information available for them on that game it should be part of their error handling.
For example it's also not done on Voobly, people could also play Age of Mythology or SWGB there and it isn't separated. I wouldn't introduce a new key
for the game people play, as this would be too much maintenance effort (imho). I see this more as an effort to collect the IDs people have on a specific platform and the developers using this information use the ID to find the information they need.
It is a matter of notability though. An aoe4 player may not be notable in aoe2, and there's no way for consumers to know which game is the relevant one if they play both. This assumes that aoe4 players might be added after this change. If that's not the case, then there's no reason to change the key name, of course.
w.r.t. voobly -- same problem exists but it's effectively historical at this point and there's no interest that I know of to add voobly AoM or SWGB players.
It is a matter of notability though. An aoe4 player may not be notable in aoe2, and there's no way for consumers to know which game is the relevant one if they play both. This assumes that aoe4 players might be added after this change. If that's not the case, then there's no reason to change the key name, of course.
Then I would change the third entry in the notability guidelines like so:
"Was ever a top 250 player on the primary competitive ladder for at least three months."
Which would make it game independent.
Consumers of this data (myself included) may care about what a game a player is notable in. If we expand the scope to more than one game, we need to accommodate accordingly.
With that said, if the intention is to add aoe4 players here, we should also define inclusion criteria for them or adopt existing criteria, sure. That's independent of the concern.
Consumers of this data (myself included) may care about what a game a player is notable in. If we expand the scope to more than one game, we need to accommodate accordingly.
We can add a field notability
to each player which is binary data encoding the notability from the left like so - with the advantage, that we can always add games/notabilities to the right (or to the left, as it's easier to parse. If we add left we could parse it as y*(2^x)
from the right, which would make it easy to search for while being also easy to maintain I think.
Notability table (left-to-right)
~~ | aoe1 | aoe2 | aoe3 | aoe4 | (..future additions..) | ~~ |
---|---|---|---|---|---|---|
~~ | 0 | 1 | 0 | 1 | (0) | ~~ |
So the notability for this player would be (in YAML):
0101
- which is notable in AoE2 and AoE4
Notability table (right-to-left)
(games ordered for year of release, newer releases get added to the left)
(..future additions: e.g. aomde, openage ..) | aoe4 | aoeo | aom | aoe3 | aoe2 | aoe1 |
---|---|---|---|---|---|---|
- | 1 | 0 | 0 | 0 | 1 | 0 |
So the notability for this player would be (in YAML):
notability: '100010'
- which is notable in AoE2 and AoE4
easily searchable by parsing as binary, easily maintainable by just recalculating and writing back as binary and easily searchable for 34
as a Decimal
Only an abstract idea, not really important: We could even go further and use it as a score by adding our binary representation of fulfilling our notability as well not just the game, like so:
Notability table including our notability (right-to-left)
(games ordered for year of release, newer releases get added to the left)
(..future additions: e.g. aomde, openage ..) | aoe4 | aoeo | aom | aoe3 | aoe2 | aoe1 | Twitch partner | Ever Top250 on primary competitive ladder | Top200 aoeelo | Has Liquipedia Page |
---|---|---|---|---|---|---|---|---|---|---|
- | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 1 |
So the notability for this player would be (in YAML):
notability: '1000101111'
- which is notable in AoE2 and AoE4, all our notability criteria fulfilled
would result in a 'score' of 559
, which could be used to prioritize this player as it's most likely a high-level content creator playing the game when showing. To give a different value to different games we could shift them to the left, to give them more weight (as they would represent a higher number)
I think a notability
field definitely solves our problem, good idea!. The maintenance burden is fairly low. We can also partially automate it based on Liquipedia categories.
I'm not in favor of an encoding. One of the benefits of YAML is the readability, which we would be compromising. I have seen non-technical users reference this file so there's definitely an incentive to keep it unobfuscated.
What about:
notability:
- aoe2
- aoe3
The "notability score" idea is pretty interesting but definitely introduces more work. I'd kind of be in favor of adding a script that computes a score and writes it to the file, then the heuristic algorithm could be smarter. But either way that's another project.
I think a
notability
field definitely solves our problem, good idea!. The maintenance burden is fairly low. We can also partially automate it based on Liquipedia categories.I'm not in favor of an encoding. One of the benefits of YAML is the readability, which we would be compromising. I have seen non-technical users reference this file so there's definitely an incentive to keep it unobfuscated.
What about:
notability: - aoe2 - aoe3
I think that's better as I agree with the readability aspect. Though I'm not sure about the Array of Strings
.
What would you think of:
notability:
- isAoE2: true
- isAoE4: false
That would make it easier in programming I think as we would just check for a Boolean
.
The "notability score" idea is pretty interesting but definitely introduces more work. I'd kind of be in favor of adding a script that computes a score and writes it to the file, then the heuristic algorithm could be smarter. But either way that's another project.
I can reference it in a new issue and extract some ideas from it for the future.
notability:
- aoe2: true
- aoe4: false
should be fine
@happyleavesaoc Rebased
Still missing changes to CI to support
rl
, please don't merge.