Logo Platform
logo amplifiers simplified
Endless Space 2
Universe banner wording

ENDLESS™ Space 2 is turn-based 4X space-strategy that launches players into the space colonization age of different civilizations within the ENDLESS™ Universe. Your Vision. Their Future.

A custom Competition system for theme servers.

Reply
Copied to clipboard!
4 years ago
May 28, 2020, 3:26:21 PM

Good day to all!

I thought that it would be nice to create (a month ago) a more or less simple competition system for the ESG server (https://discord.gg/jsq9PP3). But it can also be used by any server associated with the Endless series of games, with the exception of DoTE. Well, why should the resource be limited? So I decided to publish it

Together with the system, a bot is created for the Discord server. At the moment, it is only available on ESG, and does not have the function of working with multiple servers. And it itself has a few functions: register (in automatic/manual mode) users, enter the results of the past game party, output personal statistics of the player and the rating table. If someone is suddenly interested in adding this bot to their server, let them write to me in a personal message.

First of all, the competitive system strives for sufficient simplicity, because the process of exploiting it should not be overloaded. However, some game data (such as the number of moves, the number of players in the game, the place and number of points of each player) will require manual input. Thanks to this data, it will be possible to calculate the player's performance in this game by the number of defeated players, the number of points compared to the winner, and in General-the number of points from ES2 (or another game), as an indicator of efficiency. You can rest easy, delaying the game for more points is not a threat, since the longer the game goes, the less points the players will get. And as an additional feature-it is also possible to influence the effectiveness of players on the skill of all players in the party. Read more about all the nuances of counting in the message below. Also, it is worth noting that despite some difficulties, the system is quite flexible.

In conclusion, I would like to say that all this is still in development and testing. 

0Send private message
4 years ago
May 28, 2020, 3:30:50 PM

[18.06] Explanation "on the fingers" (thank you, Koxsos, for saying that the explanation below is so-so):

Parsing on the fingers, we have 4 main factors (Which are multipliers in the formula) in the variable responsible for some part of the estimate.


Z - the ratio of how far you are behind the winner (or overtook). The smaller the gap, the greater the bonus.


k - the direct ratio of your rank points to the average of the all player's rank points in the match.


((n-l)/n + 1) - a coefficient that directly depends on the number of players you have won. Effective up to 5-6 players (peak - for 4 players). Can't be less than 1.


And the last multiplier, depending on the number of points (in order to cover the difference between, say, the 10th and 60th move) divided by the number of these moves. Thus, it turns out that the more points - the higher the coefficient, and the more moves - the less points total, as evidenced by the 2nd table of examples.

And it is multiplied by 1000, for clarity of results.




Now about the formula itself, but in more detail:

 

Here is a simplified version of the formula for calculating the points of each player individually:

Zk(n-l)*e

Now read more about each multiplier.

Z is the coefficient of struggle for victory. If you set 75% of a and higher, it is calculated as:

Z = 2.34 – (a/e)

Where a – the number of points of the first place, e – the number of points of the player.

If the number of points is less than 75%a, but greater than or equal to 50%a, then Z = 1.

If less than 50% of a, then Z = 0.85

k = ((H/n)/h)

the sum of all player's rank points = H; the current number of player's rank points = h. n - numbers of players.

This is the only coefficient that has not been edited (at the moment). Therefore, it is the most controversial and it is unclear how it will behave after a while.

(n-l) – the number of defeated players. Now it looks like: ((n-l)/n + 1)

l – the place occupied by the player.

The image shows the coefficient values in some situations. As you can see, it works very well when there are 4-5 players in the game. But still able to handle 2, 3 and 6 players. If anything, top-here, this is the place occupied by the player.

Now to e:

it is calculated as (the square root of the number of points scored by the player)/on the number of moves. And this is all multiplied by 1000.

The image on the left shows an approximate score, without multiplying by 1000. As you can see, the more moves, the lower the reward, although the points themselves inside the game – grow. This may be controversial, you may have to multiply it all by 2. But on average, I was thinking about an average of 80 moves. But the sooner the players cope, the better for them.

Here, in principle, according to the formula-everything.



*In picture 1, the coefficient (n-l) depends on the number of players. 

Picture 2 shows an example of a decrease in the number of points received, depending on the length of the game in moves.

** Naturally, to use this - you need clearly defined settings for game parties.

Updated 4 years ago.
0Send private message
4 years ago
Jun 17, 2020, 10:38:02 AM

I'd really like it better odered so I can actually know all the things by the time you explain them like from the bottom up, so that following formulae do not contain unknown variables.

Anyway starting off:

New player!

h = 0, formula is broken, well done.


I think the actual content of the game is way too complex and supremely randomized thus most unreliable to be kept relevant.
Let's just stick to winning/losing and perform all the skill comparison, rating gain, whatever else from there.

Updated 4 years ago.
0Send private message
4 years ago
Jun 17, 2020, 2:28:40 PM

Oops, I didn't add that the first few matches the player qualifies, where k=1 (i.e. it doesn't count, just because h = 0). This is not a problem. But in any case, thank you for your comment.

