Author Topic: Kicking  (Read 18437 times)

deque

  • Posts: 3
  • Turrets: +0/-0
Kicking
« Reply #30 on: April 10, 2006, 05:26:44 am »
Ok, after another night of having games ruined by morons, I thought of a mechanic that might help encourage good citizenship. This assumes that there is a way to identify a player with a reasonable level of surety, like the player ID's in ET.

Basically, have a karma system. People get positive points from their teammates, presumably for "playing nice" and proving through their behavior that they are decent human (or alien) beings. Once they get above a certain threshold, they can build and de-build at will, like they can now. Until that point, maybe they can't do it at all, or there is a rather onerous time limit or something. The threshold would have to be high enough that a single (or even a couple) people alone couldn't nerf it. And it would have to adjust depending on the size of the server. They could be assigned during the between-game scoreboard time and it would minimally interfere with gameplay. Place a "thumbs up" and "thumbs down" icon next to their name on the scoreboard. Clicks on them add and subtract karma points. You can't add more than you have (maybe getting more for kills or karma that gets assigned to you?) and you can't subtract more than you've given.

I dunno. This is likely complex and impractical. I haven't _really_ thought it out so it might be a total dead-end, but I thought I'd throw it out here. I think something more scalable than "admins need ot be watching all the time" needs to be done. This also allows teams to neuter greifers quickly without risking banning people who are just noobs and do dumb stuff, or people who get impersonated, etc, etc. One downside I immidiately see is that the "pick up the base and move it right away" strategy would be hindered, but if you get a lcuster of people who hang around for afew games, that would be mitigated. Another down side is that it adds another thing to think about, and would encourage people to "class", and only biuld or only fight, but I think if the numbers were blanced right, that would would be avoidable.

Oh! Another idea, everytime you deconstruct a building, you lose karma based on how expensive the building is to build, and get it back when you build something back. This would slow the griefers down a _lot_ and still allow for quick base moves.

Ok, one more idea, somewhat unrelated. There is obviously some sanity checking done to see if something can be built in a certain place. A check needs to be added so that a spawn can't be built in a place where people will spawn and immidiately fall into an abyss, like on the underside of that clear bridge in that one little "crossroads" level the name of which escapes me at the moment. That was really obnoxious.

Anyway, given the power that a single individual has to totally ruin a game (which I think is problem pretty darn close to unique in Tremulous) I think that putting effort into a system that allows fast and reliable self-regulation _without_ the need of an admin would be time well spent.

In any case, thanks again for putting together such a fun game for us all to play with.

"Never understimate the stupidity of people on the Internet."

Silverius

  • Posts: 167
  • Turrets: +0/-0
Kicking
« Reply #31 on: April 10, 2006, 09:02:23 am »
A few notes on karma:

Algorithms exist that are resistant to massive attacks, see here: http://advogato.org/trust-metric.html. However trust algorithms are suspectible to a cascade problem, if somebody (A) who has rated lot's of people is rated that can cause a recalculation of all who are rated by A, which in turn can cause recalculations, etc. It's possible to code around that though, the easiest solution would be to use well defined levels so that if the level of somebody doesn't change no recalculation is needed.

With levels you lose the flexible threshold though. On the other hand levels mean you don't have to design and implement the algorithm yourself (the Advogato one is implemented in a few GPLed libraries). Plus I don't see the use of a flexible threshold, those that are expected to behave in a small team can be expected to behave in a large team too.

For karma to work best it must be persistent. In fact I'd go so far as to say that it should be persistent across servers. This makes things a lot easier on the good players.

Losing karma based on deconstructing is kinda superfluous if you can't build without a bit of karma anyway.

On the other hand requiring a certain level of karma for base building sounds like a very good idea. It would at least stop the most common trolling approach.

One can also think of high karma folks to get some additional, limited, powers. I'm specifically thinking of initiating a vote for a one hour IP based kickban with an automatic recognizable note in the logs (so that the server admin could easily make the ban permanent).

