News:

Simutrans.com Portal
Our Simutrans site. You can find everything about Simutrans from here.

Random issues encountered in multiplayer & corresponding suggestions.

Started by Kevin Ar18, August 11, 2012, 02:08:17 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Kevin Ar18

Thought I might mention a few random issues I noticed in multi-player (as well as some possible suggestions for those issues).  Some are not specific to multiplayer, but have an effect on the game.  Take whatever you find useful.




* Limited # of accounts or accounts get taken, but never used.
A common problem I've noticed is people will often get one of the free accounts and then never use it or only use it for a short time and then leave.  This often leaves the server with several accounts that were never used for anything and remain locked up forever ... or several accounts that were barely used (maybe even losing a little money) and also remain practically locked up forever.

Some solutions, might be allowing unlimited accounts ... or, more simply, some way to free up accounts that were never used or that were barely used and haven't been touched for a long time.  Of course, then you get into the question... what if that person was trying to reserve a slot for later? :)  Anyways, just wanted to let you know that is is an issue that causes some problems after a while, even though the map still has room to build.

* Undeletable public stations can become an infestation.  Sometimes people like to make public stations to save maintenance or to trade passengers & mail.  However, a problem can arise where these stations start to get in the way and can never be deleted or changed.

I'm not sure what the best solution is (other than an admin coming onto the server, which is not always possible).  One possibility may be to get rid of public stations in multiplayer and instead add the ability for a player to setup a particular station so other players can use/connect to it.  So for each station, you may be offered a list where you can check which players can connect to that station.  However, it would also be useful if some players can add more platforms, so maybe add a second list where you can mark which players are allowed to add and remove platforms.   In this scenario, the original player still "owns" all station platforms and pays all maintenance (unless you want to make the person who built a particular tile pay for that particular tile's maintenance).  The owner also sets rights for editing the station or connecting to it.
Note: I also like this plan because it feels less like a "cheat" vs a public station.

* Some players have major connection issues -- and when that happens, everyone has connection problems because the map has to save and reload for everyone.
So... two parts to this.
> Perhaps it might be worth investigating if there is any way to make the game work better for these players -- if there's any changes that could make synchronization more forgiving perhaps (less strict? less communication?)?
> If there was a way to make other player's bad connection not affect the other players, that'd be helpful to the other half of the players -- perhaps if there was some way not to have to save and reload the map for all players on every connection?
I suspect these are not simple issues... and I don't mean to imply that they are....  For all I know, the only solution may be a total rewrite of how networking would work.  Still, I just wanted to mention it because they are rather common and noticeable in multiplayer ... and it's better to know about it than not know, right? :)  If someone actually wants to bother studying them more, fine.


* Sometimes another player's stuff (roads/rail, etc...) gets in the way, and leaves the game forever, leaving a bad situation that can never be fixed.
Again, I don't know the solution here.  Something about allowing players to vote on fixing tiles or accounts that have been abandoned, might go here, but that is a solution with it's own problems.
Another option *might* be to allow the server owner to designate certain player as trusted "moderators"  If an account goes inactive for several weeks, maybe that person could be allowed to log into it it in order to fix minor issues or something.  Then again, maybe someone else can come up with a much better solution ... or maybe this need no fix at all. :)


* Road signs on public roads can't be removed and the road can't be deleted.
In the case of public roads, it might make more sense if the road signs were public (if the road is public) instead of being owned by a company.  Public roads are a nice way to make roads that can be edited by all players... so it would be nice if the signs were public too to allow full editing of public roads (which is the whole point).

* Another player builds a substation on your factory, but didn't connect it to powerlines yet or doesn't have enough power on his system for that factory yet.
In this case, it would be ideal if factories (the ones being powered) allowed multiple substations, so if this happens you can provide power to a factory you are using.  Of course, this raises the issue of who powers the factory if multiple people connect?  Perhaps the first person to connect powers as much as they can, then the second person, and so on?

* Power is limited; some players have lots of extra, some can't get any (unless they build a factory in the builder).
Currently, the easy solution is to just build new power plants in the builder, but if you ever decide to eliminate this cheat, then the lack of power problem will come up again.  One solution might be to have a power transfer substation?  You build it on your power network. Then you check a list of other players that can connect to it (and how much power they can get from it).  Then players could get power from you.

Fifty

Quote from: Kevin Ar18 on August 11, 2012, 02:08:17 AM
* Limited # of accounts or accounts get taken, but never used.

This should be solved in the newest release- players with no financial activity (vehicles running, maintenance being paid, etc.) will be removed.

Most of the stuff regarding public stations and vehicles, etc is easily solved by having an active public service (moderator). The Moblet server with this setup was quite successful, but it takes time to do this moderation: time that many of us do not have. There could also be Public service just for removing public stations, etc, but this could be controversial as the player with public access could abuse his/her powers if there are not set rules.

