Author
Topic: Issues with multiplayer games (Read 7286 times)

I had some problems with my last multiplayer games (rivers server) when "interacting" with other players and their constructions

1. when i build busstops on public roads other players can (and do) place roadsigns at the same tile where my busstop is situated (private road barriers, oneway signs etc. make the busstop unreachable) - i can't even delete my broken busstops because then the game tells my that the structure is from another player2. some players connect their roads to my tunnels, when they do it i can't remove my own underground roads that are adjacent to this intersection3. in pak64 there is no "end of choose" sign for roads, some players put choose signs on public or other transit roads and there is no way to tell bypassing vehicles that they shouldn't search for another stop4. imho at tiles where roadsigns (private barriers, oneway, speed limits, ...) are placed it should not be possible that other players connect and create intersection on that tile (it is causing strange effects sometimes)

1. when i build busstops on public roads other players can (and do) place roadsigns at the same tile where my busstop is situated (private road barriers, oneway signs etc. make the busstop unreachable) - i can't even delete my broken busstops because then the game tells my that the structure is from another player

I plan to look into such problems in the future. A similar situation is with a public stop on your way, you cannot delete your own way. Another such situation is your way-objects placed on a public way with a public stop, you cannot delete or make public your own way-objects in this case.

For the case of signs, I think they should possibly be disabled on public ways to stop this. They are public so using signs to restrict use seems kind of contradictory.

Quote

2. some players connect their roads to my tunnels, when they do it i can't remove my own underground roads that are adjacent to this intersection

Need an example map demonstrating the problem.

Quote

in pak64 there is no "end of choose" sign for roads, some players put choose signs on public or other transit roads and there is no way to tell bypassing vehicles that they shouldn't search for another stop

Would be solved by solving problem 1 by disabling private signs on public roads or making sings on public roads public and able to be changed by anyone. Who uses road choose signs anyway?

A bigger problem is a lack of end of choose sign for mono-rail in pak64.

Quote

4. imho at tiles where roadsigns (private barriers, oneway, speed limits, ...) are placed it should not be possible that other players connect and create intersection on that tile (it is causing strange effects sometimes)

Best seen in airports where one can use a one-way sign on an intersection. The correct behaviour in this case should probably be to throw an error when trying to make an intersection or to allow those signs on intersections with customizable, well defined behaviour.

Quote

For (2): This can only happen if part of the tunnel is made public, and then another player can connect. Are there other possibilities to get to this situation?

Inside a road tunnel you can connect to it as any other player like normal road. However the intersection should still be owned by the original player and should still be able to be deleted.

I am guessing but maybe if a tunnel mouth is right against another player's road then it breaks because there is meant to always be 1 tile beyond the mouth underground. Trying to delete the intersection then might throw a permission error as the tunnel mouth cannot be deleted. However a demonstration map is really needed to confirm this, and the solution would be to change the tunnel moth logic to either allow no following tunnel tiles or to force ownership of both tiles (not allowed to take ownership away from other players so the tunnel build would fail).

Quote

(3) Maybe vehicles should check the owner of the sign? So vehicles will not react to choose signs of other players and simply pass.

It is needed for rails to operate correctly. It is completely possible to drive trains over other player's tracks.

(3) Maybe vehicles should check the owner of the sign? So vehicles will not react to choose signs of other players and simply pass.

I think the only problem is if it's from the public player. If vehicles only react with choose signs from the same player AND public, trolls would still build those signals and make them public just to annoy others.

As for (1) & (3) I don't know what would be the best solution, disallow building signals? Only the public player can build them on public roads?

In my opinion a private road should be private, and untouchable by anyone else but the public player. The problem is that there won't be much public roads in Simutrans by itself.

I find it sensible that private signs on public roads only affect that company's vehicles. It does however not make much sense to have private speed limit signs or traffic lights on public roads. Choose signs are debatable, as they are potential blocking points. No-entry signs are unnatural, but might be necessary.

Private stops at public roads is natural (within the premises of Simutrans anyway), and perhaps difficult to avoid. I can imagine that evil players can put up a bus stop on a public road, send a bus from either side with wait for 100% load and nowhere to take any passengers (if there are passengers to pick up at all), thereby blocking the road.

I use them far more than choose signals. One need a lot more lorries than a train (or boat). Unless there is an even flow, which there often isn't in Simutrans, you either need different schedules to route them to different loading bays to wait without getting labelled as stuck, or a choose sign. The latter is the easier solution by far.

