Create an account


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Balance teams by skill?

#1
Hi,

I'm planning on running a server for a small (~dozen people) LAN party. The skill levels are all over the place, and I want it to be fun for everyone, so my question is: is there any way to balance teams by skill, rather than number? "Skill" could be something simple -- K/D, points, ranking, etc. taken from the previous game (or something like that). So, red might have 2 experts and 1 beginner, while blue might have 1 expert and 4 beginners. I wasn't planning on using bots.

I know there are some handicap mutators, but I'd rather balance the teams according to skill. Apologies if this has already been asked/answered, didn't see it.

Thanks!
Reply

#2
I've recently refactored teamplay code and also have unmerged stuff. Basically, it was horrible. Now at least bots are skipped during balance and F5 menu actually works. Something more complicated is yet to be added.
Reply

#3
(03-07-2018, 09:14 PM)bklopfer Wrote: Hi,

I'm planning on running a server for a small (~dozen people) LAN party. The skill levels are all over the place, and I want it to be fun for everyone, so my question is: is there any way to balance teams by skill, rather than number? "Skill" could be something simple -- K/D, points, ranking, etc. taken from the previous game (or something like that). So, red might have 2 experts and 1 beginner, while blue might have 1 expert and 4 beginners. I wasn't planning on using bots.

I know there are some handicap mutators, but I'd rather balance the teams according to skill. Apologies if this has already been asked/answered, didn't see it.

Thanks!

I do this manually as a server admin and host of an event. (After some free-for-alls and other matches, get a general idea of where everyone is at and their strengths and weaknesses).
The pickup IRC channel does a similar team balancing thing by using a pickup bot that designates team members, and XonStats Elo as a metric for skill. That is probably closest to what you're looking for.
Xonotic exists for a long time and low player count is the proof that nobody wants to play Xonotic since it is a bad game by default.
- Lyberta, 2017
Reply

#4
Doing this automatically is hard for two reasons:

a) Not everybody has ELO and ELO is not the most reliable judge of skill because it's shared between mods.

b) Even if we had a way to fairly judge skill of players, the algorithm to split them into teams is not trivial and requires arrays. Our language doesn't have real arrays. Best solution would probably be to forgo the optimal solution and just try a couple at random, picking the least bad.

You can show ELO in scoreboard using the cvar scoreboard_columns (see scoreboard_columns_help) and then make teams manually.
[Image: 30381.png]
Reply

#5
Quote:b) Even if we had a way to fairly judge skill of players, the algorithm to split them into teams is not trivial and requires arrays. Our language doesn't have real arrays. Best solution would probably be to forgo the optimal solution and just try a couple at random, picking the least bad.
Gotcha. Would some simple greedy algorithm be doable in the language? (QuakeC? I clearly haven't done any Xonotic hacking at all...) It won't optimally balance the teams, but it might be a decent first step -- so the 1st player joins random team, 2nd player joins other team, 3rd player joins (newly calculated) weakest team, 4th player joins (newly calculated) weakest team, etc.

I was imagining something much simpler than ELO scores anyway, as computers may be used by multiple people -- I was thinking something like ranking people as sqrt(1/[rank from previous game]). Just anything really to make the teams slightly more balanced than random team assignment =)
Reply

#6
It's always great if you can solve problems with code, but if you are around 12 people that gather together on a LAN, would it not be much easier to just talk to each other and sort out balanced teams by your own wits after a couple of testing matches? Or is that some sort of crazy idea that I have there?
[Image: 249.png] Latest track on soundcloud: Farewell - to a better Place (piano improvisation)
New to Xonotic? Check out my Newbie Corner!
<ZeRoQL> i think i got 1 proper quad and that cunt halogen fuck me over with a laser
Reply

#7
(03-08-2018, 06:03 PM)Halogene Wrote: It's always great if you can solve problems with code, but if you are around 12 people that gather together on a LAN, would it not be much easier to just talk to each other and sort out balanced teams by your own wits after a couple of testing matches? Or is that some sort of crazy idea that I have there?

Yeah you're certainly right. I was mostly just curious if this was doable, and if so, where to look. I might poke around server/teamplay.qc, or...you know...just tell people to join the appropriate team Wink
Reply

#8
(03-08-2018, 07:47 PM)bklopfer Wrote: Yeah you're certainly right. I was mostly just curious if this was doable, and if so, where to look. I might poke around server/teamplay.qc, or...you know...just tell people to join the appropriate team Wink

See this.
Reply



Possibly Related Threads...
Thread Author Replies Views Last Post
  For domination, is there a way to get the number of teams the current map supports? Notavi 0 212 08-11-2018, 04:00 AM
Last Post: Notavi
  I need bot commands for lobsiding teams DazeyDream 1 742 05-09-2018, 06:32 PM
Last Post: Zilor
  Bot Skill Level -maniac|Su- 2 6,320 03-15-2012, 02:26 PM
Last Post: -maniac|Su-

Forum Jump:


Users browsing this thread:
1 Guest(s)

Forum software by © MyBB original theme © iAndrew 2016, remixed by -z-