Multiplayer Information
Balanced Annihilation (BA) is based on the game mechanics of Total Annihilation (TA), but implemented via the Spring engine. Its a mod for the Spring engine, which is used by a variety of game mods. The tech tree is somewhat different and the game play was improved. Another game based on the TA game mechanics is Tech Annihilation.
c:\users\<username>\Documents\My Games\spring\games
(or create it, if not present) and place the BA mod there. This still will leave you without any maps.unitsync.dll
inside your Spring folder.c:\users\<username>\Documents\My Games\spring\
. (Eventually there should be a folder […]\spring\maps
present). The Linux paths are similar: <homefolder>/.spring/[…]
.Usually, Spring and SpringLobby are available from the Linux packaging repository or your Linux distribution. But it is not uncommon, that the available versions are (sometimes quite) outdated. So you might find some other packing sources with newer version to add, to keep up to date. Of course it is a question of personal preferences, what you think about adding external sources to your packaging sources. In any case, after that, it is a lot more comfortable to get the latest versions.
You might as well place Spring with any version of your liking in your user space. You get the required portable packages here. SpringLobby is also affected by a tendency of being outdated in official distributions repositories. If you still want to have the latest SpringLobby version available, have a look at section Compiling SpringLobby. It is however, not as important to have the latest SpringLobby version, as is with Spring and the game mods themselves. This includes BA. As the mods are always placed in the user space, you need not worry about this.
As the use of Spring and in turn BA is a lot easier with a Lobby, but not everybody wants to host his/her games on the official lobby servers, you might be interested in running a private version of the lobby server. It uses the so-called »Uberserver«. The following steps are tested/described for Ubuntu Linux, but in principle should work very similar at any Debian derived distribution and be similar on other distributions.
*.zip
file (not just server.py
!) or use git clone
, to get the files directly from the git repository.sudo apt-get install python3-pip geoip-database python-geoip libgeoip-dev
sudo pip3 install Twisted sqlalchemy pyopenssl service_identity GeoIP
./server.py --latestspringversion 104.0
. You might want to place this in an Init script or a Systemd Service. There are some other starting options. This is what the command line help can tell you:
The version number for --latestspringversion
should always be set to the very latest version of Spring.
Multiplayer matches can be created rather easily via the lobby servers. The manual way is quite a hassle in comparison. The mobilen Infanterie also runs a lobby server, see status page. To join a lobby server, use Server → Connect… and you will get to the login screen. Enter the server address of the mobile Infanterie (www.mobile-infanterie.de
)and the standard port 8200
. If you are logging in for the first time, you will have to create a user account, first. It does not require any personal data. Only a username and a password. The registration is accessible via Tab Register. After creating a user account you can join that lobby server via tab Login).
You can open up new matches via the Battle-Room tab or join an existing match via tab Battlelist. If you are playing actually really online, it might be useful to tick the option Hole Punching in the section NAT traversal if you cannot or do not want to open ports on your router. This may not be a good idea, if you are actually playing on LAN. If you tick the option, you will not be able to connect to the host.
In general, there is one confusing detail about creating new matches: There is a big difference between “Team” and “Ally”. Ally is, what other games usually refer as “team”, players allied with each other, controlling their own faction, meaning units, buildings ans ressources. In BA, that is a bit different, as there can be more than just one player inside one team, and teams can be allied to each other (or not). But all players inside one team share the same resources. In essence, there are two players controlling the very same faction. So if you are only interested in vanilla play, one player for each team, never place two players in the same team, but place friendly players in the same Ally. If you try to place some players in the same team, BA/Spring has a tendency of not starting properly.
There is some selection possible, what bots you want to have in your match. They differ a bit in their play style. Some of them are not useful at for BA. E. g., some simply don't do anything at all, others crash the game altogether. Here is a short overview of how the different bots behave:
(These AI tests were done with Spring 100.00 and BA 9.07.)
There are precompiled binaries for SpringLobby for Windows, so actually no need to compile SpringLobby for Windows yourself. For Linux that's a different matter, as SpringLobby is usually outdated on the distributions repository. So it might be in order, to compile SpringLobby on your system for yourself. Here is a description on how to do that on Ubuntu (and probably any other Debian based distribution):
INSTALL
:cmake .
configures your source package, so that the next step is executed in a specifically fitting way for your system. (Hint: CMake 3.1 or newer ist required (SpringLobby Version 0.264).)make
runs the actual compiling.sudo make install
installs SpringLobby. (This step might not require super user permissions, if the installation path was set to a destination in your user space via ccmake .
)
It should work like this or very similar on any other current Linux distribution. For Ubuntu 17.04 the following Packages are required (if not present already): build-essential
, cmake
, libwxgtk3.0-dev
, libcurl4-nss-dev
, zlib1g-dev
, libpng-dev
, libalure-dev
and libboost-all-dev
. Or in one command:
sudo apt-get install build-essential cmake libwxgtk3.0-dev libcurl4-nss-dev zlib1g-dev libpng-dev libalure-dev libboost-all-dev