4) is a known exploit, but gives graphic errors and indeed should be disallowed. Same for 1)

3) The public player cannot run vehicles. But one could check that next stop owner and choose sign owner match, in the way either vehicle owner=sign owner or (next stop==public and sign owner==public).

Do not know if this has anything to do with this, but I have noticed that when you place a a station in the same position of a text label of public service, the station takes the name of the label text.That's strange.

Do not know if this has anything to do with this, but I have noticed that when you place a a station in the same position of a text label of public service, the station takes the name of the label text.That's strange.

Private stops at public roads is natural (within the premises of Simutrans anyway), and perhaps difficult to avoid. I can imagine that evil players can put up a bus stop on a public road, send a bus from either side with wait for 100% load and nowhere to take any passengers (if there are passengers to pick up at all), thereby blocking the road.

Could this be avoided by disabling through stops (on roads) and allowing only dead-end stops (like loading bays)?Or disabling wait time on through stops.

Could this be avoided by disabling through stops (on roads) and allowing only dead-end stops (like loading bays)?Or disabling wait time on through stops.

They only need to add another vehicle to cause the same kind of grief, so that there is one vehicle waiting on the bay, and one vehicle from either side waiting to enter it. And intersections cause grief by themselves in my opinion. The only solution to stop vehicle abuse is to make road vehicles transparent to each other, at least for vehicles with different owners.

Inside a road tunnel you can connect to it as any other player like normal road. However the intersection should still be owned by the original player and should still be able to be deleted.

I am guessing but maybe if a tunnel mouth is right against another player's road then it breaks because there is meant to always be 1 tile beyond the mouth underground. Trying to delete the intersection then might throw a permission error as the tunnel mouth cannot be deleted. However a demonstration map is really needed to confirm this, and the solution would be to change the tunnel moth logic to either allow no following tunnel tiles or to force ownership of both tiles (not allowed to take ownership away from other players so the tunnel build would fail).

This was exactly the situation, another player connected to my tunnel directly behind the tunnel mouth and after that it was impossible to delete the mouth or the tile behind where the intersection was, I had still the ownership of those tiles.

(3) Maybe vehicles should check the owner of the sign? So vehicles will not react to choose signs of other players and simply pass.

The check should also depend on my vehicles destination, if they are going to a public stop or to a private stop. In the first case they should respect other players choose signs because they might be necessary for correct flow at this public station. If they go to my private stop they should not respect other players choose signs. End of choose signs would be helpful anyways but that is a pakset decision.

They only need to add another vehicle to cause the same kind of grief, so that there is one vehicle waiting on the bay, and one vehicle from either side waiting to enter it. And intersections cause grief by themselves in my opinion. The only solution to stop vehicle abuse is to make road vehicles transparent to each other, at least for vehicles with different owners.

The realistic way of doing it, surely, would be to allow overtaking stationery vehicles? For some reason, the current overtaking code only seems to apply to moving vehicles.

I think I added overtaking of waiting vehicles. The problem ist that a stops before a crossing is a non-overtaking condition, since the overtaker cannot stop. Same for real life, overtaking before crossings is strongly prohibited.

EDIT: There was an error there were too many tiles tested for waiting convois. r7921 should fix this.

But there is a waiting vehicle in the other lane as well, which blocks even that. The only option in my opinion is to allow vehicles to drive through waiting vehicles.

In reality, many roads are wide enough for three vehicles. Would it not be possible to make the overtaking vehicle in such case pass through in the middle, ie on the centerline? Maybe with a speed penalty like 10-20 kmh.

In reality, bus stops are often in places where the road is made wider so that bus on the stop does not block the traffic.

Using the centerline sounds reasonable, especially when we have trams running in the center. So the space is there. I'm not really sure about the speed reduction. It makes sense only in case of overtaking a stationary vehicle. When overtaking moving vehicles many drivers are speeding even faster then allowed to finish overtaking asap.

Anyway this will only reduce the effect of blockage. The throughput of stop with two buses waiting in both direction would be still low.

One solution would be to allow public player to do "police tasks" - force other players vehicle to depart even if not loaded, or designate stops as "not waiting for load"

However it is not "waiting" road vehicles that are the problem. The problem in most cases are the "stuck" road vehicles behind the "waiting" ones that are waiting for clearance to use the stop as they are on the same line as the waiting one.

I doubt it is possible to distinguish between a stuck convoy due to traffic or a stuck convoy due to waiting for clearance at a stop.

