LoginSignup
0
1

More than 3 years have passed since last update.

みんなでFactorio!! --EC2でマルチプレイ--

Posted at

はじめに

エンジニアならみんな大好きFactorioの初正式版が、昨年8月にリリースされたのは記憶に新しいですが、2021年1月26日に次の安定版1.1.19がリリースされました。
今回、これを機にメンバーをFactorio沼にハメてやろうと思い、EC2にマルチプレイ用のサーバを立てたので、その手順をメモしておきます。

前提

Factorioを購入済み
当たり前といえば当たり前ですが、プレイする人全員購入する必要があります。
 
Factorioアカウントを作成済み
公式ページから無料でできます。Steamアカウントでも代用可能っぽいです(未確認)。
  
EC2構築済み
気分でt2.mediumで構築しました。が、microでも動くんじゃないかなー。
  
EC2にEIPを割り当て
毎回接続設定変えるのがめんどくさいので、、、
  
Mac環境
すみません、Mac環境のみ対象です。Windowsの場合は適宜読み替えればできると思います。

1. EC2の穴空け作業

セキュリティグループのインバウンドに以下を設定
- SSH(マイIPにしてね)
- UDP(ソースは任意)今回はカスタムポート番号を使うので、ポート:34198で設定
※Factorioサーバのデフォルトポートは34197番です。

2. EC2にソースを配置

今回はSSHできる環境なはずなので、SCPでアップロードする手順にします。サーバ上でファイルを直接取り込んでも問題ないです。

公式サイトから最新安定版を入手

https://factorio.com/get-download/1.1.19/headless/linux64
上記をローカルにダウンロードする。(2021/01/27現在の最新安定版)
公式サイトから選んでダウンロードでもOKです。
その場合、ダウンロードファイルはlinux64を選択してください。

最新安定版を落とす理由ですが、Steam等でプレイするFactorioクライアントとバージョンを合わせるためです。
クライアントとサーバのバージョンが一致していないとプレイできません…

scpでEC2にソースを配置

scp -i PEMの場所.pem ~/Downloads/factorio_headless_x64_1.0.0.tar.xz ec2-user@IPアドレス:~

解凍

xz -dv factorio_headless_x64_1.1.19.tar.xz
tar xfv factorio_headless_x64_1.1.19.tar

factorioディレクトリに移動

上記手順でfactorioディレクトリが作成されているはずなので、移動します。
以降はfactorioディレクトリ配下で実行します。

cd factorio

3. 初回起動と動作確認

セーブデータ作成

./bin/x64/factorio --create ./saves/my-save.zip

34198番ポートで起動

./bin/x64/factorio --start-server ./saves/my-save.zip --port 34198

動作確認

コンソール画面は閉じないように気をつけてください。
Factorioのクライアントを起動→マルチプレイ→アドレスに接続
ここでFactorioアカウントを求められると思うので入力。
パブリックIP:34198の形式でアドレスを入力し、接続!
無事にマップが表示されたら成功です。

そのままゲームを続けても良いですが、好きなマップにしたいのと、コンソール閉じても大丈夫なように、以降の手順で設定します。

一旦、終了

クライアント側Factorioを終了し、コンソールで起動しているサーバ側FactorioをCTR+Cで終了します。

4. 好きなマップ作成と設定変更

Factorioはなんといっても、好きな条件でマップを厳選するのが醍醐味!
マルチプレイ向きの過酷な設定にしてもよし、初心者向け設定にしてもよし!

クライアント側Factorioで好きなマップのセーブデータを作成

まず、クライアント側Factorioを起動し、ニューゲームで好きなマップを作成してください。
余談ですが、気に入ったシード値を保存しておくと、いろんなマップを比較できます。
ゲームスタート後、好きな名前でセーブして、ゲームを終了してください。

セーブデータをサーバに配置

  1. Macの場合、以下の場所にセーブデータがあるので移動します。
  2. lsコマンドで目的のセーブデータのzipファイルがあることを確認してください。
  3. 最後に、scpしやすいようにDownloadsディレクトリにセーブデータをコピーします。
  4. scpで、サーバ上の~/factorio/saves配下にzipファイルをアップロードします。
cd ~/Library/Application\ Support/factorio/saves
ls →さっきつけた名前のセーブデータを探す
cp favorite-map.zip ~/Downloads
scp -i PEMの場所.pem ~/Downloads/favorite-map.zip ec2-user@IPアドレス:~/factorio/saves

config.iniを編集

上記手順3にて、一度でもサーバを起動していれば、~/factorio/config配下にconfig.iniファイルがあると思います。
今回は、オートセーブの設定と起動ポートを変更します。

autosave-interval=15
autosave-slots=2
port=34198

5. サーバ永続化

コンソールを閉じてもFactorioを起動しっぱなしにして、24時間インできるようにします。

nohup ./bin/x64/factorio --start-server ./saves/favarite-map.zip > /dev/null 2> /dev/null &

終了

永続化時の終了は、Factorioのプロセスを探してキルしてください。

$ ps aux | grep factorio
$ kill [PID]

あとは遊ぶだけ

動作確認時と同じ方法でサーバに接続し、好きなマップでマルチプレイを楽しんでください!

6. アップデート

参考文献1を参照ください。
自分でもできたら記事更新します。(今のところやる必要がないため)

参考文献

  1. factorio headless server の準備
  2. factorio official wiki: Multiplayer
0
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1