Ensure that votes can only pass if the majority of players present on the server desire that a given vote passes

Continuing the discussion from An Overview of Improving Tremulous' voting system:

To ensure that votes can only pass if the majority of players present on the server desire that a given vote passes, test7341 makes use of counting “abstained” votes as no votes.

  • Currently, in order to be considered an abstained voter, you have to not vote and be either on the alien team or on the human team (if you are on the spectator team and don’t vote, you will not be counted as an abstained vote, however Spectators can still vote yes or no directly). The requirement that abstained voters can’t be on spectators, greatly reduces the chances of counting a player that is afk as abstained (as a player that is afk couldn’t vote even if that player wanted to). To virtually eliminate any further possibility of an abstained voting being afk, GrangerHub development plans to make use of inactivity code for the consideration of abstained votes.

  • This approach also eliminates the possibility of “ninja votes.”

  • The act of casting a vote can be distracting to a player if that player is in the middle of a situation in-game that requires a lot of focus. However, since with most types of voting, a form of intervention of the game results, if you want that intervention to occur, you would not be as concerned about the interruption of your focus to vote, where as if you would prefer such a vote to not pass, you can simply choose not to vote and keep your focus on the game.

I have had issues on test7341 before, where a player joined, wanted to play (although I did not), sat around for a while and then went afk, but did not disconnect, instead remaining on a team and blocking my attempts to go to a new map.

– rlb

umm how about if i’m playing and i didn’t cast a vote for something that was up for 30 seconds it means i didn’t want to cast a vote not that i wanted to cast a no vote.

1 Like

So once this enhancement is implemented, players who are inactive (don’t send movement input from their client) for more than X seconds (maybe 30 seconds) will not be counted as an abstained vote.

The passage of votes generally result in some kind of intervention. interventions are intrusive, and interventions by a popular decision should only occur if an actual majority of the players playing actively wants that intervention to occur. If a player doesn’t care if a particular intervention occurs or not, that players doesn’t want that intervention (even if though that player also doesn’t want that intervention to not occur) .

If a vote fails under these circumstances, then a different set of options should be considered for presentation to the players playing by a vote that an actually majority of the players actively prefer to pass.

um hello :wave: [waves hands around] :wave: i’m right here and i’m telling u if i didn’t vote it means i literally do not care. it does not mean i want it not to happen. it means i don’t care whether it happens. stop trying to read a player’s mind when i am telling u exactly what it means if i don’t vote lol

and that’s true for everyone who doesn’t vote b/c they can see the results of the poll and they can see how many votes it needs to pass and they can “intervene” and vote anytime they want if they change their mind.

if u don’t vote for the president does that mean u don’t want a president? so yeah. abstinence is a real thing.

and by ur own logic u literally just said if ppl abstain then they 1) don’t want it but also 2) don’t not want it, aka want it, so ur same logic just said should count abstained votes as F2 and F1. u know what would be easier? not counting them at all b/c they’re abstentions

“fighting ninja votes” is also not a reason. if u don’t like ninja votes then u need to tally team votes based on the size of the team when the vote was called. not this weird thing lol. but this would b a great system if u want to make sure no votes ever pass again lol

1 Like

With the current voting system on the test7341 server, for team votes, you would have to be on the same team as that teamvote and not vote in order to be counted as an abstained vote. The current resulting behavior is such that if the passing threshold for the given team vote is 51%, then at least 51% of that team needs to vote yes in order for that team vote to pass

There are differences between preferring to have something in particular happen, not preferring to have something in particular happen, and preferring to not have something in particular happen. In this case of voting, (provided you are not afk, notice the vote, and understand the vote), if you don’t vote, that means that you don’t prefer that vote to pass (different from wanting that vote to not pass).

As I have mentioned, the passage of most types of votes in trem results in an intervention, meaning that a passed vote changes something significant for everyone on the server and/or for specific players, that would not have changed if there was no vote (provided an admin doesn’t use admin powers to intervene in the same way) . A vote failing, for most types of votes, has the same outcome as if the vote did not occur at all. Intervention by a popular decision should only occur if if the majority of the players currently playing on the server actually want that particular intervention to occur, not if players don’t care about the decision of intervention.

Consider this example with a change map vote:

  1. At a hypothetical moment of time, MapX is being played on a server, and PlayerA doesn’t care if MapX is being played at that time.

  2. PlayerA also doesn’t care if MapY is being played on that server at that time.

  3. However, MapZ is one of the maps that PlayerA would very much enjoy playing at that same hypothetical moment of time if it was presented as an option.

  4. PlayerB then calls a vote to change the current map from MapX to MapY. If that vote passes, there would not be a subsequent vote in that match for changing to MapZ instead, which PlayerA would have preferred more than the outcome of the vote that PlayerB called.

This kind of scenario can also be applied in the same way to next map votes, but with the difference being that the outcome of the vote deviates from the rotation or from the PlayMap queue. This deviation should only occur for maps that the actual majority of the players playing on the server at that time would want to play.

If a map vote fails, and you are calling said map vote for the primary purpose to either change the current map, or to deviate from the next map, then you should carefully consider a different map to call in a second or third vote that the majority of the players currently playing on the server would prefer to play.

