Author Topic: A couple more ideas  (Read 3429 times)

Undeference

  • Tremulous Developers
  • *
  • Posts: 1254
  • Turrets: +122/-45
A couple more ideas
« on: September 14, 2006, 06:01:22 am »
(Should this be in feedback?)

I was thinking about balance in Tremulous and realized that there are so many variables applying to balance, not just in the game but in the maps also. Here are some ideas I have for Tremulous (mostly on the map and server side) that might help with some things. Not all of the ideas are entirely mine, so don't accuse me of stealing.
The reason I'm not just going ahead and making an RFE or trying to hack it myself is that these are just ideas and probably imperfect.

I'd like to see input on these ideas.

g_teamRatio
Some maps are very clearly one-sided and if we follow the Tremulous story-line, that makes sense. However, this should not cause games with these maps to be unbalanced, which creates an interesting problem. My idea is a game cvar that can be set by the map (like g_gravity, for instance) or in the maprotation. This variable sets a balance of aliens to humans. Let's call this g_teamRatio. This variable is ignored if g_teamForceBalance is 0.
The variable defaults to a value of 0.5, which is approximately balanced. If it is 1.0, it would mean that there can only be aliens, and if it were 0, there could be only humans. Likewise, 0.667 would be apprixmately 2/3 aliens and 0.333 would be approximately 1/3 aliens. This could allow for some interesting maps, but playing with it could also cause major inbalance, so it would have to be used sparingly and after painstaking testing by the map makers (if they want to make unbalanced maps). Alternatively, if a map is found to be slightly inbalanced, someone could figure out an appropriate value to make it work right. This makes the assumption that all players are equal in skill, which must be assumed to truly find balance.

I came up with a fairly simple way to determine how many players should be on each team based on this. In many cases it would work, although it is not foolproof as I mention later.
Code: [Select]
x = num_players * g_teamRatio
humans = trunc (num_players - x)
aliens = num_players - humans

This way, if g_teamRatio is 0.3 and there are two players, there is one player on each team. (However, if num_players is 3 and g_teamRatio is 0.5, it requires there to be 2 aliens and 1 human.)

This could potentially be used for campaign-like 1-team missions. (There could be an s3, 2k bp alien base the stage 1 humans have to eliminate, for instance. Until there are bots, though, I don't forsee the same going for aliens.)

This should modify the kills to next stage stuff so that each team needs the same number of kills if they are exactly balanced according to g_teamRatio.


No-join wait time
On some servers I have seen a required wait time before joining a team. I don't think this is currently available in the vanilla tremded, though I could be wrong. It should be a settable cvar.
This is useful to give each player an opportunity to choose his or her team and not to have to get whatever is left over when the map and textures finally finish loading (for those people with longer load times).

(A flag of 5 or the use of !putteam would circumvent this.)


sv_maxAliens and sv_maxHumans
This is a rather silly idea but it might help discourage massive player servers. I can think of a few other times it would be useful, but normally, each of these would be equal to half of sv_maxclients. It might also make sense for maps to be able to set these (for instance, "this map is meant for a maximum of 12 alien players and a maximum of 16 human players").

These would change how g_teamForceBalance and g_teamRatio function, but no more than "!lock"ing one team. The idea is that a server can set a maximum number of alien and human players. In practice, I think this would really only be used for servers that want to keep the game limited to 20 or so players, but don't care how many people watch. So they might set sv_maxclients to 64 or whatever and sv_maxAliens and sv_maxHumans to 12 each.

In most cases, however, sv_maxAliens and sv_maxHumans would be half of sv_maxclients. Indeed, if they aren't specified, they should default that way.
Need help? Ask intelligently. Please share solutions you find.

Thats what we need, helpful players, not more powerful admins.

Kobrakai

  • Posts: 107
  • Turrets: +0/-0
A couple more ideas
« Reply #1 on: September 14, 2006, 04:04:59 pm »
I'm not saying that your ideas are right or wrong, but this probably belongs in feedback, not general discussion. The issue, or argument rather, of balance in trem is all in feedback. Suggestions to improve the game is what feedback was made for, so if you have a suggestions and want people to comment on it (or rip you apart), post there please.
url=http://sga.jconserv.net][/url]

Undeference

  • Tremulous Developers
  • *
  • Posts: 1254
  • Turrets: +122/-45
A couple more ideas
« Reply #2 on: September 15, 2006, 08:23:41 am »
Unfortunately I can't move threads =\
Need help? Ask intelligently. Please share solutions you find.

Thats what we need, helpful players, not more powerful admins.

Taiyo.uk

  • Posts: 2309
  • Turrets: +222/-191
    • Haos Redro
Re: A couple more ideas
« Reply #3 on: September 15, 2006, 02:34:32 pm »
Quote from: "Undeference"
(Should this be in feedback?)

Yes.

Quote from: "Undeference"

g_teamRatio
Some maps are very clearly one-sided and if we follow the Tremulous story-line, that makes sense. However, this should not cause games with these maps to be unbalanced, which creates an interesting problem. My idea is a game cvar that can be set by the map (like g_gravity, for instance) or in the maprotation. This variable sets a balance of aliens to humans. Let's call this g_teamRatio. This variable is ignored if g_teamForceBalance is 0.
The variable defaults to a value of 0.5, which is approximately balanced. If it is 1.0, it would mean that there can only be aliens, and if it were 0, there could be only humans. Likewise, 0.667 would be apprixmately 2/3 aliens and 0.333 would be approximately 1/3 aliens. This could allow for some interesting maps, but playing with it could also cause major inbalance, so it would have to be used sparingly and after painstaking testing by the map makers (if they want to make unbalanced maps). Alternatively, if a map is found to be slightly inbalanced, someone could figure out an appropriate value to make it work right. This makes the assumption that all players are equal in skill, which must be assumed to truly find balance.

Hmm, Some maps favour humans while others favour aliens. This can make the overall game balanced, and I quite like the differences in map bias as it requires different skill levels for each map. Perhaps apparent balance can be improved by setting the maprotation to alternate between alien friendly and human friendly maps?

Just my £0.02

 :acidtube:  :acidtube:  :acidtube:
 :acidtube:  :telenode:  :acidtube:
 :acidtube:  :acidtube:  :acidtube:

Rippy

  • Posts: 385
  • Turrets: +0/-0
A couple more ideas
« Reply #4 on: September 15, 2006, 10:18:03 pm »
I disagree with teamratio. Maps should should be built around the 1:1 ratio, not the other way round. Too lazy to elaborate.

I agree with maxplayers though, but there'd be a better option. Something like sv_specslots, to set how many slots are reserved for spectators. When joining a game with only specslots left, it would notify you so that you can cancel, if you intended to play.
remulous username: [GEC]MassiveDamage

Paradox

  • Posts: 2612
  • Turrets: +253/-250
    • Paradox Designs
A couple more ideas
« Reply #5 on: September 15, 2006, 11:07:28 pm »
The wait time to join is part of R1Admin, and should be added to TJW's mod. Warmups are great when you have servers where by the time you connect, the base is already dead.

∧OMG ENTROPY∧