Repository navigation
MPFever 0.5.6
Fewer reloads: every player's actions in a pause now happen in the same order on every game, and builds no longer land late when the game stalls on a big map.
MPFever is still in active development: back up your savegames.
Two archives
MPFever-0.5.6.zip: for players.MPFever-0.5.6-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.6 when the game closes. Every player needs the same version.
Fixes
- Vehicles going apart after a building session in a pause, then a reload. In a pause, each player's builds already took turns, so that every game built them in the same order. Other actions did not: editing a line, buying a vehicle, renaming. Each game applied its own at once and the other players' when they arrived. In one of our testers' sessions, a line edited on the host went just before a bus stop of the other player there, and just after it on that player's game. The stop then took other free ids on each game, every vehicle bought afterwards got another number (72528 on one game, 62302 on the other), and the games reloaded 3 minutes later. Every action made in a pause now takes its turn with the builds, and every game applies them all in one order. (0.5.5 listed this as a problem of the bus stop replay: it was the order.)
- Builds landing late after the game stalled. On a big map, some builds (a lane modifier, industry extensions) make the simulation stand still for 10 to 13 seconds. A game waiting for another player's build took that silence for a lost request and asked for its steps again, then ran 15 steps instead of 3: the build landed 4 to 8 steps late, the towns went apart and the games reloaded. This caused 2 reloads in one evening of our testers. The request is now asked again only when the game is proven idle.
- Reloads during long building sessions in a pause. A check taken in a pause could compare a game that had already built the last stop with a game that had not yet. A player building on and on kept that difference check after check, until a reload. Games that are not at the same point of the pause are no longer compared, and the host's money taken at another point no longer "corrects" anyone.
- A replayed build landing one step late on one game, without any warning. A game could send another player's build to its engine while the engine was still finishing a step: the build then landed one step later there than everywhere else, and the games slowly drifted apart. In a replay of our testers' session, 34 builds out of 147 were sent that way (most of them still landed on time, by luck). A build now waits until the engine is seen standing still.
- A crash when selling several vehicles at once. If one of the vehicles sold did not exist as a vehicle on another player's game, that game crashed. Such a command is now skipped on that game and reported, like a missing vehicle already was.
Checked
- The order of actions in a pause: two games on one PC, the host buying vehicles while the client places bus stops, all in one pause. Without the fix, the same vehicle got number 33554 on one game and 34110 on the other. With it, every vehicle has the same number on both games, three runs in a row, in sync.
- A stalled game: the simulation made to stand still 12 seconds in the middle of a build, three times. With the fix, every build lands at its exact time, in sync. Without it, builds land up to 28 steps late and the games go out of sync.
- Our testers' whole evening replayed: the actions of their 2-hour session (about 600) replayed on two games on one PC, from their savegame (with their 14 mods): in sync from start to end, 37 checks identical, including at the very moments of their 5 reloads. In their pause of 22:08, the vehicles bought got exactly the numbers the host had got that evening.
Known issues
- Two players changing the same place within about two seconds can still lead to a reload. A player's build is computed when they click, then waits about two seconds for its turn. If another player's build changes the ground right there in the meantime, the first build no longer fits the ground the others see. MPFever notices it and reloads the games. It happened twice in our testers' 2-hour session, both times during a burst of 19 industry extensions next to a railway being demolished.
- Disabling MPFever while still in a lobby, then loading a savegame, still blocks building: leave the lobby first.
If you enjoy MPFever, you can support it on Ko-fi, or leave a comment or a like on Nexus.
Files:
MPFever-0.5.6.zip, SHA-2561E60FC15505DABD6C40E837A9C2DEB85EB9CA4705BB2B7E31BE99F39D817EE68MPFever-0.5.6-server.zip, SHA-25602CC1A710367ACC9F5109EA0056D0F58E317E97808E2CE092F2030FB6B651AC9