Now to the downside of karma. You should be aware what karma will be used for. It will not only be used against trolls and such but also against new players who are just getting into the game. One would hope it won't, but I've seen enough folks constantly shouting insults at their team because they don't do well enough (ironically these folks never seem to try to coordinate their team). On the other hand it would also be used against such folks (I wouldn't hesistate to deal out some bad karma when somebody repeatedly calls my team names) which would mitigate the damage.

Also there is the risk of the opponents using karma to damage the enemy team. But then, those doing that will most likely not have much karma so wouldn't be able to do too much damage.

The biggest problem with any karma based system is to get people to deal out positive karma. Dealing out karma requires some energy. On the other hand it's likely some folks would do it regulary, to improve the game. As people who care about the game are most likely to get the best karma this would somewhat mitigate this problem.

As you have read in the previous paragraphs I believe that karma wouldn't only help with trolls and co but also with improving the atmosphere of the game in general. And it would encourage playing for the team instead of going out and killing. I'm personally more inclined to reward somebody constantly repairing our base (that's something that even karmaless folks should still be able to do btw) than the top shooter of the team.

As for how much work this would be: a connection to a new server would have to be added in the server code. Plenty of code would have to be added to make the game karma aware. A few commands would have to be added. The GUID/karma server would have to be coded. All in all quite a fair amount of work. And double the time you expect because there will be bugs ;).

Ok, hope that made sense :).

deque

  • Posts: 3
  • Turrets: +0/-0
Kicking
« Reply #32 on: April 10, 2006, 05:05:36 pm »
Quote from: "Silverius"
A few notes on karma:
For karma to work best it must be persistent. In fact I'd go so far as to say that it should be persistent across servers. This makes things a lot easier on the good players.


True, but it seems that something that ambitious would be a PITA to implement blind. I think it would be wise to go after something simpler at first that at least works, and then move up to the "universal karma" theory later. Another option that may be simpler would be to have a karma score stored on the client that is cryptographically signed by the server so it can't readily be cheated. I think though that if the system were implemented carefully the inconvenience of "per connection karma" would be limited. Similar to XP in ET, the beginnings of matches would be slowed down, but once a cluster of people have been playing for a bit, it would be largely transparent becuse the people there would (theoretically) have gained sufficient karma that it would not be neccesary to worry about it anymore and it becomes transparent until someone new joins up.

Quote from: "Silverius"

Losing karma based on deconstructing is kinda superfluous if you can't build without a bit of karma anyway.


In this case karma would only be required to deconstruct. In practice, griefers rarely use the ability to construct to cause problems. Once you build stuff you then have enough points to remove as much as you have built, but no more. This would also only be neccesary at low levels, once someone has good enough karma, the destruct penalty could arguably be removed. This would also be largely unneccesary if the "universal karma" system were possible.

Quote

One can also think of high karma folks to get some additional, limited, powers. I'm specifically thinking of initiating a vote for a one hour IP based kickban with an automatic recognizable note in the logs (so that the server admin could easily make the ban permanent).


That's a good idea. Allows the ability to dynamically appoint "pseudo-admins" which could be useful for dealing with all sorts of miscreants, not just the base-destroying griefers.

Quote

Now to the downside of karma. You should be aware what karma will be used for. It will not only be used against trolls and such but also against new players who are just getting into the game. One would hope it won't, but I've seen enough folks constantly shouting insults at their team because they don't do well enough (ironically these folks never seem to try to coordinate their team). On the other hand it would also be used against such folks (I wouldn't hesistate to deal out some bad karma when somebody
repeatedly calls my team names) which would mitigate the damage.


This is true, and I agree that it would be sufficiently mitigated. The same controls that would be neccessary to prevent the griefers from nerfing the system in their favor should work to prevent them from using it against someone as well. In any case, there's a strong argument that this possible downside is an acceptable risk to solve to griefer problem.

Quote

Also there is the risk of the opponents using karma to damage the enemy team. But then, those doing that will most likely not have much karma so wouldn't be able to do too much damage.
The biggest problem with any karma based system is to get people to deal out positive karma. Dealing out karma requires some energy. On the other hand it's likely some folks would do it regulary, to improve the game. As people who care about the game are most likely to get the best karma this would somewhat mitigate this problem.


