Hi, folks.

I’m gonna be very short and succinct and present just 2 ideas in the categorized list bellow.

I wanna adress developers, SG stakeholders , staff members, moderators (like Rook) and key players (like beta account holders): guys, please consider this post and let’s make it come true with the nearest updates.

So, this is the categorized list:

*Alliance wars*

- Alliance leaders and co-leaders should have the option to put/remove (activate/deactivate) status icons on 3 scales:

Scale1: the entire battlefield

Scale2: the entire enemy field

Scale2: the entire teammates’ field

Scale3: individual enemy teams

Scale3: individual teammates’ teams.

Of course, same or correlated status icons of higher scales should override those on lower scales - it is easy to implement after you build up the tree of status icons and traverse this tree.

It would be a better idea to introduce a new status of “war coordinators” along with the existing “leaders”, “co-leaders” etc. and give the rights to work with status icons to those who get this status for certain wars.

Some of possible status icons are:

- Do not attack (for enemy & teammates’ teams)
- Attack as first (for enemy teams)
- Change your def. team (for teammates’ teams)
- Attack with a weak team (for enemy teams)
- Kill a tank (for enemy teams)

“Attack with a weak team” means you recommend to leave an enemy team for weaker members of your alliance or for those who have less than 6 strong teams and thus can use their weaker teams to attack that enemy.

- War Scores (thus the whole matchmaking as well) have flaws - alliances could get either a very weak or a very strong rival, based on the following 2 behavioral factors:

2.1. some members that didn’t participate in previous wars (new members, or those who unticked their participation for some reasons, or those who were helping other alliances with titans), influence the war score and could make the matchmaking unfair (I don’t accuse anybody of cheating, it just happens because of flaws in matchmaking);

2.2. if an alliance is in fact strong, but lost previous war(s) for some reasons, they could get matched (based on improperly weighted war score, I suppose) with an alliance with no chances to win against them. My personal example: our Alliance, Orcish Empire, got the opponent with 18 defence teams above 4k TP whereas we have only 8 teams with 4k+ TP. Very unfair - we are good fighters, but in this case there is no drive and no fun any more, because we are just in different strength categories.

I offer the following matchmaking strategy:

- properly increased weight for top 5 heroes and top 5 troops (because a hard defence team matters a lot),
- considering 30 strongest heroes with the normal weight, and further 15 heroes with decreased weight (because the wide choice of heroes matters),
- considering 10 strongest troops with the normal weight (not just 5, because it is very rare when a player attacks all 6 times with rainbow teams) and 5 more with decreased weight (because it is more offen to take 3 or more heroes of one color).
- after you compute the war score value for every single player based on the factors 1-3 listed above, assign a certain category to each player basing on the magnitude of this score (let’s say these categories are A B C D E F, where A stands for some monster players like Zero , B - for less impressive ones, etc. down to F for complete beginners in Empires and Puzzles), and perform the matchmaking in this step-by-step way (just my humble advice, folks ):

PHASE 1 - COMPUTING ALLIANCE ATTRIBUTES

For every alliance:

Step 1: compute number of players, participating in war;

Step 2: compute the number (up to the nearest even number greater of equal to the actual number: for instance, 3 or 4 players in category F should be rounded up to 4) of participating players of each category;

Step 3: compute how many wars of 5 recent ones each alliance won - results will be 1,2,3,4,5.

PHASE 2 - CREATE MATCHMAKING TABLE

After these calculations are made, compile your database of alliances that should look like this:

rows are alliances,

columns are (left-to-right): alliance unique ID, number of participating players, number of players of category A, number of players of category B etc., number of wars won (of 5 recent wars) and the last 2 columns for matchmaking (will talk about these a bit later).

These are all simple, lightweight number fields.

PHASE 3 - FIRST SORTING

Sort your database let’s say in ascending order, step-by-step starting with the second column, then third etc. left-to-right - you don’t need to include the last non-matchmaking column with number of wars won in this sorting - it will appear for the second (being also the last) sorting.

PHASE 4 - COMPUTE MATCHMAKING CRITERIA

Now the last step: under the first of 2 matchmaking columns mentioned earlier in this text, you put for the first row some number (let’s say 1) and for every further row perform this very simple IF ELSE computation that also greatly considers priorities:

- if a current row (meaning some alliance that sits in this row) has absolutely identical values in all the columns left-to-right (except the last column with number of wars won - it is not that relevant and thus will be considered a bit later and not in these computations), you put exactly the same value as you had for the previous row (in our example, for the second row, it is 1 if you put 1 as the initial value for the first row);
- for every single difference in values you add up some fixed summand over the value that you had in the previous row (in this example - over 1 that we had for the first row) in the following pattern: if the difference was in the n-th column, we add up
**10 power (1-n)**meaning in particular: if difference in number of partiparing players (our 1st column to consider), we add up 1, if difference in number of players in category A (our 2nd column), we add up 0.1, if in B - then 0.01 etc.

For instance, if we have differences in the number of participants, number of players in category A and C only, our second row will get the value 1+(1+0.1+0.001)=2.101.

At the end of this computation, you will get the following picture: all alliances with the same number of participating players and with ±1 players in each category will receive the same number, meaning they are totally matchable and the more differences they have, the more these number differ - totally fair.

Now the last 2 steps:

- unter the second of 2 matchmaking columns, you generate some random unique number for each row.

PHASE 5 - LAST SORTING

2. you perform the second (and thereby the last sorting) sorting by 3 columns: first by the first of matchmaking columns with those difference-numbers mentioned above, then by the the last column with unique random numbers mentioned above and then by the column with number of wars won.

PHASE 6 - MATCHMAKING

That’s it: for matchmaking, you just pick pairs of rows, from top to bottom of your databases.

If you want to show us something relevant to matchmaking, like you show us war scores (by the way, they have literally no value to us), you can show us player categories (from A to F in my example) for every player - will be much more informative, I guess. You could also show us an alliance-wide number like **10-15-0-5** instead of war score, with the meaning: there are 10 members of A category, 15 members of B, no members of C category and 5 dudes of D category.

If you find some errors, you’ve my apologies - I wrote all this pretty much on the fly.