Scale Resource Tick Rate based off Team Players Ratio - Reduce Winning Team Bias

ZdrytchXZdrytchX Australia Join Date: 2016-02-06 Member: 212662Members
edited December 2016 in Ideas and Suggestions
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:
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

  • antouantou France Join Date: 2016-07-24 Member: 220615Members
    It's a nice idea, but I'm not sure it would work: the advantage you give to the small team is permanent: you give extra resources to that team, but when more players join they keep this advantage. IMO you need to give an advantage that is individual to each player (player movement speed, armor, ...), and can be taken back when the game is even.

    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.
  • ZdrytchXZdrytchX Australia Join Date: 2016-02-06 Member: 212662Members
    edited December 2016
    antou wrote: »
    the advantage you give to the small team is permanent
    Wrong... well not quite correct. Because let's say alien team had more players than marines, marines struggle to control the map but gain slightly less resources (rather than fk'all) than aliens, then poeple start joining marines. Marines no longer have the tick rate advantage, let's say marines now have more players. Guess who's got the tick rate advantage? Aliens. Who still has control of the map? Aliens.

    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.
    antou wrote: »
    IMO you need to give an advantage that is individual to each player (player movement speed, armor, ...)
    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.
    antou wrote: »
    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.
    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
  • antouantou France Join Date: 2016-07-24 Member: 220615Members
    On second thought, I agree with your point (provided the tickrate change is balanced carefully).

    As I said I didn't watch the video, apologies if I misunderstood your point about Tremulous (which I never played anyway).


Sign In or Register to comment.