0Send private message
4 years ago
Jun 17, 2020, 6:52:36 PM

You could... edit it in?

Ok, I'll try the formula again with k = 1.

Ok, we are once again dividing by zero at Z = 2.34 – (a/e) since I would like a 100% struggle, since I am pretending everyone is at 0.
so I guess Z= 1 aswell?
Ah nevermind you had me confusing points and rank points, because calling things the same way does that, how about we go with "rating" perhaps even score, as the in game score? :-D

So given I can finish at 1000 SCORE and the other player was obliterated into ground of let's say 200 score.
Since my number of points endgame score is greater than 50% of a since it's 100% a, then the Z = 1. ok

K I am now at "(n-l)*e " let me unravel this further.
Ok, n number of defeated players is 1, I finished 1st so (I would advise avoiding usage of subcapital l cause it is also capital I) = 1

k we are at 0. 0 * e, ok my point gain is 0. right, gg.
I DID IT I finished the equation calculation. Guess I should have started at the n - l part. Would not have to bother with the rest.
Can we do this like with colours and have the individual unique variables in a table with their exaplanation?

Anyway, i think it's too much effort, just give 1 point to the winner 0 to the losers, we are set up for life.
It's not like we need to cator to children from league of legends and give out participation awards.

Updated 4 years ago.
0Send private message
4 years ago
Jun 18, 2020, 6:58:46 AM

"Ok, we are once again dividing by zero at Z = 2.34 – (a/e) since I would like a 100% struggle, since I am pretending everyone is at 0."
Why are we suddenly dividing by zero here? The bigger your points - the bigger the divisor - the higher the bonus.

"Ah nevermind you had me confusing points and rank points, because calling things the same way does that, how about we go with "rating" perhaps even score, as the in game score? "
For me, the difference in one letter is still present. But if it's convenient for you, you can call rpoints rank points.

"n number of defeated players is 1 "
Sorry, that's not true. n - the number of players. But just n-l is the number of defeated players. Plus, you can't get 0 , because in any case +1 is added. Look at the first table.

That's how it works. Nothing turns to zero, I checked (although we are all human).

As for the profitability of this system-a complex issue and everyone has to solve it for themselves, whether they want more or not. There are advantages and pitfalls everywhere.

I think that giving a point for a win is not quite correct in terms of the efforts of all the other players. And in terms of the winner.

A simple score will only show the number of your victories, but not the number of these same fights, not the effectiveness of the player in them, nor the number of people in the party, nor the level of these same players-it does not show.

Difficulties in counting are easily solved if there is a bot. Start the data and be happy :) Of course,if it would be possible not to enter them - it would be generally good, but that is, that is.


By the way, I will leave then the script of the command for scoring results. Maybe you will find something interesting in it (Attention! Variables there may be called inconsistent with the explanation of the formula itself) res.js




Updated 4 years ago.
0Send private message
?

Click here to login

Reply
Comment
0Send private message