MultiPlay/DedicatedServer

Last-modified: 2012-02-14 (火) 19:28:27

Dedicated Serverについて詳しく説明
参考文献:http://community.bistudio.com/wiki/ArmA:_Dedicated_Server

目次

概要

ここではArmA2のDedicated(専用)サーバの建て方を解説します。

インストール

サーバーを建てる際の推奨スペック:

  • 2GHz
  • 512MB RAM
  • 1Mbps upload bandwidth
 

OSはWindows XPかLinuxが必要です。

 

専用サーバをインストールするには2つの方法があります。

● ArmAをインストールした時、作成されたArmA.exeにコマンドラインを使いサーバを立てる事ができます。
  この方法は簡単ですが、サーバ操作をするには、光学ドライブにArmAのインストールディスクが挿入されている必要があります。
  インストールディスクを挿入しないでサーバ操作をするには専用のアプリケーションを導入する必要があります。(There are two possible ways to install the dedicated server. When you have installed the ArmA game, you can use the main executable (ArmA.exe) with the command line argument –server to start a dedicated server. While this is easy, it requires the ArmA DVD to be present in the drive during server operation and also original serial number. If you want to run a server without the DVD and serial number, you have to use the standalone dedicated server executable.)

 

最新版はDownloadsからダウンロードする事ができます。(The latest version of this executable is always available from the Downloads section.)

 

To install a standalone server

  • Install the corresponding version of the game on any machine (you will need ArmA DVD for this)
  • Add the ArmA_Server.exe file to the same directory as ArmA.exe. Copy your already installed ArmA directory on to the server.
  • Create a configuration file for your server. See server.cfg for further information.

Installing a patch on the dedicated server

To install a patched version on the dedicated server, you can either install the patch on some machine with the full game installed and then transfer the full patched game, or you can download the patch to the dedicated server, make sure there exists a registry entry on the server so that the patch can find the game location, verify the CD key, and apply the patch directly on the server.

 

The registry entry can be created by exporting a registry key HKEY_LOCAL_MACHINE\SOFTWARE\Bohemia Interactive Studio\ArmA from the machine where the game is installed. The file should look like this:

Windows Registry Editor Version 5.00

 

[HKEY_LOCAL_MACHINE\SOFTWARE\Bohemia Interactive Studio\ArmA]
"KEY"=hex:xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx
"MAIN"="C:\\Program files\\Bohemia Interactive\\ArmA"

Startup Options

Example

"ArmA_Server.exe -config=server.cfg -netlog -port=2302 -mod=hisky"

-config= <----Specifies the config file to use. See server.cfg

  • mod= <----extra command to run folder mods
  • netlog <----command to record traffic from the game server in BI format (requires 1.02 and above)
  • port= <----Port for the server to listen on.
  • world= <----start another default world
  • noland <----unknown functionality (in player mode it removes all land textures and turns it grey)
  • ranking=<filename> <----path for game stats log (new in 1.07)
  • pid=<filename> <----specifies a file to write the server's PID (process ID) to. The file is removed automatically when the server is stopped

Server Crashes

In the event of a server crash, please help BI to fix the problem by sending the crash files arma.rpt and arma.bidmap files that will be created on each crash. For the location of these files and where to send them to, see Crash Files.

Banning

To ban a user you have to know their unique online ID (called Player ID). This can be checked in the players overview screen ('P' key) during the game, or with the #userlist command. To ban a user you have to add their Player ID to file ban.txt residing in the main ARMA directory. If there is no such file there, create a new one. The format of ban.txt is a plain ASCII text list of decimal Player IDs delimited with space, tabulator or end-of-line characters.

Firewall issues

By default the Armed Assault server is reporting to Gamespy and it also uses the Gamespy server to negotiate a NAT traversal. If this does not work reliably for you (e.g. when running behind very strict firewall), you may need to open and/or forward following incoming ports:

port UDP (used for game)
port+1 UDP (used for server reporting)
port+3 UDP (used for VoN transmissions)

Following outgoing ports need to be open as well:

port UDP (used for game)
port+3 UDP (used for VoN transmissions)

Default value of port is 2302, but you may change it by -port command line argument.

Proxy issues

You may enforce proxy server used to download xml squad page etc. Using the value "proxy" in Server.cfg.

