# Fair combat system for new players on RTS game

I'm working on an idea/concept for a multiplayer game that I want to develop after my functional analysis but I'm still thinking of a way to implement a proper, fair combat system between new and existing players.

A player can create a new village/town once, anywhere on a map (this is key!). There is an attacking period where players can attack each other but I want to limit the possibility that more progressed players can attack beginners and prevent them from growing. Tribal Wars for example does this by creating new villages further away from the more progressed players. In my case, a user can create his town anywhere on the map, so I'm looking for a fair solution for all players.

A few examples of combat systems used in other games that I thought off:

1. RuneScape

Any player within a particular level range of your combat level can be attacked in the Wilderness. The range is calculated by taking your current combat level and adding or subtracting the current Wilderness level you are in.

1. Tribal Wars

Every new player is assigned a new village at the border from the previous players. So older, longer players are in the center while new players are further away from them, repeatedly. Combat system is based on the distance between 2 villages, so if older players want to attack a new player, it would take significantly more time to attack those players for less rewards.

• Tribal Wars also has a "morale" system implemented on some of their servers, which basically lowers attacking player's strength if he has considerably more points than the defender. That may work as a solution. – altskop Jun 11 '18 at 20:05
• As a side note on what @altskop mentions: such "morale" or "honour" systems usually have complicated side-effects though. It can work if you really think it through, but if it's added as an afterthought it could just as well cripple your game. – Mast Jun 12 '18 at 12:56

At this point, there were good examples of preventing lowling bashing, so I want to suggest a different approach: encourage the protection of lowbies.

The only High level player's dangers are basically other high level players. It is unlikely, that many lower levels gather togehter to attack someone higher.

So, to stay ahead of the enemys, his economy needs to support a basically evergrowing army, while he needs to grow his economics to support this growth.

That's why many high level players tend to raid (or "farm") low level players, because the army is there, while abusing the economy of lower players.

Instead of "farming", what if you give the option for defensive pacts? New players seek for protection from higher level players, which in return give a small amount of their production or maybe just something created from thin air (resources and/or something like vassal points). This would increase the economics of the higher level, while not wasting military potential on farming.

This is less about the combat system. It would only need to allow support for other players.

Additionally, when someone tries to attack the vassals, the player may strike against the others base, while his army is out of base farming.

At some point, the vassal might try to become independent (maybe to have vassals on their own), but the newer players may decide that on their own. This could lead to interesting dynamics in the game.

• I like the creativity here; and even more the fact that this adds considerable diplomatic, tactical and strategic depth with relatively small development cost. I would suggest having a point of diminishing returns however, to prevent a fiefdom becoming too large – Kal_Torak Jun 11 '18 at 18:54
• The dimishing returns are arguable. The more people under your protection, the more management you have to do to protect them. Still you would need a reason for the vassals to leave the fiefdom. This way if someone wants to leave under your protection, you may have potentional enemys close to you. If people are pissed with your lack of protection, they may search for another protector and so on. – PSquall Jun 11 '18 at 22:49
• There are similar alliance mechanics in Travian right now, and over the years an unfortunate side effect is that alliances are so necessary to survive that even alliances join together forming mega alliances. This has stifled a large amount of PvP due to nearby players being allies, or members forbidden from starting unauthorized wars. – Kal_Torak Jun 12 '18 at 14:23
• You essentially have the similar problem of Monopolies in the business world if a fiefdom becomes too large. – Kal_Torak Jun 12 '18 at 14:26
• Encouraging an extensive diplomacy metagame can be very appealing to some players. It does, hoewever, drive away those players who prefer to play on their own or in smaller teams. Whether you want to embrace or avoid diplomacy depends on what kind of players you want to appeal to. – Philipp Jun 12 '18 at 15:16

Base building and drop-in multiplayer are two features which don't go very well together.

One option is to allow new players to progress very quickly. Give them the tools and resources to defend themselves after a very short playtime. Further progression is either horizontal (more variety, but all newly unlocked options are tradeoffs which are different but not strictly better than the starting options) or focuses mostly on offensive capabilities.