The power issue can be dealt with by using a separate player for powerlines if all players agree. Simutrans is designed to ration power out, so one is advised not to power things that don't need or don't allow a production boost.

As to connection issues, I have done significant study as a frequent netgamer into the many causes of desyncs and lag- I can post these, but it will take time as there is a lot I have discovered.
Why do we park on the driveway and drive on the parkway?

jamespetts

Quote from: Kevin Ar18 on August 11, 2012, 02:08:17 AM
* Undeletable public stations can become an infestation.  Sometimes people like to make public stations to save maintenance or to trade passengers & mail.  However, a problem can arise where these stations start to get in the way and can never be deleted or changed.

I'm not sure what the best solution is (other than an admin coming onto the server, which is not always possible).  One possibility may be to get rid of public stations in multiplayer and instead add the ability for a player to setup a particular station so other players can use/connect to it.  So for each station, you may be offered a list where you can check which players can connect to that station.  However, it would also be useful if some players can add more platforms, so maybe add a second list where you can mark which players are allowed to add and remove platforms.   In this scenario, the original player still "owns" all station platforms and pays all maintenance (unless you want to make the person who built a particular tile pay for that particular tile's maintenance).  The owner also sets rights for editing the station or connecting to it.
Note: I also like this plan because it feels less like a "cheat" vs a public station.

Something very similar has been possible in Experimental for some time. Players can give other players "running powers" to use and connect to each other's networks (ways and stops), and making things public is restricted to the public player to prevent players cheating by eliminating their expenditure on stops and ways.
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.

greenling

The making Public of Station that it a Cheat and that can you easy Remove all Buttons without Icons not in the Menu!
And Buttons Combinations can you programs confirm.
Opening hours 20:00 - 23:00
(In Night from friday on saturday and saturday on sunday it possibly that i be keep longer in Forum.)
I am The Assistant from Pakfilearcheologist!
Working on a big Problem!

Fabio

Removal of public objects (stations, signs, ways and so on): a player could use removal tool. The object is flagged for removal. Every player is notified by chat. If nobody vetoes it in 3 game months, the object is eventually removed.

Sync issues: could it be possible to disconnect only the players with bad connection? All players with speed equivalent to server stay logged and synchronized, the slower ones (i.e. Those which can't keep up) are disconnected?

A nice feature could be that an active player can purchase the assets of an inactive or bankrupted one, paying it's net worth plus debts.

jamespetts

Quote from: Fabio on August 11, 2012, 12:13:55 PM
Sync issues: could it be possible to disconnect only the players with bad connection? All players with speed equivalent to server stay logged and synchronized, the slower ones (i.e. Those which can't keep up) are disconnected?

That's already what happens - the players with a bad connexion disconnect. The problem arises when they reconnect: then everybody has to save and load.

QuoteA nice feature could be that an active player can purchase the assets of an inactive or bankrupted one, paying it's net worth plus debts.

This is on the to do list for Experimental...
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.

Fabio

Why also load? Wouldn't it be enough to save on server, and pause everyone till the newly joined player has loaded?

jamespetts

I suspect that it's because loading makes sure that each client is in exactly the same state, as certain algorithms are run on loading that conceivably might change a relevant state. I don't think that not loading would speed things up, however, as the client would still be paused for just as long as the loading took place. What might be better would be for loading/saving to take place in a separate thread so that a player can browse the map (without changing it, and with it in a paused state) whilst loading/saving takes place, but I suspect that that'd be a lot of work.
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.

Ters

Moving the saving and/or loading to a different thread should be relatively easy. But during loading, data will be in an inconsistent and possibly illegal state, so you wouldn't be able to draw it without risking crashing. Though it could be possible to load into a new map while the old one is being displayed and do a quick swap, then delete the old. I don't know if Simutrans does something like this already, or if game data isn't fully contained in a single object (including private members) so that there can't be more than one.

Locking down all the tools might be a problem, though.

jamespetts

Quote from: Ters on August 11, 2012, 03:11:28 PM
Locking down all the tools might be a problem, though.

Could this not be done at the point at which the command is transmitted over the network? It would be a centralised place to disable all such commands in that case.
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.

kierongreen

There can be more than one game world active at once in theory. Save can partially run in a separate thread at the moment (witness how autosave doesn't completely freeze the map for example).

Dwachs

Quote from: kierongreen on August 11, 2012, 04:04:35 PM
There can be more than one game world active at once in theory.
There is a lot of static data in the code, which cannot be used for two different game world. For instance all the quickstone_tpl, which take care of halt, convoy, line handles.
Parsley, sage, rosemary, and maggikraut.