server.cfg

Introduction

This article deals with the server.cfg, the name means nothing, and can be called anything. The real name is determined by the -config command line option when launching the dedicated server. This is a configuration file which you can use to configure various game server settings such as the difficulty level, how many votes are needed, and welcome messages. Please feel free to add more information.

Server Options

ParameterDescription
passwordAdmin = "xyzxyz";Password to protect admin access.
password = "xyz";Password required to connect to server.
hostname="My Server";Servername visible in the game browser.
maxPlayers = 10;The maximum number of players that can connect to server ( seems to be out by 1 in the demo at least ). Number of mission slots override this setting.
motd[]= {"Welcome to my server.","Hosted in the net."};Two lines welcome message. Comma is the 'new line' separator.
 
Server BehaviorDescription
voteThreshold = 0.33;Percentage of votes needed to confirm a vote. 33 percent in this example.
voteMissionPlayers = 3;Start mission-voting when X numberOfPlayers connect. 3 players in this example.
reportingIP="<>";Private server - no reporting. Use "armedass.master.gamespy.com" to report to the gamespy master server (ArmA I). ArmA II: "arma2pc.master.gamespy.com"
kickduplicate = 1;Do not allow duplicate game ids. Second player with an existing ID will be kicked automatically. 1 means active, 0 disabled.
checkfiles[]={"dta\bin.pbo","a10\config.bin"};Outdated - replaced by verifySignatures! Only use if you really understand what it does.
List of files to check for integrity with crc check. Possible to check pbo files or files inside pbos. Beware checking large files takes serious processing on the server and can cause various issues.
equalModRequired = 1;Outdated - replaced by verifySignatures! Only use if you really understand what it does.
Clients require the exact same modfolder naming, order and amount as the server. 1 means active, 0 disabled.
 
ArmA Only ParametersDescription
verifySignatures = 1;Enables or disables the signature verification for addons. Default = 0.
disableVoN = 1;Enables or disables the Voice over Net. Default = 0.
vonCodecQuality = 10;Sets VoN codec quality. Value range is from 1 to 10. Default = 3.
logFile = "server_console.log";Enables output of dedicated server console into textfile. Default location of log is same as crash dumps and other logs. (Local settings) Note that this does not change the location of the "net.log" file, which you enable with the -netlog command line option.
doubleIdDetected = "command";see Server Side Scripting
onUserConnected = "command";
onUserDisconnected = "command";
onHackedData = "command";
onDifferentData = "command";
onUnsignedData = "command";
regularCheck = "command";
BattlEye=1;Enables or disables the BattlEye anti-cheat engine. Default 0. - since 1.09 beta. Note that this requires specific dlls to be installed on the server and all clients joining the game
timeStampFormat="short";Set the timestamp format used on each report line in server-side RPT file. Possible values are "none" (default),"short","full".
persistent = 1;Enables or disables the persistent battlefield. Default = 0. See note below.

Enabling the persistence option will make missions that have either base or instant respawn keep on running after all players have disconnected. The other respawn types will not make a mission persistent. The kind of respawn a certain mission uses is set in its Description.ext.

Example Configuration File

//

// server.cfg

//

// comments are written with "//" in front of them.

 

// GLOBAL SETTINGS
hostname = "Fun and Test Server"; // The name of the server that shall be displayed in the public server list
password = ""; // Password for joining, eg connecting to the server
passwordAdmin = "xyz"; // Password to become server admin. When you're in Arma MP and connected to the server, type '#login xyz'
reportingIP = "armedass.master.gamespy.com"; // This is the default setting. If you change this, your server might not turn up in the public list. Leave empty for private servers
logFile = "server_console.log"; // Tells ArmA-server where the logfile should go and what it should be called

 

// WELCOME MESSAGE ("message of the day")

// It can be several lines, separated by comma

// Empty messages "" will not be displayed at all but are only for increasing the interval
motd[] = {
 "", "", "",
 "Welcome to the Testing",
 "Server Settings: Veteran, Crosshair = off, 3rdPerson = off, MapInfo = off, VoN = off, CustomFiles = 200KByte, Voting = 33%, PersistentMaps = on",
 "We are looking for fun - Join us Now !",
 "http://www.mypage.org/",
 "",
 "You should use mumble, its better than",
 "TS2 Server for recruits: mypage.org:8767"
};
motdInterval = 5; // Time interval (in seconds) between each message

 

