Jump to content

Team Scramble. The [Smart] Way


Sky

Recommended Posts

So, we can all admit that totally random scrambles suck, but scrambles based on PPM aren't really better, since you just have to play a lot to be a high ranked player, and PPM isn't really an accurate way to determine where a player should be ranked. It really sucks when a scramble occurs and it makes things worse than they already were. I've created a solution. In the photo below, you'll notice a rankings for several different categories. On each line, the first number in paranthesis is the average of that statistics value. That's total value / rounds played on the pertaining team. Then you'll see a second number in paranthesis, and that's your average rank for that category. When I say average, I mean your average rank for the entire server, everyone who has ever played there. Take the rank at the bottom, for instance; 2 out of 6, and there were only 3 of us currently connected for the testing.

When I say the smart way of scrambling... What I'm talking about is it grabs everyones server rank and then scrambles the teams based on them. It'll randomly grab the best ranked player it can find and drop them into team A, and then the worst player it can find to team A, then the next best to team B, then the next worst to team B, and so on. However, like any system, there's a downside. This one being that it takes some time to properly accrue enough data for the rankings to reflect the actual player, but it's still more accurate than the scrambles that currently exist. This is just my two twizzlers on the subject, because I've seen how scrambles are still an issue.

 

teammanager_rankings.jpg

Link to comment
Share on other sites

All of those statistics above, as well as their averages, for a total of 14 different statistics are considered, and weighed evenly.

No, buy menu use and send point use can't be considered, but I think even if it could, doing so may be a bad idea, since the goal is to calculate effective skill, and those two options would be too easy to cheat into the system; You could spam !sp ctrlfrk 1, or spam the !buy command.

Link to comment
Share on other sites

You can counter that by making it the total sent and the total spent. So !sp <user> 1 would give you only 1/15th of what sending a full heal would. Same for buying, only count the amount they actually spend.

 

Maybe you could give a bonus to people who buy a 2 point mp5 right at the start of dead center instead of using the pistol the whole time too >_>

Link to comment
Share on other sites

Still, the idea behind an effective scramble is to scramble based on effective skill. It wouldn't be an effective use to scramble based on who does or doesn't use the menu, when it's generally expected of players to be using the menu. The players who don't use the menu are going to die off a lot faster than the players who do, so their statistics are going to reflect that.

Link to comment
Share on other sites

Using the menu is part of effective skill though. Ideally you'd also give a bonus to people who have obviously macroed their common buys.

If you really want to get a pure view of skill, then you shouldn't be looking at any of those stats other than percentage of rounds won.

 

Most competitive games these days are using the Elo rating system, it might be interesting to try that.

Link to comment
Share on other sites

GC Coalition Member

you shouldn't be looking at any of those stats other than percentage of rounds won.

 

 

 

In general that's ok, but I take my exemple. I go for the weaker team, and I cant always make the difference. I lose a lot.

Link to comment
Share on other sites

I haven't seen a mid match scramble in a while. But IMO the biggest problem with the initial scramble at the start of each campaign is that it happens too early to be effective. Scramble, 4 people leave, 2 go AFK and get on the opposite teams when they join back. Scramble was pointless.

 

Buster is right. The scramble tends to happen too soon, before hardly anyone has loaded in.

Link to comment
Share on other sites

When I wrote Team Manager, I wrote another plugin called Ready Up that the plugins I write require, because Ready Up provides some global forwards that this game really needs on modded servers:

 

RoundIsOver()

ReadyUpStart()

ReadyUpEnd()

CheckpointDoorOpened()

FirstClientLoaded()

AllClientsLoaded()

 

