wight-airmash / ab-server

2d multiplayer action game server for Node.js based on WebSocket communication.
https://airmash.online
MIT License
54 stars 21 forks source link

Kick inactive players? #83

Closed peace2000 closed 4 years ago

peace2000 commented 4 years ago

It's very annoying to play and see inactive players. It's problematic as they could get leadership, they also cause the server to distribute players unevenly as inactive players are counted as well when distributions are made. (Elections considering inactive leaders doesn't seem to be enough. It's hard to monitor during intense games how active a certain leader is or start typing something about elections.)

My suggestion is that if someone is away, let's say 3 (leaders 2) minutes, one would be automatically kicked "due to inactivity". That of course doesn't prevent joining back when they are truly active again.

This problem is very common.

I also often see names that are listed as active players but I never really encounter them when playing, even during long matches.

wight-airmash commented 4 years ago

This feature is already done by congratulatio: https://github.com/wight-airmash/ab-server/pull/80. I'm sure turning it on won't make much difference, like it was on the old server. The reason for the imbalance is not in the fact that someone remains afk, but in those who continue to play unbalanced games without switching, who thoughtlessly join the game, disrupting the balanced games or amplifying already unequal games.

they could get leadership

There are /usurp and /elections for that.

I also often see names that are listed as active players but I never really encounter them when playing, even during long matches.

They could be prowlers. And if someone intentionally leaves AFK tabs to make the game unbalanced, they may be and should be kicked by moderators.

peace2000 commented 4 years ago

those who continue to play unbalanced games without switching, who thoughtlessly join the game, disrupting the balanced games or amplifying already unequal games.

That's true.

They could be prowlers.

Yes, but that doesn't explain it in every situation especially when they are in the same team, thus being visible to me. Joining thoughtlessly will of course unbalance the game but I feel that it's not easy to verify what's the real situation because there are names listed that are not actually playing. I have experienced this many times. And during long matches I usually always see every enemy's prowler when they become visible during an attack.

It would also be easier to see how many human players are playing if bots would be listed separately. Now it's a big list of bots and players - takes too much effort to check, search and calculate what's the balance situation.

Some human players have also started at times to mimic known names of bots to confuse others. Could bots have some kind of suffix at their name that cannot be used / mimicked by human players? For e.g. grey colored [bot] tag or something?

peace2000 commented 4 years ago

Those players that are not really playing but are listed often as playing, might have unusually high ping, around ~1000ms...

BlackCrawler commented 4 years ago

Those players that are not really playing but are listed often as playing, might have unusually high ping, around ~1000ms...

I think they are in spectate mode (there is no indication on airmash.online). You can check this on starma.sh, if they are stroked out then they are in spectate mode.

wight-airmash commented 4 years ago

Now it's a big list of bots and players - takes too much effort to check, search and calculate what's the balance situation.

This can be simplified by adding a server command that counts the active players in each team (this can also be implemented as a starmash extension or with an update of the main client). I still haven't added such a command because I don't want the balance to be associated exclusively with the number of active players and the current score of the match, because it is not so.

might have unusually high ping, around ~1000ms

It happens when the player switches to another browser tab.

Could bots have some kind of suffix at their name that cannot be used / mimicked by human players? For e.g. grey colored [bot] tag or something?

https://github.com/airmash-refugees/game-ideas/issues/19. Such changes are possible, and it also can be made with the client code update even now without changing the server code. The names of the bots are known, their ping value is usually 1 ms.

peace2000 commented 4 years ago

I think they are in spectate mode (there is no indication on airmash.online). You can check this on starma.sh, if they are stroked out then they are in spectate mode.

There is one specific name that is almost always, whenever I go to play, listed as active players. I highly doubt that he's always spectating. He's listed even if he's is not really playing. It's annoying that he's listed even though he's not there.

peace2000 commented 4 years ago

Now it's a big list of bots and players - takes too much effort to check, search and calculate what's the balance situation.

This can be simplified by adding a server command that counts the active players in each team (this can also be implemented as a starmash extension or with an update of the main client).

It would be great if such command would be added. :)

I still haven't added such a command because I don't want the balance to be associated exclusively >with the number of active players and the current score of the match, because it is not so.

Balancing is never easy or self-evident. There are players that are pros and players that are beginners. Good players usually know how to balance the game by switching sides themselves. They do that actively, what I have seen. I'm just asking that we would be given a tool that can be used to review the current situation better. Some players do care about balance, some players don't. Those who care, will use any tools that help them to review the situation. Now they don't have much tools to review the situation but they try to do it anyway.

might have unusually high ping, around ~1000ms

It happens when the player switches to another browser tab.

Ok. In my opinion such players should be kicked as they are listed as players even though they are not playing. Inactive, listed players make it harder to review the balance situation. There is one player that is "active" almost all the time, ping being around ~1000ms.

Could bots have some kind of suffix at their name that cannot be used / mimicked by human players? For e.g. grey colored [bot] tag or something?

airmash-refugees/game-ideas#19. Such changes are possible, and it also can be made with the client code update even now without changing the server code. The names of the bots are known, their ping value is usually 1 ms.

