There isn't a simple solution to this problem due multiple variables that are involved with balancing teams. The largest restriction on balancing match ups is that friends want to play together. Since friends want to play together, teams can't be drafted or randomized to get balanced match ups. The other major restriction, is that both army's must have an "equal" match on the opposing army. If army's aren't balanced based on skill, it is impossible to have 100% balanced match ups.
A solution to the balance problem would be to have squads self-select teams who they want to compete against for that battle night. Essentially, the system would work something like this:
1. Both army's mobilize as many forces as they can for a battle night. Each army's forces are grouped into squads and select a representative (squad leader) who will handle the pool selection. (Basically, the current system for getting squads together on battle nights.)
2. A list of all squads from both army's is posted along with the squad leader's name (gamer tag) (for the most part, this is already done).
3. Squad leader's communicate with other squad leaders who they would like to play against that night. If two squads agree to play with each other, they submit their matchup to the people-who-run-the-battle-night.
4. After all squads are finished requesting match ups, run a program to generate possible match ups and start setting up matches. (Sample Program for Generating Match Ups linked below)
Example: (Pairs of squads that want to play each other)
A1 - B1
A1 - B2
A2 - B2
A2 - B3
A3 - B3
A3 - B4
A3 - B2
Possible Rounds: (id:: matches)
0:: [A 1 : B 1, A 2 : B 2]
1:: [A 1 : B 1, A 2 : B 2, A 3 : B 3]
2:: [A 1 : B 1, A 2 : B 2, A 3 : B 4]
3:: [A 1 : B 1, A 2 : B 3, A 3 : B 2]
4:: [A 1 : B 1, A 2 : B 3]
5:: [A 1 : B 1, A 2 : B 3, A 3 : B 4]
6:: [A 1 : B 2]
7:: [A 1 : B 2, A 3 : B 3]
8:: [A 1 : B 2, A 3 : B 4]
9:: [A 1 : B 2, A 2 : B 3]
10:: [A 1 : B 2, A 2 : B 3]
11:: [A 1 : B 2, A 2 : B 3, A 3 : B 4]
Usable Rounds:
1:: [A 1 : B 1, A 2 : B 2, A 3 : B 3] (B4 sits out)
2:: [A 1 : B 1, A 2 : B 2, A 3 : B 4] (B3 sits out)
3:: [A 1 : B 1, A 2 : B 3, A 3 : B 2] (B4 sits out)
5:: [A 1 : B 1, A 2 : B 3, A 3 : B 4] (B2 sits out)
11:: [A 1 : B 2, A 2 : B 3, A 3 : B 4] (B1 sits out)
Another alternative to ignoring incomplete rounds, is to have the teams who don't have a match for the incomplete round randomly play each other during that round. This will increase variety of opponents; however, it will also increase the probability that there would be a blowout for that match.
While this may look complicated, it really isn't much different from the current system with the following exceptions:
1. The responsibility for getting matches for a given battle night falls on the teams to work together and compromise not a random generator. (Teamwork and Communication)
2. Squads only play in mutually agreed upon matches (possible exception). (Balance)
3. If you aren't getting enough variety in your battle night match ups, there is incentive to recruit for the general community, other army, to have more different teams to play against on battle night. (Recruitment)
4. The only blowout match ups will be matches that the losing team choose to be challenged with. Any team has the right to refuse a matchup with a team that is much better than them, and unless the better team rejects a lower ranked teams matchup request all teams still have the opportunity to take on significant challenges if they so choose. (Balance)
5. Wait times on battle nights are proportional to a squads flexibility. For the most part, a squad will always have a matchup if they are willing to play more teams; however, if a team is willing to sit out for 2 rounds, and not play another team during that time, they will have a good matchup when they play their next match. (Controlled Wait Times)
Other Effects:
1. There may be teams who only want to play one other team; they will just have more waiting time that more flexible teams.
2. There may be teams who are super flexible and choose to "take one for the community" and enter matchups with teams that are significantly better than them. They will probably have very low wait times on battle nights, but they will play in bad matchups (by choice).
3. Squads with bad reputations or squads with uncooperative squad leaders may have longer wait times than they currently experience because match ups are based on compromising.
FC Media Links