Multiplayer games

From TTWiki
Jump to navigationJump to search

One of the more fun aspects of TTD is playing a multiplayer game against an actual human opponent, which is a nice change from the brain-damaged computer players. Now the question is, how does this work with TTDPatch?

For the most part, TTDPatch works well in network games if you pay attention to these issues:

  • Both versions of TTDPatch must be identical.
  • Both configurations of TTDPatch must be identical
  • Some options of TTDPatch may be unsafe in multiplayer games
  • Multiplayer mode is very unstable under Windows 2000/XP

In practice, it's easiest to set up TTDPatch on one of the computers, and then copy both the ttdpatch.exe and ttdpatch.cfg files (and also newgrf.cfg and all the new .grf files, if you use them) to the other computer without changing them. If both copies aren't exactly the same, it's very likely that the multiplayer game will become desynchronised, and basically split into two separate games that are not linked anymore (and playing a desynchronised game will very likely lead to a crash). There are few switches (listed below) that may work even if they're not set identically on each computer, though.

Note that under Windows 2000/XP, the game may become desynchronized much faster than under other operating systems. The cause of this is not clear, and therefore it is difficult to fix. However, the Tools page on the TTDPatch site has a program called sv2flip which may help in resynchronizing savegames.

Additionally, it is impossible to use most of the patches that require the Ctrl key, because this key cannot be transmitted via the networking protocol TTD uses, and therefore two different things would happen on the two computers. Therefore TTDPatch should not even recognize the Ctrl key in multiplayer mode (and if it does, it's a bug). The only exception to this is using the Ctrl key for selecting the station size when placing a new station. As of TTDPatch 2.0.1 alpha 10 VC2 and later, the Ctrl key should work as in single player.

Here is tentative list of which switches do, and which do not work in multiplayer, supplied by Marcin Grzegorczyk. It is based mostly on a crude analysis of the internal working of TTD's multiplayer mode (and a few tests), but since I've never tried it myself I can't vouch for the correctness. Peruse at your own risk...

Switches that do not affect the way TTD works, and are therefore 100% safe:
forcerebuildovl, verbose
Switches that might work right even if they're set differently on each machine (they only apply to the local player):
diskmenu, enhancegui, errorpopuptime, keepsmallairports, morecurrencies, morehotkeys, morenews, moretownstats, moveerrorpopup, showfulldate, showspeed, signalsontrafficside
Switches that should work well, as long as they're set identically on both machines:
autorenew, bribe, bridgespeedlimits, buildoncoasts, buildonslopes, cheatscost, curves, disasters, electrifiedrailway, enginespersist, eternalgame, extradynamite, forceautorenew, fullloadany, generalfixes, gradualloading, largertowns, largestations, loadallgraphics, loadtime, longbridges, lowmemory, mammothtrains, miscmods, moreairports, morevehicles, mountains, newagerating, newplanes, newrvcrash, newrvs, newships, newtrains, noinflation, nonstop, officefood, planecrashcontrol, planes, planespeed, presignals, roadvehs, rvqueueing, saveoptionaldata, selectgoods, semaphores, servint, ships, signal1waittime, signal2waittime, spread, stableindustry, startyear, tgr*, towngrowth*, townminpopulation*, trains, unifiedmaglev, win2k
Switches that may or may not work right, it's difficult to tell since they're complicated:
aiboost, experimentalfeatures, extpresignals, feederservice, gotodepot, manualconvert, morebuildoptions, multihead, plantmanytrees, signcheats, tracktypecostdiff, trainrefit
Switches that do not work (because of the lack of the Ctrl key) and should have no effect (Does not apply to 2.0.1 alpha 10 VCs 2 and later):
debtmax, fastwagonsell
Switches that do not currently work, but might be fixed someday:
subsidiaries (although "Cht: PlayerID" should work fine)

Marcin was not able to test the above thoroughly, some switches may still cause crashes or loss of synchronization. Also, some switches offer multiple features, of which one may work right while another doesn't. All feedback welcome, please submit corrections or additions if you can!

The Ctrl key should work correctly in 2.0.1 alpha 10 and later (i.e. it should do the same as in single player). If it causes loss of synch or doesn't work at all, please report it as a bug.

Also from 2.0.1 alpha 10 VCs 2, you can have more than 2 players by enabling the EnhanceMultiplayer switch.