Skip to content

MPFever 0.5.1

Choose a tag to compare

@dkdknight dkdknight released this 25 Oct 07:11
· 242 commits to main since this release
0.5.1
767e677

A new MPFever window, companies grow up, savegames travel light, and a big round of desync fixes. MPFever has an icon in the game's bottom bar and a window with tabs, several players can share a company, companies can go bankrupt and be auctioned, tracks, stations and depots are open to the others by default (or private, or tolled), and a resynchronisation now sends only what changed in the savegame. This version also fixes the problems found in the long sessions of kingplay98 and theop.

MPFever is still in active development: back up your savegames.

Two archives

  • MPFever-0.5.1.zip: for players.
  • MPFever-0.5.1-server.zip: the same, plus what a dedicated server needs (start-server.bat, SERVER.txt).

MPFever 0.3.15 and later update themselves to 0.5.1 when the game closes. Every player needs the same version.

New: the MPFever window

  • An icon in the game's bottom bar, left of Earnings: green when the games are in sync, yellow during a resynchronisation or while a player joins, red when something is wrong (link lost, games out of sync), with the number of unread chat messages. A click opens or closes the window.
  • The window opens by itself at the start of a session and after each resynchronisation. Closed by the player, it stays closed for the session.
  • Tabs: Session, Chat, Company and Rules (only with one company per player), Settings. Nothing goes out of the window any more.
  • The host can resynchronise everybody from the Session tab.

New: companies (« one company per player »)

  • Several players in one company. In the MPFever window, a player asks to join another company (its chief accepts or refuses), leaves its company (and starts one of its own), and a chief can offer to merge its company into another one (the other chief accepts): assets, money, loans and players all go to that company.
  • Bankruptcy. A company whose money stays below zero for the months the host chose in the lobby (3, 6, 12 or 24, or never; 12 by default) goes bankrupt. Its lines (with their vehicles), stations and depots are auctioned to the other companies, one lot after the other, with a reserve price; what nobody buys is demolished. Its players start again with a new company. The chat tells everything as it happens.
  • Rules for tracks, stations and depots, open by default. In the Rules tab, any player of a company chooses for its tracks, its stations and stops, and its depots: open (the default: the others use them for free), private, or a toll (per passage, per stop, per vehicle bought or sent there). A station's or depot's own setting comes first. Settings already saved are kept.
  • Real expenses. Every player sees what a build really cost its builder, in the build's own line of the finances (roads, tracks, stations, bulldozer), no longer under « Other ».
  • Shared stations' fees and tolls in the finances: an upkeep for the company that pays, a revenue for the company that earns.

New: savegames and mods

  • Resynchronisations send only the differences with the previous savegame (about 19 MB instead of 162 MB), and the savegame goes to each player by itself, in binary parts.
  • Copy the host's savegame by hand before joining (a slow connection, Steam's limited rate): the lobby recognises it and downloads nothing.
  • Missing mods are installed by themselves when joining, from the game's Mod Hub (mod.io, Steam Workshop). A local mod of the host can be sent from its PC, after both players agree.
  • Personal mods: a mod that only changes its player's interface no longer needs to be installed by everybody.
  • What the others are building shows on the ground before they click, in their company's colour.
  • Bus stops on another company's road or bridge can now be placed.

Fixes (from the friends' session of 24 October and the tests of the 25th)

  • The bulldozer on a tree of a forest made the games drift apart: the group of trees stayed on the other games. It is now removed on every game.
  • A bus stop on a town street made the other games reshape the street and demolish houses there when the street's ends were slightly off.
  • A bus stop on a bridge or in a tunnel reshaped the ground around the bridge on the other games (another player saw extra stops, then a resynchronisation). It is now replayed as the stop tool's own build.
  • Signals placed again by a track build (a catenary upgrade, the Auto Signals mod) got other numbers on the other games.
  • A player who had joined another company found itself in a new company after a resynchronisation.
  • Two players announced at the start of a session could get different company numbers on each game.
  • The other companies' open tracks could never be used, and no track toll was ever paid.
  • A headquarters built during a resynchronisation was built twice on the loading game, then a crash.
  • A crash right after loading a resynchronisation, and MPFever reconnecting after its game had closed.
  • The lobby's Start button went out of the page with many players.
  • Every build now carries its town statistics: a game whose towns would count it differently resynchronises at once instead of drifting for minutes.
  • Game build 40425 is known, and the Mod Hub's network error of issue #83 is now reported.

Fixes (from kingplay98's and theop's first session)

  • A station on one game only. After builds from a window that no game could replay during a pause, a player's next build was never sent to the others.
  • Two players building during a pause had their builds applied in a different order on each game. The host now gives each paused build its turn, and every game follows it.
  • Houses bulldozed by a player stayed on the other games.
  • Warehouse goods (Drive-in Warehouses mod) could not be changed in multiplayer: the change was refused on every game.
  • A town marketing campaign cost nothing.
  • Signals placed again after a track build arrived one by one on the other games: the checks saw them half placed and reloaded everybody.
  • A crash of every game a moment after a resynchronisation (« count <= cap »): the host's savegame was taken while another player's build was being applied. The savegame now waits for it.
  • The loading bar came and went while a player received the host's game, and build previews were never sent.
  • Closing the game normally was reported as a crash.

New: the same mathematics on every Windows

Windows' mathematical functions (sin, exp, pow...) give slightly different results from one Windows version to another (Windows 11 22621 and 26100, for example). Every game now uses MPFever's own functions, the same on every PC, so two players on two Windows compute the same thing.

Checked

  • Two games on one PC, each fix tested twice: the problem reproduced the old way (out of sync), then in sync with this version. Paused builds by both players at once, houses bulldozed, a station edit sent from a window, signals placed again at x4.
  • 25 minutes at x4 on a large map, with MPFever's mathematics on both games: in sync. The same with one game told it has 12 processors and the other 32: in sync.
  • MPFever's mathematical functions compared with Windows' over millions of values: at most one unit in the last digit, and exactly the same wherever Windows' result is exact.
  • Companies: join, leave, merge, bankruptcy with an auction, tolls: in sync. Joining or merging, then a resynchronisation: the player stays in its company.
  • The fixes of 25 October, each on two games: trees bulldozed out of a forest (one tree, the last tree, a whole group, on a large map and on the friends' world), stops on bridges, stops on town streets slightly off, signals placed again, station rules while another company's line serves the station, and a regression round of roads, upgrades, stops, signals, junctions and node moves: in sync, with the same entity numbers on both games.

License

From this version on, MPFever is under the GNU General Public License v3 (GPL-3.0-or-later): you may use, study, change and share it, and a project that includes MPFever's code must be shared under the same license. Versions up to 0.4.5 were published under the MIT License and stay so (see NOTICE.txt).

Known limitations

  • The towns can still drift apart between two PCs over time; a resynchronisation (now much shorter) corrects it. The cause is still being searched.
  • Tested with: game builds 40420, 40423 and 40425, Steam, Windows only.

Thanks to kingplay98, theop and everyone who sent reports, logs and savegames!

If you enjoy MPFever, you can support it on Ko-fi, or leave a comment or a like on Nexus.

Files:

  • MPFever-0.5.1.zip, SHA-256 D11804F2DE1472415877C4DBCBC8EA37DBB16EDB8A82D9812749312CE4B42566
  • MPFever-0.5.1-server.zip, SHA-256 52443320FE8990CB2355BAB5230474027970424AF4445C8A50CDE4332F7B1C4F