We plan to have MP in the upcoming release, so we think it is better to have some information on what we have and have not achieved.
1. Server and Client: any one can start a server and tell other people to join in (by giving them the IP and port number). However, you may need to know a bit of port forwarding if you are hiding behind a router. Client can join the session at any time, and can choose to leave at any time. A stand alone code running on Linux and Windows server (aimed as public server) has been developed and will be released later.
2. Player limits: no pre-set limit of how many players, it all depends on the connection and server computer. As you have seen in the screen shots, we tested it with 4 instances.
3. Route limits: no limit on which route to run. We only tested it on the default routes (and a limit number of others, such as Surf Liner), so it may not load your route (hopefully not the case). Client joining should know which route the server plays, and choose it accordingly, otherwise will be kicked out.
4. Trains: any train should be fine. However, make sure others have the .eng, .s etc. of your trains. There is no in-game checking, so missing trains will be missing. The game can tolerate that to an extend.
5. Paths: we expect the server to have the path you choose, so signals can be correctly set. Otherwise, your train may always have red signals.
6. Dispatcher: we have an overview map (called dispatcher viewer) showing all trains (player-controlled, static, AI), as well as track lines (with switches and signales) and siding/platforms. We have not added controls in, so sorry you cannot throw switch using this window (yet).
7. In-game communication: no such thing implemented, please use other tools to communicate (like teamspeak, skype, etc.)
8. Train moving: trains are moved in all players' screen, locations are updated every 2 seconds. During two updates, trains move using a predicted speed. So you may see remote trains suddenly move back/forward a bit as the system tries to synchronize. We tested it using a server in China and clients in America, and found this scheme works reasonably well. Just do not panic when you see trains jumped.
9. AI: yes, AIs are included if the server starts with an activity. Clients join with their own trains. We have not added the capability to allow a user choose to control an AI train.
10. Signals and Switches: the server has absolute power so all clients will see the same signals (synchronized every 10 seconds). Players can throw switch and hit tab to request permission, as done in the single mode. However, you may still see unnecessary red signals, so use the dispatcher viewer window to judge if you want to proceed. Also, as switch is synchronized, trains may still have a very small chance not be displayed correctly if they happen to cross switches.
11. Coupling/uncoupling: trains can be coupled and uncoupled, even between player trains. Again, coupling is decided by the server, so make sure you move the train slowly before coupling to ensure server has the correct position of your train. When two players coupled, the one moves during the coupling will be declared controller, the other will be helper. We have not added the functions to allow them control trains separately, so once coupled, the helper loose the control. You can press shift-E to become the controller. You may see weird things if you couple and decouple the same trains many times; to avoid this, make sure the train is stopped before uncouple.
12. Events: you can see other players turn on lights, raise/drop pantos, horn, bell, wipe. However, you will not see the light cone of other players as in OR only one train has the cone.
13. Watch others: you can click Alt-9 to see other trains (include other players). If that train is far away, your screen may turn blank for a while as OR is trying to grab the files from your disk. Also, you can only see your own cab. Controlling other trains have not been included, although we have tested it with positive news. Hopefully it will be in the later version. Hit Alt-9 again you will see the next train (in term of distance to you). You can hit 9 to go back to your own train.
14. Status: brief information about how many players and how far they are from you is displayed on the left side of the screen. Hit F5 several times if you do not see that information.
15. Security: no check, so run it at your own risk :-) The code itself checks the incoming message to see if it fits the defined protocol, and rejects it if not. The code is written in C#, and it is open source, so very difficult to prevent someone who wants to play bad. However, as there is no system calls, no money involved, no password exchanged, the risk of being hacked is relatively small. The best practice is to change port every time you start the server, or only invite your friend to join.
16. Connection speed: we only tested it with broadband, so we do not know the performance on low-speed connection. The server send train locations (only moving trains) every 1 second, and switch/signal information every 10 seconds, hopefully the bandwidth requirement is small.
So, we have achieved a lot, but there are missing things and bugs for sure, but hopefully it can allow you try MP and decide if you like the experience.
Before starting the implementation, the OR team had a debate on what are the usefulness of MP, and when it is fun. Well, after 9 months of coding and testing, we may be the most experienced train sim multiplayers in the world, and our words are "it can be addictive".