Scale Resource Tick Rate based off Team Players Ratio - Reduce Winning Team Bias
ZdrytchX
Australia Join Date: 2016-02-06 Member: 212662Members
The two current major issues with ns2 that from my opinon, is reducing the player retention rate is that:
1. Players join servers that are nearly full and don't like seeding small games, effectively getting the "full or empty" server problem. This means once the player population starts dropping, I see that it would be harder to get the playerbase back up. Examples:
- Japanese community had an active community with their own 'aaaah' sound modifications. Now, there isn't even a server they can play on and their community is almost non-existant.
- AusNS2 hasn't had a game in two weeks or so, despite having games almost every day a month ago, and two full servers half a year ago.
2. When one team starts to signify that they are winning, the losing team loses players and the winning team gets new players. A problem with NS2 is that it doesn't counter this problem in any way, in fact it actually favours the winning team.
This means teams have a tendancy to ruin the game's fun by simply conceding (tremulous has admit defeat which was more interesting than ns2 by simply destroying their base and giving them 5% damage per second but they hardly ever vote for it - literally like once a week on the most popular server) and the losing team will generally have players drop out.
Well I guess its a good thing because it allows other players to join the full servers but that's about it.
Tremulous didn't have these problems which is why it still has a decently sized playerbase 16 years after the first commit to its repository, most likely larger than NS2 combat and NS1 and the AusNS2 active community combined. Their solution was basically increase the kills requirement for a stage up by 4 per player on the team to stage up (with a minimum of 4 kills required so an empty team doesn't stage up instantaneously)
Tremulous was suitable whether it be 4v6 or 20vs30 albeit laggy, or even 8 vs 3, simply because they scaled their requirements well without giving the small team too much advantage (in fact, here's a 11 vs 1 player game as a celebratory day for the departure/last game of one particular controversial player that happened just a few days ago:
__________________
Anyway my proposed solution is that it will partially solve the second problem. While modifying my TremNS2 mod, I came across a solution for even just regular NS2 balancing and I propose this solution/amendment to the official ResourceTower_Server.lua file:
As you can tell all it does is scales the smaller team's tick rate so they gain resouces per resource tower slightly quicker. If there's a major difference of a 2:1 player ratio, then the team with the larger number of players will gain one resouce tick every 8 seconds while the smaller team will gain one resouce tick every 4 seconds instead of the usual 6 seconds.
1. Players join servers that are nearly full and don't like seeding small games, effectively getting the "full or empty" server problem. This means once the player population starts dropping, I see that it would be harder to get the playerbase back up. Examples:
- Japanese community had an active community with their own 'aaaah' sound modifications. Now, there isn't even a server they can play on and their community is almost non-existant.
- AusNS2 hasn't had a game in two weeks or so, despite having games almost every day a month ago, and two full servers half a year ago.
2. When one team starts to signify that they are winning, the losing team loses players and the winning team gets new players. A problem with NS2 is that it doesn't counter this problem in any way, in fact it actually favours the winning team.
This means teams have a tendancy to ruin the game's fun by simply conceding (tremulous has admit defeat which was more interesting than ns2 by simply destroying their base and giving them 5% damage per second but they hardly ever vote for it - literally like once a week on the most popular server) and the losing team will generally have players drop out.
Well I guess its a good thing because it allows other players to join the full servers but that's about it.
Tremulous didn't have these problems which is why it still has a decently sized playerbase 16 years after the first commit to its repository, most likely larger than NS2 combat and NS1 and the AusNS2 active community combined. Their solution was basically increase the kills requirement for a stage up by 4 per player on the team to stage up (with a minimum of 4 kills required so an empty team doesn't stage up instantaneously)
Tremulous was suitable whether it be 4v6 or 20vs30 albeit laggy, or even 8 vs 3, simply because they scaled their requirements well without giving the small team too much advantage (in fact, here's a 11 vs 1 player game as a celebratory day for the departure/last game of one particular controversial player that happened just a few days ago:
__________________
Anyway my proposed solution is that it will partially solve the second problem. While modifying my TremNS2 mod, I came across a solution for even just regular NS2 balancing and I propose this solution/amendment to the official ResourceTower_Server.lua file:
local lcommanderactiveworth = 1 --This variable is how many players worth is a commander. If its set to '1' then --there is correct scaling. --This means that the team with a commander will get a slight resource penalty --when compared to a team without a commander if the value is > 1 --Recommended to be at least '1' else the team with a commander will get a bonus --because the commander isn't counted as a player function ResourceTower:OnUpdate(deltaTime) ScriptActor.OnUpdate(self, deltaTime) if self:GetIsCollecting() then if not self.timeLastCollected then self.timeLastCollected = Shared.GetTime() end --Scale based on team player ratios local lourteam = self:GetTeam() local lenemyteam = GetGamerules():GetTeam1() local lourcommander = 0 if lourteam:GetCommander() then lourcommander = lcommanderactiveworth end local lenemycommander = 0 if lenemyteam:GetCommander() then lenemycommander = lcommanderactiveworth end --If we are humans enemy team must be aliens or else we are alien if lourteam == lenemyteam then lenemyteam = GetGamerules():GetTeam2() end local lteamratio = math.sqrt((lourteam:GetNumPlayers() + lourcommander) / (lenemyteam:GetNumPlayers() + lenemycommander)) local ResourceInterval = kResourceTowerResourceInterval * lteamratio if self.timeLastCollected + ResourceInterval < Shared.GetTime() then self:CollectResources() self.timeLastCollected = Shared.GetTime() end else self.timeLastCollected = nil end end
As you can tell all it does is scales the smaller team's tick rate so they gain resouces per resource tower slightly quicker. If there's a major difference of a 2:1 player ratio, then the team with the larger number of players will gain one resouce tick every 8 seconds while the smaller team will gain one resouce tick every 4 seconds instead of the usual 6 seconds.
Comments
The example you give from Tremulous has fixed 11v1 players (if I understand correctly; didn't watch the video yet), so there's no need to scale back to even teams.
You could say the end result in this situation doesn't guarantee marines a win because they started with lesser players but they would've certainly held out a bit longer. A noob who joins the smaller team wouldn't necessarily make them have a higher chance of winning because he's just 'an extra player that doesn't contribute much' which effectively could make the losing team lose faster, making 1.5 hour games last let's say, only 45 minutes while the losing team still doesn't feel 'horrible' about the fact they aren't controlling the map, reducing the tendancy to concede. Basically, they will have a higher chance of losing happily.
While i do agree ns2 in general, you move around slow as heck as marines (just under 4m/s while carring a LMG?!? dafaq?!?) it shouldnt be effected by something as silly as the ratio of players.
Also speaking of individual resources, I think they removed personal resource income because they wanted the game to be more team effort based which is why the game is so hard to carry a bad team in this game, and condeding is pretty much it. At least my resource ammendment above would at least give them a chance.
The hell you on about. It wasn't even fixed 11 vs 1. I joined mid game to the alien team (which already had more players than the human team). If the stage up didn't scale with the number of players on the alien team, the alien team would've gotten at least one tyrant by the end of the game, and one tyrant + dretch storm (or in ns2 talk, one onos and a lot of skulks) vs one armoured and weapon equipped human would mean that the human wouldn't have much chance.
The reasons why humans *cough cough* I mean a single human held out so long in the game (~9 minutes) was because the resource system in tremulous worked like this:
Build points: fixed 100 (dependant on map/server setting). This does not vary per-game without a server-side modification. This means you build your base, and that's it. If you want to expand, you need to deconstruct something and build a forward repeater (power structure) or egg (since eggs provide a creep, or infestation equivalent) and build there.
Stage 2: Equipement and alien classes are unlocked along with more variety of structures that can be built. Requires 4 kills per player on the team.
Stage 3: Same as above but requires 8 kills per player on the team
This means that the alien team, with 11 players, required 44 kills to stage up to stage 2 to get access to things like poison, electrical and gas attacks and such, while the sole human quickly accessed his helmet, battlesuit, advanced weaponry and stuff early game.
____________
Now if you ask in context of the video: 'what if spectators or frustrated aliens just join the human team then?'
Well the answer is: They shouldn't have been able to all join the alien team in the first place. The only reason why this game of 11 vs 1 occurred was because admins permitted locking humans (preventing people joining the human team, generally the command is used in scrims to prevent random people joining the game) while in normal games, game balancing would prevent this.
A larger team will also (as demonstrated above) generally have more 'feeders' (which can't exist in ns2 without the kill-for-resource system) which basically ensure the smaller team with higher amount of funds to counter the larger team's number of players.
___________
In short, this does:
To a smaller team:
More resources for their effort to counter the larger team.
To the larger team:
Less resources to make map control harder becuase they already have the number advantage
Note: 'for their effort'
Means: They still need to make an effort to take back the map. A team with half the players of the enemy team, receives one tick every 4 seconds while the larger team every 8 seconds. However if they are stuck on just two resource towers while the larger team controls the map, the larger team will still gain more resouces because 2/4 is still smaller than 5/8
As I said I didn't watch the video, apologies if I misunderstood your point about Tremulous (which I never played anyway).