Multiplayer

From Mashinky
Jump to: navigation, search



Disclaimer This is experimental feature available only at Experimental branch of the game. The feature is under constant development and details might change. This is up to date for version 0.60.324. Please check release notes at Discord for updates.
WORK IN PROGRESS


Features

  • up to 8 players
  • Cooperative, competitive and anything in between
  • Random & Custom (premade) maps
  • Mod support
  • peer 2 peer with randevouz server
  • All Mashinky goodies :-)

Technical details

Implementation

The multiplayer is implemented as peer-to-peer with help of Steam API. It means that one of the players is a host (server), which performs most of the game mechanics calculations. The other players are connected to the host as clients. Clients basically perform just graphics rendering. To make life easier, Mashinky provides a rendezvous server, which simplifies connecting with other people

Currently, there is no way to run the host standalone (headless) with all players connected as clients.

Game saving

The game can be saved as usual, including autosave. It means that the game can be restarted from any save point. If no instance of the game is running, the first started instance will become the host, and other clients can reconnect to the game from the Rendezvous server browser. Otherwise separate and parallel instance of the game is spawned.

Do not hit the "Continue last game" button. This will load your last local save, and it will not connect you to the running host.

Creating the game

To start a game:

  1. Click "New game" in game menu
  2. Select map and game properties as usual
  3. Double check, that "Multiplayer" is selected in Multiplayer tab (TODO: Add screenshot)
  4. Customize Multiplayer settings
    • Extension mode - Enable or disable the mods (see #Mods)
    • Players default relation - Initial setting of company access rights. This can be changed during the game (see #Company rights management)
  5. (optional, but advised) Set a password by clicking the Key (TODO: Add screenshot)

Note: It is actually easier to start Multiplayer game, than Single player, as the MP option is default

Common game settings

These settings are selected upon the new game start, are the same for all the players in the game and cannot be individually changed:

  • Automatic versus manual signals
  • Magic flip
  • One depot
  • Vehicle aging
  • Running costs

Individual game settings

These settings can be set individually by each player:

  • Signal type on the first click (One-way/Both-way)

Joining the game

To connect the existing game:

  1. Click "Join game" in main menu
  2. Find the game in the Game browser. You can find the game local (LAN), in the Internet or by your Steam friend
  3. Enter the password, if it was set by the host

Players & Companies

Players and companies are independet entities. The player can have its own company, join an existing company or swap between companies during the game.

If multiple players connect to one company, they all have unlimited access to the company's resources. There are various ways of interaction between companies.

Company rights management

The access to company infrastructure can be done at multiple levels: Track sharing, infrastructure editing. Both is managed from the Company list window

Track sharing

To enable track sharing, set a non-zero fee for using. The price is for each 50 squares used. Currently, the value is maxed to 1 green token, but it is planned to be more or less unlimited. Borders between track owners are marked by a border stone. If you manually drive a train past the border stone to forbidden track, the train will crash.

Station sharing

Station sharing is also possible. But note, that if cargo is unloaded in the station and processed by an industry, the proceedings go to the station owner, regardless whose train brought the cargo.

Infrastructure editing

You can enable a different company to edit your infrastructure: add items, remove items and TODO: there are 3 buttons... :-D

Owner-only signal

A special type of signal is available, which allows only trains of the track owner to pass the signal.

Original announcement

This is the original announcement of the Multiplayer by Jan:

Connection & Server

  • You can play as a group of up to 8 players on the same map (including custom maps) now! Just enable multiplayer when starting new game. This will start server and anyone can join you.
  • The setup stays in the savefile, so next time you load this game, the server will be online again. Each player will autoconnect to their company when they join again.
  • Connection is peer 2 peer, but you can host the game without public IP. I've implemented also rendezvous server for this, so hopefully it will handle all your requests smoothly.
  • You can also protect your server by password.
  • Chat window is accessible by ~ or icon in the toolbar. You can easily add a map location or object into your messages by clicking on it when writing a message. Everyone can then easily click on these hypertext links.
  • See other player's cursor on the map or even special "beam" when switched to first person mode (walking, driving, using building mounted camera positions etc.). Quite funny feature I would say, I like it a lot 🙂
  • Each new player or company is automatically identified by creator's steam name. No more default names!
  • Server browser. It is not filtering games atm, only (for example) by games of your friends.
  • New options when starting new game (if to start server too, if mods allowed, default setup for new players cooperative / competitive)
  • You have the possibility to send invitation to your friends. It will appear in their steam chat window.
  • All scripts run on server side to allow any script interaction or quest sharing
  • Some scripts are not compatible with distant processing (on server side) yet, so these are removed in MP (some camera control tutorials for instance)
  • Added the possibility to connect directly to the server via steam friends list
  • Mods are enabled/disabled/downloaded according to the server you are connecting to. This does not change your future single player game.
  • Clients can run faster now. Some events are no more simulated on the client side, but only on server side to release some workload from clients, or to ensure the consistency and also to prevent any client-side cheats or local mods, so nobody gains unfair advantage over other players.
  • Smoothing vehicles and player's cursors movement when server sends update

Cooperation x Competition

  • I've added rating into stations cargo distribution. Now (in MP), it is important to pick up your cargo frequently to keep your station's rating high. Otherwise, the industry will prefer another station or, when your rating drops to zero, redistribute your cargo elsewhere (including to some of your other stations around).
  • Companies and players are decoupled in game logic. You can join other players in their companies or start your own. Or change it anytime while in game 😉
  • Multiple companies can cooperate on quests (some quests are shared by default). We will be changing this while in multiplayer beta testing. Maybe some more options for sharing quests can be added based on your feedback.
  • You can also protect your company by password so no one can join your company freely.
  • You can share tracks with another company. Once you share your track other company can connect by their tracks as well, so think twice before allowing them to do it 🙂
  • To prevent other company from using some of your shared tracks, you can place owner-only signal where only your trains can pass through.
  • Company rating! This score board (0-1000 points) shows how successful your company is (including detailed graphs). And what is the best result of the rating?

-> Headquarters grow according to your company rating!

  • There is also a possibility to send tokens to another player
  • Owner's overlay easily showing what assets belong to each company