News:

Congratulations!
 You've won the News Item Lottery! Your prize? Reading this news item! :)

[Suggestion] Vehicles "stuck" for over a month should teleport to depot

Started by freddyhayward, September 08, 2019, 11:11:35 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

freddyhayward

This suggestion aims to address network blockages in multiplayer games usually caused by a single stuck vehicle. If the vehicle belongs to a locked inactive player, these can last in-game decades. This approach might also address the issue where passengers overcrowd stations waiting for non-existent services: https://forum.simutrans.com/index.php/topic,19093.0.html

Spenk009

Can the game send a message to the player in absentia, detailing which tile the convoy was on when it teleported?

freddyhayward

Quote from: Spenk009 on September 09, 2019, 02:54:40 PM
Can the game send a message to the player in absentia, detailing which tile the convoy was on when it teleported?
Quote from: Ranran on September 09, 2019, 02:00:42 PM
It is certain that other players may be troubled by the occurrence of deadlock.
But on the other hand, if automatically teleport a stuck convoy to the depot before the player checks it, player may not understand what caused the deadlock.
If the cause is not known, it may be repeated again...

As currently, players are warned "{convoy} is stuck" and given the tile coordinates in the messages window. As to whether players can diagnose problems within the network, presumably using the block reservation display, this would depend on how much time is allowed and how often the player checks on the server. Allowing "over a month" would last for the rest of the month in which the deadlock occurs and the entirety of the following month — though perhaps this value could be extended via settings. Of course if the player never logs on again, as is often unfortunately the case, there is no chance of them detecting the problem at all. It is also possible for other active players to notice the problem and address it indirectly (for example, by building additional tracks connected to those of the original player).

Edit: perhaps 12 months would be a more reasonable default.

Matthew

I think that a month is too short. I play with a different bits_per_month setting to the Bridgewater-Brunel game, so my months are much shorter (maybe 15 mins of real life?). If this proposal is ever implemented, then I would suggest that the time before teleportation is made adjustable in simuconf.tab and the in-game Settings dialogue.
(Signature being tested) If you enjoy playing Simutrans, then you might also enjoy watching Japan Railway Journal
Available in English and simplified Chinese
如果您喜欢玩Simutrans的话,那么说不定就想看《日本铁路之旅》(英语也有简体中文字幕)。

Mariculous

*dig dig* Oh an ancient thread!

I agree there should be some machanism to remove blockages that one can't resolve manually due to other players being affected.
However, i would alter this from an automatic "teleport them all" to a manual "teleport that vehicle" tool for the following reasons:
If one vehicle gets stuck, many more will also stuck. If the game engine would move all of the stuck vehicles to the depot, all players will have to restart their trains although most of them didn't do anything bad.

Alternatively, that automatic teleportation should try to be smart and only teleport vehicles that are stuck waiting for a vehicle facing the opposite direction as this is the most common cause for deadlocks.
However, trying to make programms "smart" is most often not a pretty good idea...

jamespetts

I can see possible benefits and possible complexities of this. On the one hand, it can deal with blockages in network games that might affect shared lines; on the other hand, it may be difficult for players who have been absent to understand what has happened (or even that something has happened at all if all the messages have been archived into oblivion) and then to find the cause of the problem. Large numbers of vehicles may end up being teleported when only a few were at fault, and vehicles stuck in a depot are just as unproductive as vehicles stuck in service - except in the case of the latter, the player manually has to restart them. If player X's vehicles getting stuck cause player Y's vehicles to get stuck, and player X fixes the blockage, it would be unfortunate if player Y's vehicles had teleported back to the depot in the meantime, meaning that player Y would have to do a lot of work to re-set her/his lines when this would not otherwise be necessary.

At present, from what I can tell, simply teleporting stuck vehicles to the depot would probably cause more problems than it would solve.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

jamespetts

Allowing players to send other players' vehicles to the depot after a while is an interesting idea; but do you imagine this applying to all vehicle types, or only road types? Applying it to rail might be complex; do you envisage allowing any player to send any other player's vehicles to the depot, or just players who have given or have been given access rights by the player whose vehicle is stuck?
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

jamespetts

What I am wondering about is the desirability of players being able to interfere with other players' networks even though the issue on other players' networks has no effect on the interfering player: the players whose network be thus interfered with may prefer the trains to remain stuck until that player comes online for the same reasons given against automatic teleporting above.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

Vladki

I think that this is similar to the "remove reservation" tool. It should work on tracks that the player is allowed to use, regardless of which player's vehicle (reservation) is affected.

RESTRICTED ACCOUNT