Essentially, team manager will scramble the teams on the first map of each campaign. However, it will only do so once all clients have loaded, and on the first map of campaigns, ready up freezes all players (because there's no safe room door preventing players from just rolling out before other players have loaded) but on every map with a safe room door, the door is simply locked, so players can move about the safe room. A counter shows on screen, and everyone knows how many players are still loading, the time left to allow them to load, and if they all load in while that counter is ticking, a new timer will display how long until the ready up period ends.

Essentially, team manager will never scramble prior to all players loading unless you set the wait time on loading clients extremely low, or someone loads in so slow that they don't make it to the load time. You could set the load time to require all clients to have loaded, but that might upset people, when someone takes 5 minutes to load in, and you're all stuck waiting on them.

Team manager defaults to scrambling on maps other than the first map if the winning team score is greater than the losing team score by a certain amount. At default, it's 400, and smart scramble is enabled by default, but you can always disable it. It can only happen when all clients have loaded and before ready up ends, so you won't be scrambled during a round, or on the second half of a map.

 

The hardest part about developing a scramble system is that Left 4 Dead doesn't play like standard games. Unlike other versus games, players have to deal with non-human opposition as well as the team they are competing against. This is why I chose to use the variables that I am using. And since one player could effectively play all the time and get the values sky high, and no one would ever be able to pass them, statistical averages are calculated. When you play as a survivor or infected, a round counter is added to your data score, to determine averages. I understand why someone might want to see buy menu usage calculated in, but there are too many ways to break that kind of statistical coverage, so it would only hurt to collect that data. I have found these categories of data to be extremely effective. ProdigySim was actually present for testing one day where the teams were at a perfect standstill, that we even tied scores 3 maps in a row. I'm not saying that would happen every single time but it's amazing that once enough data is collected, that statistical analysis can perform match-making of that quality.

 

There are some other features team manager provides, though:

An AFK system: One that people definitely can't cheat by popping back onto a team to reset the counter. If a player is AFK a set amount of time, donators/admins get thrown to spectator, everyone else gets dropped from the server with a notification of why.

Reserve Slots: If your server is 10vs10 and you want 2 reserve slots, just set the totalslots to 22, reserve slots to 2, and automatedslots to 1. It'll do Each Team Slots = (TotalSlots - Reserve Slots) / 2. The way reserve slots work is if a client connects and has the reserve or admin tag (if you're using sourcebans, you're set much easier, otherwise it's flag a (reserve) or b (admin) or z (root)) will be checked against the server (if the server is full) to see if there are any non reserve non admin players. If they are, it will RANDOMLY grab one of those players and remove them from the server so you can enter. You can always set it to send them to spectator instead of removing them, though. Why would that work? Well, when a player goes spectator, it automatically adjusts the server slots to make sure that it doesn't affect how many players can be on a team. So, effectively, slottage works like this: Slots = TotalSlots + Spectators, but reserve slot count and teamslot count won't change. This means admins can spectate without taking a reserve slot. Members will always be able to get in the server, unless the server has 20 members connected.

Infected Rotation Fix: A problem that seems to occur on big game servers is getting a hunter, or a boomer, or what not, over and over. This just corrects that to make sure you always get a new class. It's not a big deal for you guys, since you have a plugin to change special infected; you would just disable this.

Campaign Rotation: This will also manage rotation to a random campaign each time a campaign is complete (but not the current campaign). This can be disabled if you use a different plugin to accomplish this task.

Ghost Fly: This lets you effectively press your reload key to fly in ghost mode. None of that unpredictable ghost jump, that everyone sees. Turn ghost fly on, and use your movement keys to travel wherever you want. Press again to disable.

Custom Configs: It has support to allow you to load up to 3 custom config files through a command. I use it to let people vote between coop, survival, and versus. This can be disabled, as well, though.

 

It also provides a !teams panel that shows statistics on all players. Next to the name of a player, you would see things like:

 

(a)(m) Jackiechan (This means jackie is an (a)dmin and is (m)obile)

(i) Tirtul.gc (This means Tirtul is incapacitated)

(d) Nightling.gc (This means Nightling is dead)

(g) Master Talpa (This means Talpa is in ghost mode)

® TheDude (This means TheDude is a donator)

Link to comment
Share on other sites

I agree that our ranking system doesn't represent player skill at all--no argument there.

 

I don't forsee Jackie loading your plugins up on the server, but they're all open-source, right? Might be worth taking a look.

Link to comment
Share on other sites

Survivor Rescues is the accrued total of reviving/saving/healing teammates. Left 4 Dead automatically considers healing/reviving/saving teammates as a rescue, and when that fires, it's added to the total.

Link to comment
Share on other sites

Survivor Rescues is the accrued total of reviving/saving/healing teammates. Left 4 Dead automatically considers healing/reviving/saving teammates as a rescue, and when that fires, it's added to the total.

 

god that's awesome.

 

Jackie? Where's Jackie?

Link to comment
Share on other sites

Haven't read everything but just wanted to point out that the current scramble only functions for the first 8 players then it dumps the next 6 onto infected and fills survivors last. It's based on a 4vs4 versus not a 10vs10 unless something has been changed in the last 3 months to circumvent this. You can see this late at night when the server is below 20 people the scramble will make the teams 4vs10, 6vs10, etc.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...