In the case of votes that affect targeted players, such as kick and mute votes, the majority of the server should actually want that targeted player kicked/muted in order for that player’s game experience to be intervened in such an intrusive way. Very often with the old voting system, players have been muted and/or kicked by a minority of other players simply because the muted/kicked player isn’t liked by that small group, and the rest of the server doesn’t care enough about the outcome to vote.

Votes under this new system do pass regularly on the test7341 server, just not as often as on older systems. But when votes do pass with this voting system, the outcomes are more preferable in general by an actual majority of the players on the server than many votes that would pass on the older voting systems.

oh my god the mansplaining is real. If. People. Didn’t. Want. The. Vote. To. Pass. they. would. F2. IT. if 4 ppl vote yes, 1 person votes no, and 30 ppl don’t vote, it means 2 ppl wanted it, 1 person didn’t, and 30 ppl didn’t care. it doesn’t mean 31 ppl didn’t want it. more ppl wanted it than not. that’s why it passed. if those ppl were so upset about their game getting “intervened” ThEy WoUlD hAvE pReSsEd F2 aNd VetOeD tHe VoTe idk how i can make this more clear to u

(if anything, some of those 30 people probably DID want it but saw it was overwhelmingly passing so didn’t bother casting a vote.)

u can’t fix what isn’t broken. so stop trying to break things just to create the opportunity to fix them.

i rly don’t know what this is supposed to be. so i’m playing a game on atcs but i’d really like to play on treecannon. someone calls a vote for tremor and it passes. and i didn’t F2 because i don’t care whether we play on atcs or tremor. so why would i have a problem w/playing on tremor? if i want to play treecannon i could call my own vote for it. so i don’t see wtf the point is supposed to be sry ^^

why? stop stating this and justify it. u think the map rotation, which was made by 1 person, overrides what ppl actually voting and playing on the server want? lol

and did u never think that in the case of maps ppl would be in specs instead of playing specifically because they don’t like the map that’s being played… lol. i can’t believe where we’re at right now that i am talking to someone who thinks they are going to revolutionize voting.

ya tell me more about that lol. it should tell u something that i of all ppl think this is a bad idea when i’m the regularly subjected to sexist attacks. if u think there is a problem with ppl getting kicked and muted then make those require a 2/3 majority on the server. it doesn’t matter if u require 51% of the voters or 51% of the server to be bullies, the answer to ppl getting unfairly muted and booted is simply having admins around that know wtf they’re doing b/c it takes 3 seconds to make a bind for cancelvote and takes less than a second to press it when u c a bad vote so yeah.

however. there are also cases where ppl don’t participate in a votekick b/c THEY DON’T FEEL COMFORTABLE DECIDING. if someone calls a vote to kick Vash for psawing ppl on medi and i didn’t see him do it then i am abstaining not b/c i think Vash should not be kicked but b/c i don’t feel informed. that doesn’t mean Vash didn’t do it. it just means I wasn’t looking. so if that passes 3-1 it doesn’t mean it was OHGOD AN INTERVENTION SAVE US FROM THE BASIC RULES OF VOTING lol

it doesn’t mean u need to require an act of congress to kick a player. it just means u should keep intelligent admins around who have a reaction time of less than 30 seconds to save players from abusive votes that aren’t fair.

i’m pretty sure if u required 100% unanimity for a vote to pass, u would see that when votes passed, they were “more preferable” than before. :laughing:

however, if a vote passes, then i think u can agree that it’s more preferable than it not passing. since more people voted F1 than F2.

i will grant :slight_smile: for the sake of argument :stuck_out_tongue: that ur new vote requirements are a good idea. jut so we can do an experiment. try taking a vote of all forum members or all players to see if they want these changes. i have a funny feeling that more than 50% of ppl will abstain/say no haha.

1 Like

I have changed the approach of this system a bit, abstained votes are no longer based on if you are on spectators or not.

Each client now has an inactivity timer that is triggered if certain input is not received within a certain amount of time. Currently the input that indicates activity is if you move up, down, forward, backwards, left, or right, or if you press the primary attack button. At some point I would like this detection to also consider changing your view angles from moving you mouse, although that requires more work to figure out how best to code. The voter inactivity timers are currently set at double the length of the maximum duration of a vote, but I’m wondering if it should be set equal to that duration, so that it would be known that you have been present at least for part of the time the vote was in progress.

Only clients that are detected as active and do not vote are treated as abstained. I have also made it clearer in the voting prompt and the console messages how the results are determined and focus on displaying the information relevant to a vote passing. In particular it is clearly indicated that the activity of players is a factor, it is shown how many players are active, the passing thresholds are clearly displayed, and it is clearly indicated that passing is determined by the percentage of yes votes out of the total active players.

There is now a server cvar that can turn this entire system on or off, that also adjusts the prompts and server messages to display appropriate for each of the two approaches.

Polls no longer factor in abstained votes, they now only count votes that have been casted for its results, and its results show the percentages of yes and no votes out of the total number of cast votes.

2 Likes