I propose the following:
As you play, you collect points
After a certain number of points, your side earns an unlock (for the commander to assign to a squad as she sees fit)
These unlocks that you've earnt are recorded
You have a "rank" based upon how many unlocks you've earnt for your team - but these unlocks don't necessarily carry over into every game (since you earn the unlock for the TEAM rather than yourself)
At the start of each round, both sides are given a certain number of unlocks to assign before (or shortly following, depending on the haste of the commander) the game starts. This number is based upon BUT NOT EQUAL TO the number of unlocks earnt by the players on the team over their careers.
A sensible way of deciding the teams' starting unlocks would be to:
Code:
Add up the number of unlocks earnt by each player on each team
Assign that team some function of that number # something like ln or log base 1.5, then round to the nearest integer
If one team has significantly more than the other:* #say, one team is greater than 1.5 times the other in unlocks
* * half the difference
Using a logarithmic function makes the first few make a real difference, but as people keep playing they have to do much more to earn a permanent unlock for the side they join. (ie. they'd have to earn 3-4 temporary ones for every 1 the had to earn before in order to give every team they ever join an extra unlock at the start of the round).
That would make some players more valuable than others to the teams - it would be worth playing as a clan or similar ability, and it would make any ranks actually mean something (but not enough to really swing the game in one team's favour from the beginning)