Spring MT: Difference between revisions

From Spring
Jump to navigationJump to search
Zerver (talk | contribs)
Gajop (talk | contribs)
adding fuel to the fire...
Line 20: Line 20:
=== On which servers can I play Spring MT? ===
=== On which servers can I play Spring MT? ===
Look for servers that have "Spring MT" or "MT" in the description. These servers may have protected access and will send you a chat message with instructions how to join.
Look for servers that have "Spring MT" or "MT" in the description. These servers may have protected access and will send you a chat message with instructions how to join.
=== Why is this unofficial? ===
The code base is somewhat complex, making it hard to maintain for developers who have only rudimentary multithreading skills.


=== What is the downside? ===
=== What is the downside? ===

Revision as of 17:24, 21 April 2013

Spring MT

Unofficial 94.11 release, compatible with Spring 94.1

What is Spring MT?

Spring MT is an independent engine that uses multithreaded asynchronous simulation (MT ASIM) to a much higher degree than the official Spring release. It also uses asynchronous pathfinding (APATH). This typically translates into significantly higher performance, depending on your hardware.

What hardware do I need?

You need three physical cores to get any real benefit. A quad core or better is recommended.

How much faster is it?

Typically more than 100% faster with a quad core. Benchmarked using Core I7 2600K, BA7.72, DeltaSiegeDry, Default pathfinder, 4x "give all".

How can it be faster?

The simulation will run on several CPU cores, and the pathfinder may also run on a separate core.

How does Spring / Spring MT play together?

Spring MT includes Spring, and uses automatic engine type detection to make it sync-compatible.

On which servers can I play Spring MT?

Look for servers that have "Spring MT" or "MT" in the description. These servers may have protected access and will send you a chat message with instructions how to join.

What is the downside?

The simulation may work slightly differently, possibly producing some negative effects. There is an increased risk of threading bugs that may cause a desync. The Default pathfinder is recommended because the QTPFS pathfinder tends to kill the performance of Spring MT.

Should I use MT even if I don't want to play on MT servers?

You can give it a try, the included Spring 94.11 (non-MT) version also has automatic CPU affinity setup that may give you some more performance.

How do I install it?

Note: After installation, join lobby chat room SpringMT9411 to get access to MT autohosts.

Complete 94.11 MT + 94.11

Windows installer
Windows portable

Executables only
Unzip to the install folder of the official release. Linux and OSX may require a portable installation.

94.11 MT (ASIM APATH GML)
Windows
Linux32
Linux64
OSX64
94.11 (ASIM GML OMP)
Windows
Linux32
Linux64
OSX64

Source code

Github 94.11 MT
Github 94.11

How do I install it on my autohost?

Dedicated server

Windows
Linux32
Linux64
OSX64

In spads.conf set masterChannel:SpringMT9411

In spads.pl, search for "sub cbJoinBattleRequest" and insert these lines of code immediately after the second line (the one that starts with "my"):

  if (!exists $lobby->{channels}->{$masterChannel} || 
      !exists $lobby->{channels}->{$masterChannel}->{$user}) {
    my $mtmsg = "This server requires Spring MT 94.11. ".
      "Install http://springrts.com/wiki/Spring_MT";
    sayPrivate($user,$mtmsg);
    queueLobbyCommand(['JOINBATTLEDENY',$user,$mtmsg]);
    return;
  }

Consider disabling spads auto update to avoid the changes being overwritten.