🙌

Astroneerの個人サーバをAWSで立ててみた

2022/05/14に公開

Astroneer

https://store.steampowered.com/app/361420/ASTRONEER/?l=japanese

Switch,PC,PS4などの媒体で販売されているシュミレーションゲームです。
仕事でITエンジニアをやってるので、minecraftの工場Modを導入したときのようなわくわく感と効率化意欲が止まらなくなるゲームですね。

クロスプレイに対応

2022/05/14時点の情報です。以降に対応しなくなったり対応したりする可能性もありますので注意してください。

  • クロスプレイに対応しているプラットフォーム
    • SONY PS4
    • PC(Steam)
  • クロスプレイが出来なかったプラットフォーム
    • XBox Cloud Games
      • XBox Oneじゃないよ!
    • Nintendo Switch

それ以外のプラットフォームは検証していないため不明です。こういった情報を公式で展開されている所を発見できなかったため私が確認出来た端末のみ記載しています。

同じプラットフォーム同士で一緒に遊びたい場合はどちらかの端末がサーバ状態になってフレンドを招待すると遊べるようですが、クロスプレイの場合は別途サーバを借りたりする必要があります。

Serverのタブを開くと登録したサーバなどが表示されるようになります。
PS4等は「クロスプレイをオンにする」にチェックを入れると良いそうです。
Nintendo Switchではこのサーバリストタブがありませんでした。

サーバを立てる方法

Astroneer Dedicated Server のダウンロード

Astroneer Dedicated ServerをSteam経由でダウンロードし、ダウンロードされたファイルを利用します。

Steamのリンクがなかなか探せなかったのでココに張っておきます。
SteamLink: Astroneer Dedicated Server

Astroneer Launcher のダウンロード

https://github.com/ricky-davis/AstroLauncher

ricky-davisさんが便利なサーバ管理ツールを作っていただいているので、これを利用します。

ビルド済みバイナリ(exeファイル)がGithub上で提供されているのでダウンロードします。
https://github.com/ricky-davis/AstroLauncher/releases

Astroneer Lancher の設置と起動

Steamのダウンロードしたゲームの保存先ディレクトリをデフォルトのままで利用している方は以下のディレクトリ場所にサーバがあります。

C:\Program Files (x86)\Steam\steamapps\common\ASTRONEER Dedicated Server

このサーバに上記でダウンロードした AstroLauncher.exe を直下に保存します。

その後ダブルクリックで起動できます。

Firewallの設定や、NATの設定をしておらずGlobalIPから接続できない状態だとエラーとなりますので、今のままでは利用出来ません。

因みにこの状態で http://localhost:5000 にアクセスすると良い感じのダッシュボードが表示されます。

まだ利用出来ないので、一旦サーバは停止しておきましょう。
コンソール画面上で Ctrl + C でSIGINTを送って停止します。

Astroneer Dedicated Server の設定

https://blog.astroneer.space/p/astroneer-dedicated-server-details/

SET CONNECTION PORT
In Engine.ini, you will want to configure the port that the server will accept connections on. You can use a port of your choosing, but for our purposes we are going to go with Port 8777. Add the following lines to Engine.ini

[URL]
Port=8777

先ほどの記事で、ポートの設定を書かなくてはいけないらしいので指定に従ってポートの設定を行います。

C:\Program Files (x86)\Steam\steamapps\common\ASTRONEER Dedicated Server\Astro\Saved\Config\WindowsServer\Engine.ini

次に、Astroneer Lancherの設定を変更します。ここでPublicIPなどを自動で入れてくれるモードがあるのでそのあたりを変更しておきます。

C:\Program Files (x86)\Steam\steamapps\common\ASTRONEER Dedicated Server\Lancher.ini

...
OverwritePublicIP=True
...

他にもAutoRestartや、セーブデータのバックアップ間隔の調整なども出来るのでこのあたりをいじってみると良いと思います。

Windows Firewall の設定

注意:公式のドキュメントにも記載されていますが、このあたりの設定はセキュリティホールになりますので自己責任で設定変更してください。

基本的にAdministoratorでLancherを実行するとFirewallの設定をしてくれるようですが、手動でもやってみます。

Windwosキー -> firewall 検索結果にWindows Firewallの設定が出てくるので起動します。
その後、詳細設定を開きます。

受信の規制、送信の規制、両方とものUDP 8777ポートを開放します。

Lancherを起動した際に以下のログが出力されていれば問題ありません。

INFO   'Server network configuration good!'

NAT, ポートフォワーディングの設定

GlobalIPを指定する必要があり、マンションやアパートなどの上流回線が1回線のみで構成されている場合は設定変更が出来ませんので下記に記載しているAWSの方法などを利用してください。

ルータの設定を開き、WAN側の設定でポートフォワーディング設定を行います。
ポートフォワーディングするのは自身のPCのIPアドレス:8777のUDPポートです。
ルータによって設定方法が異なるのでご自身で調べて設定してください。

Astroneer サーバに接続する

サーバの設定に自身のGlobalIPアドレスとポートを指定します。
GlobalIPはAstroneer LancherのWebアプリにも記載されています。

これで晴れてサーバに接続が出来ました。

AWSのWindows Server を利用して、自宅のPCを停止中もサーバにアクセス出来るようにする

AWSなどを利用すると、いつも遊んでいるPCを終了しても引き続きプレイが可能です。
AWSには従量課金でサーバ運用費用がかかります。(筆者はだいたい月1,000円未満で運用できてます)

AWSを利用するまでのフローは(アカウント作成など)省きます。

AWS EC2 インスタンスの作成

提供されているWindows Serverを選択し、インスタンスの生成を行います。

インスタンスへの接続方法などはAWS公式ドキュメントを見てください。

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/connecting_to_windows_instance.html

ネットワークの設定

インスタンスが生成出来ましたら、対象のインスタンスに割り当てられているセキュリティグループのインバウンド設定で、8777ポートの開放を行います。

ここで、 0.0.0.0/0 と指定していますが、参加したいユーザのGlobalIPアドレスを一つずつ追加するとIPアドレス制限をかけることが可能なので、特定の人しか許可したくない + セキュリティも担保したい場合はそのような設定をしてください。

Astroneer Dedicated Server の設置

RDP接続を行い、先ほどダウンロードした Astroneer Dedicated ServerAstroneer Lancher のセットをコピーします。

併せてFirewallの設定も行ってください。

あとは起動するだけです。
接続するIPアドレスは先ほどのLancherで確認可能です。

おわりに

自前でサーバと構築すると費用の削減と、自由なセーブデータの管理などができたりして良いですよね。
私自身の備忘録としても兼ねた記事ですが、誰かの参考になれば幸いです。

Discussion