// JOINING RULES
checkfiles[] = {}; // Outdated.
maxPlayers = 30; // Maximum amount of players. Civilians and watchers, beholder, bystanders and so on also count as player.
kickDuplicate = 1; // Each ArmA version has its own ID. If kickDuplicate is set to 1, a player will be kicked when he joins a server where another player with the same ID is playing.
verifySignatures = 1; // Verifies the players files by checking them with the .bisign signatures. Works properly from 1.08 on
equalModRequired = 0; // Outdated. If set to 1, player has to use exactly the same -mod= startup parameter as the server.

 

// VOTING
voteMissionPlayers = 1; // Tells the server how many people must connect so that it displays the mission selection screen.
voteThreshold = 0.33; // 33% or more players need to vote for something, for example an admin or a new map, to become effective

 

// INGAME SETTINGS
disableVoN = 1; // If set to 1, Voice over Net will not be available
vonCodecQuality = 0; // Quality from 1 to 10
persistent = 1; // If 1, missions still run on even after the last player disconnected.

 

// SCRIPTING ISSUES
onUserConnected = ""; // self-explaining
onUserDisconnected = "";
doubleIdDetected = "";
regularCheck = "";

 

// some ArmA specific stuff - signature verification
onUnsignedData = "kick (_this select 0)"; // unsigned data detected
onHackedData = "ban (_this select 0)"; // tampering of the signature detected
onDifferentData = ""; // data with a valid signature, but different version than the one present on server detected
BattlEye = 1; //Server to use BattlEye system

 

// MISSIONS CYCLE (see below)
class Missions {//See below.};

Performance Tuning Options

basic.cfg

Introduction

This article deals with the basic.cfg, the name means nothing, and can be called anything. The real name is determined by the -cfg command line option when launching the dedicated server. By default it's called ArmA.cfg.

 

In this configuration file you should configure your server's connectivity, mainly for performance tuning.

Performance Tuning Options

There are also some parameters that can be used to fine-tune network performance. You can add following entries to arma.cfg (the main Armed Assault configuration file)

MaxMsgSend=<limit>;
 Maximum number of messages that can be sent in one simulation cycle.
 Increasing this value can decrease lag on high upload bandwidth servers.
 Default: 128

 

MaxSizeGuaranteed=<limit>;
 Maximum size of guaranteed packet in bytes (without headers). Small messages
 are packed to larger frames. Guaranteed messages are used for non-repetitive
 events like shooting.
 Default: 512

 

MaxSizeNonguaranteed=<limit>;
 Maximum size of non-guaranteed packet in bytes (without headers).
 Non-guaranteed messages are used for repetitive updates like soldier or
 vehicle position. Increasing this value may improve bandwidth requirement,
 but it may increase lag.
 Default: 256

 

MinBandwidth=<bottom_limit>;
 Bandwidth the server is guaranteed to have (in bps). This value helps server
 to estimate bandwidth available. Increasing it to too optimistic values can
 increase lag and CPU load, as too many messages will be sent but discarded.
 Default: 131072

 

MaxBandwidth=<top_limit>;
 Bandwidth the server is guaranteed to never have. This value helps the server
 to estimate bandwidth available.

 

MinErrorToSend=<limit>;
 Minimal error to send updates across network. Using a smaller value can make
 units observed by binoculars or sniper rifle to move smoother.
 Default: 0.01

 

MaxCustomFileSize=<size_in_bits>;
 Users with custom face or custom sound larger than this size are kicked when
 trying to connect.

 

Note
The greatest level of optimization can be achieved by setting the MaxMsgSend
and MinBandwidth parameters. For a server with 1024 kbps we recommend the
following values:
 MaxMsgSend = 256;
 MinBandwidth = 768000;

While connected to the dedicated server, you can use the admin command

#monitor

to monitor server resource usage. (You have to be logged in as or voted as game admin to do this.) The server never runs at more than 50 fps. When running slower, it always uses all available CPU processing power to maintain the smoothest possible gameplay. When running at less than 15 fps, you can consider the server overloaded – the mission currently played is probably too complex for given server. If you see the server is not using bandwidth that it could use, you can try increasing values MaxMsgSend and MinBandwidth.

Example Configuration File

// These options are created by defalut
language="English";
adapter=-1;
3D_Performance=1.000000;
Resolution_W=800;
Resolution_H=600;
Resolution_Bpp=32;

 

// These options are important for performance tuning

 

MinBandwidth = 320000; //* Bandwidth the server is guaranteed to have (in bps). This value helps server to estimate bandwidth available. Increasing it to too optimistic values can increase lag and CPU load, as too many messages will be sent but discarded. Default: 131072
MaxBandwidth = 10000000000; //Bandwidth the server is guaranteed to never have. This value helps the server to estimate bandwidth available.

 

MaxMsgSend = 256; //* Maximum number of messages that can be sent in one simulation cycle. Increasing this value can decrease lag on high upload bandwidth servers. Default: 128
MaxSizeGuaranteed = 1024; //Maximum size of guaranteed packet in bytes (without headers). Small messages are packed to larger frames. Guaranteed messages are used for non-repetitive events like shooting. Default: 512
MaxSizeNonguaranteed = 64; //Maximum size of non-guaranteed packet in bytes (without headers). Non-guaranteed messages are used for repetitive updates like soldier or vehicle position. Increasing this value may improve bandwidth requirement, but it may increase lag. Default: 256

 

MinErrorToSend = 0.005; //Minimal error to send updates across network. Using a smaller value can make units observed by binoculars or sniper rifle to move smoother. Default: 0.01

 

MaxCustomFileSize = 1600000; //Users with custom face or custom sound larger than this size are kicked when trying to connect.

Running Server as a Service

You may also consider running the ArmA server as a service, and enabling automatic restart in case of crash. In this case, you may want to disable DrWatson crash monitoring utility on your computer, as it often prevents ArmA server to shutdown properly (by displaying a message box that requires an operator to confirm application termination).

 

A HowTo for user-defined services can be found at http://support.microsoft.com/kb/137890/en-us.

Linux

ARMA2オフィシャルサイトからダウンロード可能。
ARMA2-Linux Standalone Server 1.07.71852(Uploaded:2010.07.01 Modified:2010.07.14)
ARMA2:OA-Linux Standalone Server 1.52.71900(Uploaded:2010.07.02)

Downloads

Arma 2

