なんとなくやったらできちゃったので備忘録
まずはざっくりWIKIを参考をば・・・
英語版はこちら
※本記事は、ゲームがまだβ版(アーリーアクセス)の時点での記事になります。
What is Factorio?
マルチプレイ?
基本的にマルチプレイをやる際は、以下2通りで可能。
- 部屋を建てる主のPCの34197番ポートをUDPで開放する
- サーバにfactorioをインストールする(headless server)
前者は部屋主がFactorioを終了すればワールドも自動的に切断されてしまうが、
後者の場合は、サーバが主となるためいつでもワールドは開放されている状態となる。(誰もプレイしていない場合は、ゲームは一時停止となる模様)
本記事は後者になります。
EC2サーバ構築
-
Amazon Linux AMI 2016.03.0 (HVM), SSD Volume Type - ami-f80e0596 でEC2サーバ作成。ssh接続できるようにしておく。(詳細は省きます
-
AWS管理コンソールからFactorioデフォルトポートである 34197 ポートをセキュリティグループのインバウンドから許可しておく(別ポートを使用したい場合はこちらも変更する必要あり)
Factorioのインストールと起動
cd /opt
wget --no-check-certificate https://www.factorio.com/get-download/0.12.29/headless/linux64
mv ./linux64 factorio_headless_x64_0.12.29.tar.gz
tar -zxvf factorio_headless_x64_0.12.29.tar.gz
cd factorio/bin/x64/
# hogehogeというセーブデータを作成
./factorio --create hogehoge
# hogehogeデータを起動(auto save間隔15分設定, ポート:34198 指定)
./factorio --start-server hogehoge --autosave-interval 15 --port 34198
# ctrl cで停止
※英語wikiのように、factorioユーザを作って実行させた方がいいかも(作らなくても実行できますが)
useradd factorio
chown -R factorio:factorio /opt/factorio
・ゲーム参加方法
→ ゲーム起動 → プレイ → マルチプレイ → サーバに接続 → 先ほど作成したEC2サーバのパブリックIPとポート(指定した場合)を入力
・configの場所て?
→ /opt/factorio/config/config.ini
・Mapデータを変えたい場合はどうするの?
→ CLIから作成できないっぽいので、クライアント側(自分のFactorio)でMAP設定、開始して保存したsaveファイルをscpコマンドか何かでサーバへ転送する。
(saveファイルの場所はページ下記を参照)
・factorio をバックグラウンドで起動できないの?
こちらのgithubのfactorio-init通り進め、service factorio help
が実行できればほぼokです。
configは/opt/factorio-init/config.example
を参考に書き換え、同ディレクトリにconfigという名前で保存します。
Saveデータとかの保存場所(クライアント側)
- Windows (Steam): C:\Users<username>\AppData\Roaming\factorio\saves
- OSX: ~/Library/"Application Support"/factorio/saves
Factorioのバージョンアップデート方法 - new!
こちらのpythonスクリプトが便利でした。
factorio-updater(github)
※既にサーバにpythonは入ってるとは思いますが、無ければpython要インストール。
###使い方例(ver0.12.29 -> 0.12.30へのアップデート例)
ほぼページに書いてある例のまんま使えました
# cdでfactorio-updaterをwgetしたフォルダへ移動後に・・
# 自分のOSで使えるパッケージ確認
python update_factorio.py -l
Available packages:
core-linux_headless64
# -pで上記パッケージ指定、-fで現バージョン指定、-xで外書き(たぶん)
python update_factorio.py -p core-linux_headless64 -f 0.12.29 -x
Wrote /tmp/core-linux_headless64-0.12.29-0.12.30-update.zip, apply with `factorio --apply-update /tmp/core-linux_headless64-0.12.29-0.12.30-update.zip`
# factorioの実行ファイルがあるフォルダへ移動
cd ~/opt/factorio/bin/x64
# factorio実行時にオプション指定で先ほどWroteされたファイルを指定する。
./factorio --apply-update /tmp/core-linux_headless64-0.12.29-0.12.30-update.zip
[...いろいろログ出力...]
# 無事アップデートし終わったら、アップデートファイルを削除
rm /tmp/core-linux_headless64-0.12.29-0.12.30-update.zip
備考
- auto saveのintervalは2,3分だとみんなイライラすると思うので、10分以上推奨?(体感的に)
- P2P設定はonにすると重い、off推奨?(未検証)
- replay.datはセーブファイルから削除しておくと他の方がロード時軽くなる?(zipは一度展開して再度圧縮)
- [ゲーム中]
@
キーでチャット入力可能 - [ゲーム中]チャット状態で
/players
でonlineのプレイヤー確認(Luaコマンド許可のみ) - [ゲーム中]チャット状態で
/c game.removeofflineplayer("username")
でオフラインのプレイヤーを削除可能
###その他
- AWSは従量課金制ですので、ご利用は自己責任でお願いします..
- Factorio楽しいですよ・・是非やりましょう・・(ゲス顔)