Another is to discourage players from picking on newbies using your risk and reward mechanics. Limit the number of attacks a player can perform in a given timeframe and give them very little to no reward for attacking lowbies. Make sure that in order to maximize their rewards they will need to spend the limited attacks they have on the strongest opponents around. Also don't forget about your risk mechanics. If the risk one takes when attacking a lowbie is a lot smaller than the risk when attacking an equal or superior enemy, then it might still make sense to attack lowbies. So make sure that the attacker's risk is not linearly proportional to the strength of the defender.

• You made some very good points - especially your second argument is something I didn't consider/think about. Something else I was considering was an attack freeze according to the time difference between the existing village was built/account was created and the new player – XverhelstX Jun 11 '18 at 12:23
• Little to no reward sounds a lot better than allowing new players to progress faster. But not only resources is a problem, in most browser games I've seen, you'll lose your army/defences when someone raids your base. A stronger player could just crush you, so one of his 'minions' could raid your base for the resources and share them with the stronger one. (since the minion is low level, he gets more) – PL457 Jun 12 '18 at 13:55

I'm still thinking of a way to implement a proper, fair combat system between new and existing players

Abstracting the answer a bit, there is a more general underlying question: how to make things engaging for both newcomers and experts? There are a few interesting case studies here:

## 1. Opt-in complexity

One method that I'm particularly fond of is opt-in complexity. As a simple example:

In the Civilization series (among other 4X games), cities can change their resource output based on assigning the population to work particular tiles. This can give the player incredibly detailed control, but it can also become very tedious to manage from the start (especially when you're a new player).

Civ implements an opt-in complexity. It provides an average default implementation that the player doesn't need to manage; but it also allows the player to override the default if he chooses to engage in this tedious chore. It even has tiers of complexity:

• Default - the city will automatically strive for a balanced resource output. It will reassign citizens based on changes to tile yields.
• Focus - The player can choose which resource(s) need(s) to be focused on. The citizens are still assigned automatically, ensuring that basic needs (e.g. food output) are minimally met before dedicating itself to the focused resource(s).
• Full control - The player assigns every population unit to a specific tile, and can prevent the game from rebalancing the assignments. The player can also choose to only force certain tiles to be worked, while leaving the rest of the assignments up to the automatic behavior (focused or default).

This creates an incredibly intuitive approach.

• A new player who doesn't even know about resource management won't be bothered by having to make decisions about it. They can instead focus on other parts of the game.
• A player that wants to increase a particular resource output can find the focus buttons with relative ease.
• A player that wants to micromanage their city needs to find the right menu option.

Complicated approaches are hidden for players unless they go looking for it. This achieves the best of both worlds: players who don't care about it aren't bothered, players who do care get to do it their way.

As a second example, consider EVE Online. In a vast map of solar systems, every system had a rating from 0 to 1 (in 0.1 increments).

• 1.0 is fully under Concord (the NPC police) control. Anyone who misbehaves would very quickly be killed by the automated NPC security forces.
• 0.6 space would still be under Concord protection, but their response would be slower (and less forces would be dispatched).
• 0.3 space was hardly regulated. While there was some security near space stations and ports, the rest of the system was mostly unprotected.
• 0.0 space (known as nullsec) was pirate waters. No Concord protection was provided. Players would be on their own. Safety would only be provided by player-built stations. It's essentially what we think of when we say "the Wild West".

The security rating was clearly visibly for every system. Players would be able to avoid going below a certain security level, if they felt uncomfortable doing so.

However, nullsec was vastly more profitable specifically because it was such a hard place to survive in. Resources that were only available in low-security regions would be much more expensive, and thus much more profitable to mine.

The main conclusion to take away here is when there is a pro vs con situation (increased control vs. increased tedium, or increased profit vs less protection), giving the player the freedom to choose their approach keeps everyone happy.

## 2. Opt-in symmetrical play

You can often see a symmetry in gemplay: if a player wants to attack others, he'll also have to defend from being attacked by others.

This can be done via opting in. A simple example here is World of Warcraft:

On non-PVP-enabled servers, there was still the option to engage in PVP combat. However, it required consent from both players (direct or indirect).
Very simply put, both players needed to set their "PVP flag" in order to be attackable by the other party.

• A1 wants to fight B1, B1 wants to fight A1. Both players raise their PVP flag. They can attack each other.
• Player A2 approaches, but is not interested in PVP fighting. He does not raise his PVP flag. He cannot be harmed by the PVP combat, even if B1 wanted to attack A2.
• Player B2 approaches. He wants to help B1. Because A1 has his PVP flag enabled, B2 can attack him immediately (A1 has already explicitly consented to PVP combat). However, when B2 lands an attack on A1, B2's PVP flag will be raised automatically. B2 indirectly consented to engage in PVP combat by attacking a player who had already consented.
• A2 decides to not attack anyone, but he does heal A1. Since this aids A1 in his PVP combat, that counts as consenting to PVP play, which means that A1's PVP flag is now also automatically raised.
• To prevent abuse, lowering a PVP flag is only possible after 5 minutes of not engaging in PVP combat. A player could mark himself for non-PVP earlier, but it wouldn't take effect until after the 5 minutes are up.

The main conclusion to take away here is that mutual consent prevents either opponent from feeling wronged.

## 3. Challenge upwards, not downwards.

I used to play on GameKnot (online chess) years ago. There is a massive gap between casual and grandmaster chess players. The system needed tiered leagues in order to ensure roughly equal chess skills.

This was done via an ELO rating. Very simply put, it's a number that goes up when you win, and down when you lose (the amount won/lost depends on your opponent's rating versus yours).