  • Windows
    Beta: v1.02.58055 is available from the Arma2.com, ArmA2Server_1_02BETA.zip (4.2MB, Released: June 19th 2009)
    Official: v1.03.58659 is available from Arma2.com, ArmA2server_1_03.zip,kellys-heroes.eu , The Patches Scrolls (4.35MB, Released: August 6th 2009)

現在のバージョンではArma2、Arma2:OA共にPatchにDedicatedサーバプログラムが同封されています。
(2010/07/20)
LinuxバージョンはArma2OfficialサイトのDownlordsからダウンロード。

参考リンク

  • HONDASHIの適当なメモ-Arma2鯖立て
    Kellys Heroes Guide to ArmA2 Dedicated Serverを元に日本語で解説してくれています。
    サンプルファイルもあり大変参考になります。
    http://www8.atwiki.jp/hondashi/?page=ArmA2%E9%AF%96%E7%AB%8B%E3%81%A6
  • Kellys Heroes Guide to ArmA2 Dedicated Server
    英語ですが、ForumのFAQ、TroubleShootingが参考になります。
    http://www.kellys-heroes.eu/files/tutorials/dedicated/

コメント

  • 取りあえずBI Wikiから該当するページを持ってきた -- TOTAL22? 2009-09-05 (土) 14:43:53
  • ゆっくり翻訳していきます -- TOTAL22? 2009-09-05 (土) 14:51:08
  • 某掲示板で情報なさすぎ、と見かけたのでちょっと編集 -- Yu-ki? 2010-07-20 (火) 19:31:00
  • ゆっくりすぎだろうwwwww -- 2010-07-20 (火) 21:45:55
  • 日本語化パッチのリンクが切れてます -- 2010-11-06 (土) 11:39:39
  • wikiの中で一番しょぼい作り -- 2012-02-14 (火) 19:28:26