Simutrans サイト運営

LinuxでNetSimutrans用のサーバーを構築する

投稿日:

Simutransでマルチプレイするために、サーバーを構築する方法です。
今回はConohaVPS上でUbuntu 16.04を使いました。

ちなみに下記リンク経由でConohaVPSに新規入会すると、1000円分のクーポンついてくるのでお得です。
ConohaVPS

以上宣伝でした。

構築方法

作業用ユーザーの作成

作業用のユーザーを作成します。rootで作業をするのはよろしくないらしい。
今回はsimuという名前のユーザーを作り、管理者権限を付与しました。

adduser simu
gpasswd -a simu sudo

作成したらsimuでログインできるか、管理者権限を取得できるかを確認します。
以降の作業は作業用ユーザーで行います。

Simutransのダウンロード

作業用ディレクトリ「tmp」を作成。

mkdir tmp

Simutransのソースコードをダウンロードします。現時点(2017年3月)での最新版は120.2.1でした。

wget https://sourceforge.net/projects/simutrans/files/simutrans/120-2-1/simutrans-src-120-2-1.zip/download

ダウンロードした、download という名前のzipファイルを解凍します。

unzip download

「The program ‘unzip’ is currently not installed. You can install it by typing:
sudo apt install unzip」と言われてしまいました。
ConohaVPS上のUbuntuには、デフォルトでunzipが入っていないので、unzipのインストールを行います。

sudo apt-get install unzip

インストールが終わったらzipファイルを解凍します。

ビルド

Linuxサーバー上で動かすためにビルドを行います。
tmpディレクトリに移動します。

cd tmp

config.defaultを開き、下記の項目を設定します。

BACKEND = posix
COLOUR_DEPTH = 0
OSTYPE = linux

configure.shに実行権限をつけ実行します。

chmod +x configure.sh
./configure.sh

「configure.sh: error: no acceptable C compiler found in $PATH」と言われるので、Cコンパイラをインストールします。

sudo apt-get install gcc

今度は「configure.sh: error: C++ preprocessor “/lib/cpp” fails sanity check」と言われるのでg++をインストールします。

sudo apt-get install g++

このままmakeすると、「descriptor/reader/image_reader.cc:12:18: fatal error: zlib.h: No such file or directory
#include 」といわれるのでzlib1g-devをインストールします。

sudo apt-get install zlib1g-dev

また「dataobj/loadsave.cc:20:19: fatal error: bzlib.h: No such file or directory
#include 」も言われるので、libbz2-devをインストールします。

sudo apt-get install libbz2-dev

インストールが終わったらビルドします。

make

get_pak.shの作成

他のサイトにはget_pak.shを実行すると書いてありますが、自分の環境ではなぜか生成されてなかったので、下記のgithubからファイルを持ってきます。

https://github.com/aburch/simutrans/blob/master/get_pak.sh

get_pak.shはtmpディレクトリの中に設置します。
あとは、get_pak.shに実行権限を付け実行し必要なpakファイルをダウンロードします。

chmod +x get_pak.sh
./get_pak.sh

get_lang_files.shの作成

get_lang_files.sh も作成します。下記サイトからファイルを持ってきて、tmpディレクトリ内に設置します。
https://github.com/aburch/simutrans/blob/master/get_lang_files.sh
get_lang_files.shを実行します。

chmod +x get_lang_files.sh
./get_lang_files.sh

初期マップの設置

サーバーは自力でマップの生成を行ってくれないので、クライアント側で用意したファイルをサーバーのsaveディレクトリに保存します。

ファイルの設置など

以下のような感じになるようにファイルを配置します。
(私はhome階層のSimutransフォルダとtmpフォルダ内のSimutransフォルダとsimファイルを統合しました。)

動作確認

サーバーモードで起動できるか確認します。

./sim -server -objects pak -load save.sve

運用開始

正常に起動できたら、運用を開始します。

cd
./simutrans/sim -server 13353 -objects pak -lang ja -nomidi -nosound -load server13353-network.sve

※ロードするセーブファイルに初期マップを指定してしまうと、サーバー側のSimutransを再起動した際にこれまでのデータが消えてしまうらしいので気を付けましょう。
ネットワーク対戦を開始すると作成される、server13353-network.sve(13353の部分はポート番号?)が最新のマップデータだと思われます。

systemdに登録する

このままだと、SSH接続を切るたびにSimutransが終了してしまうのでデーモン化します。

Simutransを起動するためのスクリプトを書きます。

cd
vim start.sh

start.shの中身は下記の通りです。

~/simutrans/sim -server 13353 -server_name hassakuServer -objects pak -lang ja -nomidi -nosound -load ../server13353-network.sve

次に/etc/systemd/system/へ移動し、sim.serviceというファイルを作成します。

cd /etc/systemd/system/
vim sim.service

sim.serviceの中身は下記の通り

[Unit]
Description=Simutrans
[Service]
User=simu
ExecStart=/bin/bash /home/simu/start.sh

これでSimutransを起動するときは下記のコマンドを入力するだけで済むようになりました。

sudo systemctl start sim

参考サイト

Simutransを自鯖で構築してみる – ejo090の日記
ArchLinuxでsimutransサーバを建てる 2016/02 120.1.3 – みちのいに!!
どうでもいいメモ帳: さくらVPSでSimutransを動かせた (完結編)
systemd を利用してプロセスをデーモン化する – cameong’s blog
Ubuntuで足りないファイルがどのパッケージにあるか調べる方法 – 組み込みの人。
ubuntu ユーザを追加して sudo 権限をつける – Qiita
Ubuntu Serverにunzipをインストール

-Simutrans, サイト運営

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

VALUE SERVERでStartSSLを使う方法

VALUE SERVERでは独自IPアドレスのオプションを申し込めばSNIではない普通の独自SSLが使えます。 今回は、無料のSSL証明書StartSSLをVALUE SERVERで使う方法を書きます …

WordPressでリンクと一緒にスクリーンショットを載せる方法

 リンクと一緒にスクリーンショット(とはてブ数)を載せているブログを最近よく見かけ、見やすくていいなと思ったので僕もやってみました。

no image

テーマをStinger8に変更することにした

気まぐれですが、サイトのテーマをStinger8に変更することにしました。 まだ素のままですが、徐々に自分色に染め上げていきたいと思っています。 便利なテーマ「Simplicity」 今まではSimp …

StartSSLが主なWebブラウザで使えなくなったらしい

このサイトではSSL証明書に無料で使えるStartSSLを利用していました。 その更新期限が2017年2月にきたので、いつものように証明書の更新を行ったのですが…… 「安全な接続ができませんでした(エ …

no image

KUSANAGI for ConoHa へ引っ越し

3月8日にとしつーるのサーバーをKUSANAGI for ConoHa (512MB) へ引っ越しました。 ※(2017/04/15 追記)諸事情により、現在はKUSANAGIを使っていません。 さく …