One could allow overtaking of all convoys at or recently at a stop. However that still will not stop players from blocking roads due to having multiple convoys waiting behind to use the stop next.

Anyone with malicious intent can use vehicles to cause grief as long as vehicles from different players interact with each other. They don't even need a stop to block both lanes. To be sure to avoid this problem, vehicles, at least vehicles standing still, must either be non-blocking, or you need to moderate your games better. The latter works for all these problems.

Anyone with malicious intent can use vehicles to cause grief as long as vehicles from different players interact with each other. They don't even need a stop to block both lanes. To be sure to avoid this problem, vehicles, at least vehicles standing still, must either be non-blocking, or you need to moderate your games better. The latter works for all these problems.

Yes, there are hundreds of ways to sabotage other players and the game mechanics can never avoid all of that. That's why i haven't included the bus stop waiting issue in my 4 points above. I just wanted to mention things where the game mechanics (in my opinion) do something wrong and most of this things are hard to detect, other players roadsigns behind my station/busstop buildings are difficult to see, same for choose signs somewhere on the whole map or underground connections.Traffic jams caused by waiting for load are annoying but at least a problem that anybody sees instantly.

What would be useful is giving the Public Service player the ability to alter any companies convoy's destination. It does not need to be lines, just the next destination. On River's server a case arose where due to cyclic intersections and bad way layouts around 100+ busses became stuck. The problem could not be resolved until one of the involved companies logged in and then re-routed some of the busses away to unstick the intersections. River could have solved it if he could change the current destination of the involved convoys using the public service player. Often all that is needed is to change the destination so convoys re-route as some times they remain stuck by sticking stubbornly to the same route which may not even be valid anymore.

Experimental has a teleport to depot function that will send vehicles to a depot even if they are not connected if they have been stuck for long enough. If a player has deleted all depots, perhaps the vehicle should thus be deleted.

The public player can change to any company without being queried for a password. Hence he can send any convoi to wherever he/she likes. Or has this broken?

I would really like this feature, it would allow me as the public player to effectively fix problems. some problems can't just be fixed by sending to the next stop. At this moment all i can do it remove/change the password of the company and completely take it over. But I don't want to leave the company without its password or the player blocked from his company.

Unless something changed since I last contributed (which is a long time ago) the public player can just change to any company he like. He does no have to unlock the company, it should be already marked as unlocked for him.

Unless something changed since I last contributed (which is a long time ago) the public player can just change to any company he like. He does no have to unlock the company, it should be already marked as unlocked for him.

I do not see any logic for this, outside of single player (not network). Come to think of it that logic seems kind of pointless...

I will look into adding this feature.

EDIT:Added it to r7923. If you are authenticated as public service player it should now be possible to bypass all password checks. It is done automatically when changing from public service player to another company. It can also be done manually by submitting any password to a company. The password integrity of the company should be unchanged during the bypass, however once the bypass is performed if a new password is entered then the password will be changed.

River it would be nice if you could update the nightly server to r7923 once it propagates to the build servers and test if the feature works or has any bugs/exploits. I have not tested this new feature.

However it is not "waiting" road vehicles that are the problem. The problem in most cases are the "stuck" road vehicles behind the "waiting" ones that are waiting for clearance to use the stop as they are on the same line as the waiting one.

I doubt it is possible to distinguish between a stuck convoy due to traffic or a stuck convoy due to waiting for clearance at a stop.

Some further thoughts have occurred to me in this respect recently. Firstly, in reality, 'buses do not generally block the road when they wait at stops: they pull over, letting cars overtake them. On narrower roads, cars have to use the other side of the road, but on relatively wide roads, which are not uncommon, cars can pass the 'buses without using the opposite side of the road. 'Buses waiting for a space at the 'bus stop also pull over to the side of the road in the same fashion.

As already suggested, it seems to me sensible that road vehicles at in-line road stops should (1) be shown graphically as pulled over (as is currently the case when vehicles are being overtaken); and (2) that it should be possible for any vehicle to pass them on the same side of the road.

Further, and to deal with the issue of vehicles waiting behind them, any road vehicle that is blocked by any vehicle whose state is "pulled over" (which should only happen if that "pulled over" vehicle is blocking a stop wanted by the waiting vehicle) should itself be set to the "pulled over" state so that any other vehicle can pass it. That way, the queues of vehicles awaiting a slot at a road stop should not interfere with through traffic, which is as things are in reality, at least on wide roads. It seems reasonable to assume that all roads in Simutrans are wide roads (especially given the graphics).