Yes, their names are known but not by those who have not played a lot. And still during in-game it's not possible / there is no time to check who are bots. And if bots have the same country flag as the player who mimics their name, it's not possible to recognise who's a bot and who's a player by appearance.

wight-airmash commented 4 years ago

In addition to those who really do not play, there are those who want to watch the game. They shouldn't be kicked.

It can also be a strong upgraded player who needs 5-10 minute afk. It is quite understandable, because the games can be long and the kick of this player with losing its upgrades can only hurt the team.

All these are some of the additional conditions for a better balance system, which I am gradually working on.

Although I'm sure we'll never achieve some competitive level (by which a balanced game meant) without changing some basic game concepts like "fast join" (playing without an account, being able to join the game at any time) and applying additional rules such as smurfing forbiding. But this should be up to the game community to decide.

peace2000 commented 4 years ago

In addition to those who really do not play, there are those who want to watch the game. They shouldn't be kicked.

Agree :) but it would be better if they were not listed then or they would be someway clearly separated from real players.

It can also be a strong upgraded player who needs 5-10 minute afk. It is quite understandable, because the games can be long and the kick of this player with losing its upgrades can only hurt the team.

This is a good point of view. Other resolution could be that if he is kicked, he would be allowed to join back, without losing those upgrades, if the current match is still ongoing. I'm not sure if this would be possible to implement but it's an idea. :)

All these are some of the additional conditions for a better balance system, which I am gradually working on.

Great!

Although I'm sure we'll never achieve some competitive level (by which a balanced game meant) without changing some basic game concepts like "fast join" (playing without an account, being able to join the game at any time) and applying additional rules such as smurfing forbiding. But this should be up to the game community to decide.

Yes, will see.

peace2000 commented 4 years ago

might have unusually high ping, around ~1000ms

It happens when the player switches to another browser tab.

Sorry I have to come back to this. I'm not willing to point fingers but certain player is probably having his browser tab switched almost 24/7.

https://user-images.githubusercontent.com/17256841/75090906-5c369300-5570-11ea-88b5-5fabdd55708f.png

It's the player called xp. Almost whenever I go to play I see that nickname as active player even though he's not. He probably doesn't do this on purpose but I don't have his contact info to tell him about this. And even if I had, this is a problem that should be - in my opinion - dealt by the server, automatically.

It's very annoying to see players listed as active players when they are not. This player is there almost 24/7. I understand people might not understand that they are still listed as active when they are not, but somekind of automatic disconnection by the server should be there, also in Capture the flag mode.

That server in the picture is CTF1, Europe-server.

@wight-airmash

wight-airmash commented 4 years ago

The frontend has enough data to mark players as spectating. For example, this is what StarMash does: spec

You may add something like that to the classic frontend.

After the kick, the server loses the player statistics needed for the balance. This is how the current balance system is implemented. It is better to fix the balance system and add a condition for AFK players than to lose statistics.

congratulatio commented 4 years ago

@peace2000 please feel free to open an issue for this on airmash-refugees/airmash-frontend. The frontend already does this for BTR games on the detailed scoreboard (source code here), it shouldn't be difficult to make this change for other game types.

I am unclear on the intended purpose of this though. Is it for gathering enough information about when it's appropriate to /switch teams? If so, maybe there are other UI changes that could be made to convey that information more clearly.

wight-airmash commented 4 years ago

Is it for gathering enough information about when it's appropriate to /switch teams?

Yes, it is most often useful to evaluate the current balance of the teams.

I want to remove the /switch command in the future. Unfortunately, time has shown that many players are not able to manually balance the game. Sometimes it happens by accident (due to the fact that several players from the previous team disconnect after switching), sometimes intentionally. The temptation of an easy game/account grinding seems to be too great.

I am currently working on a "master" server that combines account stats, analytics (like whois idea by derps), CTF balance and administration. Improving the balance system is almost useless without the analytics service, because there are a lot of players, who prefers to play without an account (so storing all the stats with accounts doesn't solve the problem), and there are also some players who like to pretend to be newcomers by changing their nicknames, even during a match. I.e. the server constantly evaluates them with the lowest balance score, although in fact they have almost the highest one.

peace2000 commented 4 years ago

After the kick, the server loses the player statistics needed for the balance. This is how the current balance system is implemented. It is better to fix the balance system and add a condition for AFK players than to lose statistics.

It's not of course necessary to kick anyone if the server takes into account that some players are not really active and doesn't

Of course a small amount of inactivity is normal but long times are not.

peace2000 commented 4 years ago

I am unclear on the intended purpose of this though. Is it for gathering enough information about when it's appropriate to /switch teams? If so, maybe there are other UI changes that could be made to convey that information more clearly.

Yes, that's the point. I want to be able to quickly and effortlessly review and count truly active players so that I can balance the game by myself If I need to. Or that some others can do that. Inactive players are not a problem if they are hid from the list of players.

I tried Starmash a bit to check that strikethrough thing. Yes they seemingly have it for inactives but it's a very small strikethrough though. But anyway, check this screenshot:

kuva

Now there are only 17 players but sometimes it peaks to 30. So I want to quickly count and review the balance situation. Now there is lots of unnecessary information such as bots and inactive players... They are just in the way when I'm trying to check the situation. But this is probably a frontend thing.