My idea is not to automatically remove the stuck at the program's discretion, but to press the teleport button is left to the online player's discretion.
If it negatively affects online player's network, he will try to solve the stuck by using it.
But on the other hand, if that stuck is desirable for online players, nobody may try to solve it.  :P

Even if there is a record of the stuck coordinates and convoy in the message centre, the player who caused it may not be able to understand the cause of the stuck without directly looking at the situation. If the stuck is not significantly harming other players, it is desirable not to do so blindly.

freddyhayward

I like the idea of a "teleport to depot" button appearing after a set interval. The server should at least send out a message: "{player_a} teleported {player_b}'s {convoy} from {convoy_position} to {depot} at {depot_position} after being stuck for {months} months." Then as a matter of server etiquette, the player would leave a message or sign explaining the causes and effects of the blockage. With these in mind it seems difficult for this feature to be abused.

jamespetts

I can see the merit of Ves's suggestion of using the same logic as the reservation clearance tool for determining who is allowed to teleport another player's vehicles to the depot after they have been stuck for a fixed period. Is anyone aware of a compelling reason to do anything different?
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

Ves

Quote from: jamespetts on January 02, 2020, 10:29:59 AM
I can see the merit of Ves's suggestion...
Although i would say thanks for the credit, I think you meant Vladki :-p

Anyway, I think that makes sense as well!

jamespetts

Quote from: Ves on January 02, 2020, 11:00:33 AM
Although i would say thanks for the credit, I think you meant Vladki :-p

Anyway, I think that makes sense as well!

Oops - my error; yes, I meant Vladki.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

Mariculous

Quote from: Freahk on December 18, 2019, 04:21:44 PMI agree there should be some machanism to remove blockages that one can't resolve manually due to other players being affected.
However, i would alter this from an automatic "teleport them all" to a manual "teleport that vehicle" tool for the following reasons:
So, it seems I agreed with it already.

Phystam

This button is now very Standard-ish. Is it a solution that we change the tool into 'teleport to (the home) depot?

jamespetts

Quote from: Phystam on January 02, 2020, 12:45:57 PM
This button is now very Standard-ish. Is it a solution that we change the tool into 'teleport to (the home) depot?


That is an interesting thought - but this is a much used button, I suspect. I should be interested to know what other players make of this suggestion.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

Vladki

Perhaps showing sell on your own vehicles, and teleport on other players?
One should be able to resolve blockage of own vehicles without teleport.

jamespetts

Quote from: Vladki on January 02, 2020, 01:34:19 PM
Perhaps showing sell on your own vehicles, and teleport on other players?
One should be able to resolve blockage of own vehicles without teleport.

But if that is possible, surely the answer is to give that functionality to the other players, rather than the teleport functionality?
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

Vladki

Most blockages I was able to solve by:

a) clearing forgotten reservations
b) opening and closing vehicles schedule, with no change.
c) opening vehicles schedule and sending it to next, previous, or any other stop, optionally toggling reverse schedule
d) sending vehicle to depot in usual way (not teleporting)
e) upgrading or rebuilding roads on the vehicles route
f) combination of all above, never needed to sell vehicle on spot

a) would be satisfied if anyone can clear reservations on ways he is allowed to use.
b/c/d) could be done as suggested before - if a vehicle is stuck for some time (one or a few more game months?), then allow other players to:
- send the vehicle to depot (normal way) - this avoids the problem of teleporting to depot on disconnected network
- open the vehicle's schedule and set new destination  (modification of schedule would not be possible)

jamespetts

On the face of it, Vladki's suggestions seem to be the most sensible way of addressing this issue; can anyone see any insuperable problems of doing it this way?
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

Vladki

Also, the public player can switch to anyone else without password, and resolve the blockage. So it is the game master's task to do it if necessary.

RESTRICTED ACCOUNT

Does Vladki's idea operate a convoy that others have stuck manually?
How is that spoofing limited to stuck vehicles only? For example, manipulating the next schedule for a vehicle is no matter, but removing a station from the schedule is problematic.
If there are many stuck vehicles and if one stuck vehicle moves slightly by operating one vehicle, it will not be in the stuck state. If the spoofing player can control a vehicle that is not stuck, it can be exploited.

Vladki

As said before
- only vehicles stuck for a while should be operated by others.
- changes in schedule should be forbidden (removing/adding stops, changing waiting times)
- only "send to depot", skipping stops, and toggling the reverse direction should be allowed.

If the vehicle moves a little and gets stuck again, then you probably touched the wrong one and should try another which is most probably still stuck. Or wait for the server admin to intervene, he can impersonate the player and try more stuff.