factorio headless server の準備

  • 6
    Like
  • 0
    Comment
More than 1 year has passed since last update.

factorio について

factorio は 工場を作って、ひたすら自動化していくゲームです。
ゲームの紹介は割愛しますが、プログラマーならハマると思うのでおすすめです。
ゲームクライアント単体でも遊ぶことができますが、友人とオンラインでマルチプレイを楽しむためにサーバーを用意することができます。
このドキュメントでは CentOS7 での手順を記していますので、異なる環境の方は適宜読み替えてください。
また実行は factorio ユーザーを作成して実行するのが良いかと思います。

ポート開放

factorio はデフォルトで UDPプロトコル で 34197番ポート を利用します。

$ sudo firewall-cmd --add-port=34197/udp --permanent
$ sudo firewall-cmd --reload

ゲームの開始

公式サイトから headless server 版をダウンロードして実行します。

// factorio をダウンロード
$ cd ~/
$ wget https://www.factorio.com/get-download/0.12.35/headless/linux64
$ tar zxvf linux64

// ゲームを初期化
$ ~/factorio/bin/x64/factorio --create [ゲーム名]

// ゲームを起動
$ ~/factorio/bin/x64/factorio --start-server [ゲーム名]

ゲームの設定

一度 factorio を起動して終了すると、/config/config.ini というファイルが生成されます。
ポート番号の変更や、自動セーブの頻度などが指定できますので、適宜編集するのが良いでしょう。

// 設定例

autosave_interval=2  // 自動セーブの頻度
port=34197           // factorioのポート番号

バックグラウンド実行

手軽に行うならば以下の方法でバックグラウンド実行できます。
サーバーの再起動にも対応したい方はデーモン化するのが良いでしょう。

// 起動
$ nohup ~/factorio/bin/x64/factorio --start-server [ゲーム名] > /dev/null 2> /dev/null &

// 終了
$ ps aux // factorio を起動したコマンドの PID を探す
$ kill [上で見つけたPIDを入力]

アップデートする

factorio-updater を利用します。

// factorio ディレクトリへ移動
$ cd ~/factorio

// python系のアップデート
$ yum -y install epel-release
$ yum -y install python-pip
$ pip install --upgrade pip

// アップデーターをダウンロード
$ wget https://raw.githubusercontent.com/narc0tiq/factorio-updater/master/update_factorio.py

// 現在インストールされているバージョンを入力
$ python update_factorio.py -p core-linux_headless64 -f 0.12.35 -x

// 現在インストールされているバージョンから順番にアップデートを実行する
$ ~/factorio/bin/x64/factorio --apply-update ~/factorio/tmp/core-linux_headless64-0.12.35-0.12.36-update.zip

参考記事