However, there was an interesting feature added for tournaments specifically:

• Suppose a tournament opened for registering, with a skill level set between 1300 and 1500.
• A player with 1400 skill could obviously join the tournament.
• A player with 2400 skill could obviously not join the tournament.
• A player with 400 skill would get a warning when trying to join the tournament, but would be allowed to join.

This creates an interesting option for players: trying to play in the big leagues. Jumping in the deep end is a good way to learn the ropes (for some people, at least), so they ensured that it was possible for players to do so.
However, the opposite (playing in the little leagues) was prevented, because a high ranked player could easily ruin the fun for lower ranked players.

The main conclusion to take away here is that the underdog needs to consent to playing a game where they are the underdog.

## 4. Equivalence matching

This is just a short comparison.

In World of Warcraft, PVP battlegrounds would be ranked in brackets, based on player level:

• 10-19
• 20-29
• 30-39
• 40-49
• ...

This was necessary (due to exponential power growth in levels), but not a perfect solution. It created a metagame: twinks. These were special characters that players would take to the max level of a bracket (19,29,39, ...) in order to have the statistical upperhand on other players. The twinks were then given statistically superior (and exceedingly rare) gear in order to maximize their upper hand.
At worst, twinks would play against other twinks and it'd be a fair game. At best, they'd play against lower ranked players who they could easily win from.

Because PVP games did not award XP, twinks (who only played PVP) would never level up and could remain at the top of their bracket.
They later addressed this by giving tiny XP boosts for playing PVP, to eventually cause twinks to move up to the next bracket. It was a massive improvement, but still not perfect.

Comparatively, Guild Wars 2 had a much more interesting solution that was not prone to this abuse. Instead of dividing their player base in bracket, what they did was boost every player to max level.

• Player gear stats were boosted to be with an equivalent balance to top level gear.
• Players would be able to pick talents/traits just like any "real" top level character.

Inside the PVP battleground, everyone had the same level. You couldn't see a difference between characters based on their level. The game was one of skill, both in character design (stats) and gameplay (combat).

Note that gear wasn't fully nullified. There was still better and worse PVP gear. But by boosting the stats, a lvl 20 player that was boosted to lvl 80 would be given the lvl 80 equivalent of his lvl 20 gear, which did a lot in terms of leveling the playing field.

The main conclusion to take away here is that leveling the playing field can remove non-skill-based differences, reducing the game to one of skill, not acquired gear.

There are many different ways to level the playing field, while also catering to both new and experienced players. Now let's try to implement these based on your particular game.

A player can create a new village/town once, anywhere on a map (this is key!). There is an attacking period where players can attack each other but I want to limit the possibility that more progressed players can attack beginners and prevent them from growing. Tribal Wars for example does this by creating new villages further away from the more progressed players. In my case, a user can create his town anywhere on the map, so I'm looking for a fair solution for all players.

1. Opt-in complexity

Players choose their own location on the map. If a player were able to see dangerous regions (i.e. with high level opponents), they would be able to choose whether they'd want to be close to these players.

This can be done via resources:

• Dangerous regions contain valuable resources, but also high level enemies. Usually, only high level players will go there. But low level players shouldn't be prohibited from going there, they should only be warned.
• Dangerous regions contain different resources from safe regions. These resources are only needed in the late game (high level players), not in the early game. There is no reason for low level players to settle there until they need the resources.

This can also be done via map design:

• Certain lands are under the King's protection. Any violence by any player will quickly be stomped by the foot of overpowered NPC security forces. High level players will avoid the region if they have nefarious intentions.

Or even by unrelated consequences:

• If your game implements a reputation feature, attacking low level players could ruin the player's reputation. Note that there needs to be a significant drawback to having a bad reputation. Players who already do not play the reputation game are then not punished from ruining their non-existent reputation.

1. Opt-in symmetrical play

A town can only be attacked once it builds a Barracks. Until then, it is a peaceful town that cannot be invaded or attacked.

This gives players the option to opt out of combat.

You can, if you want to, eventually force players out of peaceful play by making the barracks a requirement to progress further in the game. But the player must be aware that they are opening the door to PVP play.

1. Challenge upwards, not downwards.

Towns are given a military rating (similar to how e.g. Stellaris provides estimated fleet power). This is calculated based on the player's property and defenses.

Players are not able to attack towns with a significantly lower military rating.

Players are able to attack towns with a higher military rating.

This creates a curve of protection: the more powerful a player becomes; the less he is able to attack beginning players.

1. Equivalence matching

When a higher level player attacks a lower level player, that lower level player gets boosted to match the higher level player's level. When a lower level player attacks a higher level player, no one gets boosted.

In short: the defending player will always get boosted up (but not down) to the level of the attacking player.