The distribution of points would be per-team, not server-wide. That would prevent one team from nerfing the others' karma and provide an incentive to give out your points. "We can't win if I don't award these." Similarly though, people would (again, theoretically) want to be careful with a finite resource which if used on the wrong person gets their base wiped out... ;)

Quote

As you have read in the previous paragraphs I believe that karma wouldn't only help with trolls and co but also with improving the atmosphere of the game in general. And it would encourage playing for the team instead of going out and killing. I'm personally more inclined to reward somebody constantly repairing our base (that's something that even karmaless folks should still be able to do btw) than the top shooter of the team.


I agree completely.

Quote

As for how much work this would be: a connection to a new server would have to be added in the server code. Plenty of code would have to be added to make the game karma aware. A few commands would have to be added. The GUID/karma server would have to be coded. All in all quite a fair amount of work. And double the time you expect because there will be bugs ;).

Ok, hope that made sense :).


Indeed it did make sense. And it will be a ton of work, especially to get it "right". However, from a player's perspective, this sort of work would do more to improve the game than anything else I can think of at this point. The biggest bug in Tremulous is the players. Isn't that awesome? "No patch for human stupidity". Woo.

Doing it well and "right" would also provide a strong foundation to build more "game" features on. And putting in little bits and pieces slowly would also likely make the work visible and give a big increase in playability. Which could grow the player base significantly. Even if it proves unfeasable to fully implement a true universal karma system, even a broken and impartial one will likely do more good than harm.

Thanks for your thoughtful reply. I had hoped that posting this would illicite this sort of response. Hopefully it will provide some food for thought for people who actually have the skills to implement it. :)

-deque-

Silverius

  • Posts: 167
  • Turrets: +0/-0
Kicking
« Reply #33 on: April 10, 2006, 06:52:08 pm »
Quote from: "deque"
True, but it seems that something that ambitious would be a PITA to implement blind. I think it would be wise to go after something simpler at first that at least works, and then move up to the "universal karma" theory later. Another option that may be simpler would be to have a karma score stored on the client that is cryptographically signed by the server so it can't readily be cheated. I think though that if the system were implemented carefully the inconvenience of "per connection karma" would be limited. Similar to XP in ET, the beginnings of matches would be slowed down, but once a cluster of people have been playing for a bit, it would be largely transparent becuse the people there would (theoretically) have gained sufficient karma that it would not be neccesary to worry about it anymore and it becomes transparent until someone new joins up.


Hmm, per server karma would indeed be a good first step, provided the karma system is coded in such a way that it can be easily moved to a central server later.

Quote from: "deque"
The distribution of points would be per-team, not server-wide. That would prevent one team from nerfing the others' karma and provide an incentive to give out your points. "We can't win if I don't award these." Similarly though, people would (again, theoretically) want to be careful with a finite resource which if used on the wrong person gets their base wiped out...


Hmm, good idea. Would be slightly tricky if the griefers are all in one team and the good guys in another, but a simple map change and stuff should solve that.

Quote from: "deque"
Indeed it did make sense. And it will be a ton of work, especially to get it "right". However, from a player's perspective, this sort of work would do more to improve the game than anything else I can think of at this point. The biggest bug in Tremulous is the players. Isn't that awesome? "No patch for human stupidity". Woo.


Unfortunately as Einstein has noted human stupidity is infinite like the universe, though he wasn't sure of the universe. But karma indeed holds a promise to increase player enjoyment.

Quote from: "deque"
Doing it well and "right" would also provide a strong foundation to build more "game" features on. And putting in little bits and pieces slowly would also likely make the work visible and give a big increase in playability. Which could grow the player base significantly. Even if it proves unfeasable to fully implement a true universal karma system, even a broken and impartial one will likely do more good than harm.


Well this is an open source game and it has the advantage that where you don't need to adapt the client development can go very quickly (developing server based software is very pleasant, no rollout problems). Looking very quickly through the source it appears this can be done for a large amount of commands.