Alternatively, you can deincentivize high level players from attacking low level players by removing the rewards. In most RPGs, a player no longer gets XP for killing enemies several levels lower than him, specifically to prevent players from attacking too easy opponents.
This does not protect against griefing however (attacking low level players for no benefit other than ruining the other player's game experience).

• You wanna be careful with #1. Even in Civilization I almost always micro-manage all of my cities no matter how many resources. When somebody wants to min/max and time is the only thing stopping them, they will find a way. One of the OP's examples was Tribal Wars, in that game you eventually got so many cities it was too much to manage efficiently, so players started sharing accounts and abusing the Holiday account sharing so that two people could manage the cities on different time-zones. Not saying it will be an issue, just stating it could be an issue. – Shelby115 Jun 12 '18 at 18:31
• @Shelby115 I think you misunderstand the purpose. It's not intended to force the player into generalizing their gameplay when they have many cities. It's intended to not bother newcomers (or players who don't care about a particular city) with decisions they either don't understand or can't be bothered to make. I agree that hindering players will generally breed an atmosphere of players circumventing the obstacles, but hindering the players is not the goal here. Regardless of #1, player account sharing could still be an issue, no? – Flater Jun 12 '18 at 19:21
• Whoops, I kind of took Civilization's ability to micro-manage (min/max) city yields to be your point. In which case I stand by my above statement, but I missed your comments in the second section about #1 rendering my comment off-topic. – Shelby115 Jun 12 '18 at 19:25

You can use something like Elo Rating System

So that players can attack each other based on their elo range.

To make things clear:

Suppose playerOne attacks playerTwo knowing that they are in the same elo range. Now suppose playerOne army consists of 100 soldiers (making things generic as possible cz I know there should be more conditions and more units) and playerTwo army consists of 80 soldiers.

PlayerOne army killed 60 soldiers and playerTwo army killed 40 soldiers.

So the new elo's of the players are calculated for example like this

playerOneElo = currentElo + (playerTwoKilledSoldiers * playerTwoElo * smoothingConstant) - (lostSoldiers * playerTwoElo * smoothingConstant)


And of course in real example each unit should have a factor added to elo calculation that reflects it's strength.

Going back to the question, new players can attack and be attacked by players with elo's less than 1000 for example.

• A variation could be a mix of ELO and the Runescape Wilderness. Saying the player must have [X units/building/etc] less/more than someone to attack them. – Anoplexian Jun 11 '18 at 16:19
• One could also try to use MS's TrueSkill instead of ELO. – MatthewRock Jun 11 '18 at 17:47
• @Anoplexian: One variant I've seen is using an ELO-like equation to estimate chance of victory, and then scaling loot. If you have a 50% chance of victory, you plunder 1000 gold, but if you have a 75% chance of victory, then you only plunder 500 gold. If you have a 90% chance of victory, you only plunder 100 gold. Suddenly, assaulting weaker players becomes an immense waste of time. – Mooing Duck Jun 11 '18 at 22:15
• @Anoplexian yes and this makes it more competitive and fair – isammour Jun 11 '18 at 23:39
• I have seen ELO systems being abused. Go on a 100 battle losing streak with the minimum resources invested that you can to drop your ELO so you fight very easy opponents then go on a winning streak fighting opponents you vastly outmatch until your ELO rises enough to make it unprofitable and then repeat. – MT0 Jun 11 '18 at 23:41

You could try to discourage players by introducing some kind of karma/morale system.

Player that attacks much weaker enemy would lose his karma. Karma would be gained every day/hour/X, or when fighting with players of similar level, or when spending in-game money, or when helping allies - basically whatever fits your theme.

Now karma could affect combat(troops with low karma are less effective), looting(troops with low karma hold less resources), production, prevent certain actions, increase karma gained by enemies when attacking player with low karma... The consequences depend on how you want your gameplay to look like.

You could also turn 180 degrees around and provide users with mentor system. Mentors would help players somehow(e.g. by sending them resources or troops or coordinating their attacks). This would in turn affect their production, fighting capabilities, etc.

I would probably prefer the mentoring idea; this could make your community less toxic (because game encourages positive interactions), or make your gameplay much more chaotic/deceptive (because you help others, but you have to make sure that they don't stab you in the back).

The last thing you could consider is providing a (very) cheap option to minimize the damage and enemy's gain (e.g. Tribal Wars' Hiding Place). Players attack others to obtain some profit. If attacking other player yields no profit, it means that the units are actually losing money(because they could be elsewhere, making profit). If player is able to quickly make themselves a bad target, they will be much safer.

• I would also like to mention that the system could be exploited by other players, so consider if the mechanics could be exploited by others. For example, if you allow attacks lowlvl -> highlvl, but disallow it the other way, one could create multiple low-level accounts near some highlvl enemy, effectively blocking his expansion, and attack him often with small amount of troops, making him lose some money and making detection of attacks harder(because of large amount of incoming attacks). – MatthewRock Jun 11 '18 at 17:44

You need to add a way for new weak players to harm bullys. How about some asymmetric warfare?

Our village was raided, they stole food and gold, and killed 5 of our peasants. Lets have some guerilla fun.

Send a random guy with some matches

They keep raiding us!

I think his Peasants need some help founding a labor union.

He kind of doesn't get the message.

Spread some rumors and have him excluded from raids and traiding guilds as a person of ill repute.

They keep comming!

Sabotage his army, maybe steel some trained mounts to downgrade a bunch of his units

He keeps throwing his army at us

We showed them some crying babies and they defected to us!

For this to be really satisfying you should add estimated damage to the status messages of the new player, something like "One of our guys burnt a depot in noobslayercity, destroying 1750 units of Food. We estimate that the repairs will take 6 days and cost around 24000 gold."

• What would prevent players of even level to do that? Your examples look like the workings of a spy organisation, that i wouldnt expect from a new nation. If you would bind those actions to devestating attacks of some sort, then it could work. – PSquall Sep 21 '18 at 0:13

So, this is mostly my perspective as a gamer, not a developer, but the best option I see is:

### Use a rating system of some sort, and match players based on that.

This is what is done by a vast majority of 'esport' games, such as most MOBA's and FPS's. This has a couple of significant advantages:

• It makes things reasonably easy for you as a developer. You define how the rating shifts based on battle results, define a starting value, and define a matchmaking threshold (IE, the maximal difference between the highest and lowest in match), and you're pretty much done.
• It is well tested, and easily understood. Gamers are used to this type of system, and people who aren't gamers have a very easy time understanding it.
• It scales well. With this approach, you can have a variable match size very easily, which simplifies matchmaking (you just set up an exponential backoff so that the longer someone is in queue for a match, the lower the minimum number of people for a match becomes).

It also has a handful of drawbacks:

• You have to have matchmaking queues, you can't do drop-in combat.
• It's non-trivial to get the starting point and scalings right. Ideally, you want people to start with a rating around the 20th to 30th percentile in terms of skill, so that people who are actually good rise easily, but those who aren't won't fall too far and can more easily recover. If you start people too high, everyone will lose a lot right off the bat and not like the game, if you start them too low, you run the risk of alienating lower skill players (keep in mind most of your player-base will be low skill) because they'll always get matched against new people and still lose.
• It doesn't work for reliably for team-based games. It's used a lot for them, but it really does not work reliably for team-based games. There are just too many variables to account for (to handle it equitably, you have to factor in the performance of everyone on both teams to figure out how to adjust each person's rating, otherwise you get people climbing because they are queuing with a friend who's insanely good, even if they're crap). This goes double if you let people queue as a group without factoring in their rating.

You can also combine this with other factors to disincentivize things like smurfing (creating extra accounts just to play with a lower rating) or general hazing. Options include:

• Use a level offset system. This is what Runescape and most other MMO's do. As they implement it, it only works for open-world type games. However, some games use a variant of this combined with rating for matchmaking. World of Tanks for example has a progression system where you unlock higher quality vehicles as you play, and you get matched based on what tier of vehicle you are using, and your rating.
• Taking another example from World of Tanks, penalize people for actively poor behavior. In WoT, if you shoot an ally, you're liable for their repair costs. If you kill an ally, you get marked for it, and people can kill you without having to pay your repair costs. Kill allies enough, and you get deprioritized in queue and end up with other jerks who do the same thing. Similarly, if you actively suicide on a regular basis (not just charging in, but things like drowning yourself all the time, or constantly flipping yourself over), you similarly end up in a lower priority queue and matched with similar people.
• Have everyone start each match with the same amount of resources, and don't give veterans any inherent bonus for being veterans. This may alienate some people, but it reduces the veterans' advantage to a simple matter of skill, which is much easier for other players to deal with.
• Give newer (lower ranked) players a handicap of some sort. This could be extra resources, a free turn, priority in placement of villages, or just about anything you can think of.
• "It doesn't work for reliably for team-based games." Case in point, TF2's casual matchmaking. – htmlcoderexe Jun 12 '18 at 11:30
• @htmlcoderexe League of Legends is pretty bad too. They use a minimally adapted version of the Elo system, but don't account for the fact that it's a team game, so it's really easy to climb in rating if you queue with a friend who's able to reliably carry games by themself. – Austin Hemmelgarn Jun 12 '18 at 11:43

I created a game which requires player 1 to be within a given range of levels to player 2 in order to fight.

Here are some constraints I put in:

I don't let players fight real players until they reach a certain level. This allows them to understand basic game play before being vulnerable in fights.

Players advance through the first levels really quickly, so stronger players cannot stay at the lower levels.

Level jumping slows down as play progresses.

The range of levels grows as the player's level grows. So for example, players at level 5 can only see players at level 4, 5 and 6. But players at level 100 can see players between 80 and 120. This helped increase the number of "fightable" players that were available when the game was new.

Pros:

Easy to implement

This actually worked remarkably well for my situation

Considerations:

Developing fight strength is built into the game play. Part of advancing in levels is performing tasks that advance the player's strength. For example, performing a task requires the player to buy a ship, which adds to their strength. So early on, all players are developing strength similarly.

In a new system with few players, there may be no one for players at certain levels to fight. Maybe this could be overcome by AI players or something.

In my situation, this accidentally worked out well. A certain percent of players get a few levels in and quit. There are always some of these non-playing players and they are available for low level players to fight. The players fighting the non-playing players don't know that those players aren't being played.

Related: In this game, when players aren't playing, other players can combat them. If players are offline a lot, they can actually move up in levels when someone fights them. So sometimes, weaker players can advance by not playing a lot.

A couple more notes based on the discussion.

The level range is actually skewed upwards. So lets say for example, a player at level 80 could choose to fight up to players at level 100 but can only fight down to say level 70 players.

Second, on the home page, it shows a list of which players fought you while you were out and the result of the fight. You can fight anyone on that list. So even if you couldn't normally see that opponent, you can always fight back.

Third, you can click on any opponent and see their status and what fight "boosts" they have. So you can get a rough guess of how a fight might turn out. This allows lower level players to access the risk of fighting a higher level player. The benefit of fighting a higher level player is they have better drops, more cash, etc.

But, the fight algorithm has a random element too, so a lower skilled player could beat a higher skilled player if chance was in their favor.

Long story short, this solution worked well for my situation.

• Problem with your example of level range is, that there is a certain group of players, who can*t attack their attackers. E.g. your level 100 can attack from lvl 80 to 120, lets assume +- 20% range. Now, for the lvl 80 players a +20% ranges means up to lvl 96. So either, you have to have a better distribution, or this is a big problem. – PSquall Jun 12 '18 at 12:03
• @PSquall: In most games where players are expected to crunch the numbers, percentages are additive, not multiplicative. In other words, If you get a 10% hit chance buff, a hit chance that would otherwise be 70% is now 80% (70+10), not 77% (70*1.1). This is a fairly common standard, intended to simplify the math without functionally detracting from the gameplay. – Flater Jun 12 '18 at 12:15
• @PSquall: For completeness; the rule of thumb is usually (1) take the base amount (2) tally up all flat (non-percentage) bonuses and add the result to the base amount (3) tally up all the percentage bonuses (add/subtract the percentage amounts) and then apply the resulting percentage to the result from (2). That is the final value. – Flater Jun 12 '18 at 12:26
• @Flater: That is not what im talking about. I ment a lvl range, that the player can target. So, a lvl 100 player can target enemeys 20 % below and above his own level, so 20% of lvl 100 are 20 levels, making his possible attack range from lvl 80 to lvl 120, while with the same calculation for a lvl 80 player that would kame his range from lvl 64 to 96. Nothing about multiplying or adding percentages to other percentages. – PSquall Jun 12 '18 at 14:30
• @PSquall: The same principle applies. Percentages are generally expected to be additive, which means are assumed to express a percentage of the whole (100%, e.g. the level cap), not a percentage of the current value (e.g. the lvl 80 in your example). If the game we're talking about has a lvl 200 cap, then 10% below lvl 80 = 80 - (200*10%) = 60 and 10% above lvl 80 = 80 + (200*10%) = 100. This also means that your suggested problem doesn't apply. 10% is always equal to 10% of max lvl (20 in this example), regardless of the player's current level. – Flater Jun 12 '18 at 15:00

Make it so that you can only attack and be attacked by other players within a level range. You could also create separate worlds (e.g. beginner world, intermediate, veteran, etc.) and allow (or make) the player move to the higher level world after a certain amount of time or achievement.

• The worlds would have similar problems within them. They would also increase complexity(both for players and programmers), as well as introduce some problems(player migrating to another world would have no previous friends, meaning that he has to start from 0 in competetive setting). – MatthewRock Jun 11 '18 at 17:29

There was a game released in 2001 called Battle Realms. My friends and I loved this game, and it had an interesting mechanic which limited early game rush balance issues. Quoting from the Wikipedia page entry:

Unlike other real-time strategy games though, the basic worker units (peasants), which are used for resource gathering and construction, also act as the base unit to be upgraded into military units. Thus, military buildings in Battle Realms are used for transforming and upgrading units rather than producing them directly.

Another unusual trait is unit generation, where peasants are produced automatically at no cost. The rate at which new peasants are produced is inversely proportionate to the current population of the player's army.

Because you're not necessarily combating the game time with regards to rush timings or perfect/optimal unit composition, you're actually fighting against your own time constraint, that being the ever decreasing rate of unit production. This promoted more frequent skirmishes as your tech tree allowed you to create stronger units, but getting those stronger units wouldn't be as easy if your old units weren't engaged in combat.

Make attacks expensive: scale the cost according to the size of your force.

Costs can be fuel/food , attrition due to environmental factors (eg: stepped in a rabbit hole and broke his leg / dissapeared into quicksand / friendly fire).

Also have your soldiers each pilfer or destroy some amount of the spoils.

During the raid (some amount) of the victims resources just go missing. the larger the force the more fields are trampled, sacks torn, barrels split and treasures purloined.

Send a force of 1000 against 100 defenders and you'll come out behind on resources.

• Actually, that might cause more problems than solve. For smaller enemies, you need less army, thus less attrition costs. For bigger enemies, you need bigger armies, thus more attrition cost. So in the end, if you balance it wrong, you might even encourage lowbie bashing. Why send 1000 against 100 when 200 is enough? – PSquall Sep 21 '18 at 0:07