🎮

TShockを用いてAWSでTerrariaのサーバーをたてよう

2023/12/21に公開

初めに

この記事は、フラー株式会社 Advent Calendar2023の21日目の記事となっています。
20日目はm-coderさんによる2023年を振り返るでした!

TShock

TShock(Terraria Server Hosting for Commands)は、Terraria(テラリア)というゲームのサーバー上で利用される、サーバー管理や権限管理のための拡張ツールです。Terrariaは多人数プレイが可能なサンドボックスゲームであり、TShockはそのサーバーをより効果的に管理するためのプラグインです。

TShockを使用することで、Terrariaサーバーのオーナーや管理者はプレイヤーに対して権限を与えたり、異なるコマンドを実行させたりすることができます。これにより、サーバー上でのゲームプレイやイベントの管理が簡単になります。また、TShockはセキュリティ機能も提供しており、不正な活動や荒らし行為からサーバーを保護する役割も果たしています。

簡単に言えば、TShockTerrariaサーバーの管理を向上させ、プレイヤーに対する柔軟な権限管理を可能にするためのツールです。

https://github.com/Pryaxis/TShock

今回はこのTShockを用いてTerraiaのサーバーをたてていきます。

インスタンスを起動

早速AWSを用いてEC2インスタンスを起動していきましょう。
AWSのアカウント登録などに関しては、今回の記事では省略させていただきます。
それでは早速、右上にあるオレンジ色の「インスタンスを起動」と書いてあるボタンを押下してください。

名前とタグ

任意の名前をつけてください。画像内ではTerraria Serverとしました。

Application and OS Images

今回はUbuntsu Server 22.04 LTS(HVM), SSD Volume Type64ビット x86アーキテクチャを選択してください。

インスタンスタイプ

t2.small以上を選択してください。t2.microで一度作成したことがあるのですが、t2.microの性能ではTerrariaWorldを生成するのは厳しそうでした😭

キーペア

キーペアを選択してください。
キーペアがない場合は、「新しいキーペアの作成」を選択し、任意のキーペア名を入力してキーを作成し、割り当ててください。
画像ではキーペア名はTerrariaKey。キーペアのタイプはRSA。プライベートキーファイル形式は.pemとして作成しました。

ネットワーク設定

セキュリティグループに関してですが、自身の環境では誰でもサーバープレイできるようにするため、(0.0.0.0/0)からのトラフィックを許可しています。
セキュアにしたい場合は、トラフィックを自身のIPのみに制限しましょう。

ストレージを設定

8GBで全然足りますので、8GBで設定しましょう。

インスタンスを起動

以上の設定が終わり次第、インスタンスを起動を押下してください。

インスタンスに接続

今回作成したインスタンスに、インスタンスIDがあるのでそれを押下すると、パブリック IPv4 アドレスが確認できます。(下記画像以下)

確認後、chmod 400で読み込み権限をTerrariaKey.pemに与え、上記で確認したパブリック IPv4 アドレスを用いて一度インスタンスに接続してみましょう。

chmod 400 ~/Downloads/TerrariaKey.pem
ssh -i ~/Downloads/TerrariaKey.pem ubuntu@{パブリック IPv4 アドレス}

上記を行えば、ローカルでインスタンスに接続できるかと思います。

TShockをEC2で使う

続いて、TShockinstallし、インスタンス内にファイルを移しましょう。

TShockのinstall

下記リンクから最新のTShockinstallしましょう。
今回、Application and OS Imagesubuntsuを使用したため、TShock-5.2-for-Terraria-1.4.4.9-linux-x64-Release.zipなどの、linux-x64のものをinstallしてください。
https://github.com/Pryaxis/TShock/tags

インスタンスにTShockをコピー

installした、TShock-5.2-for-Terraria-1.4.4.9-linux-x64-Release.zipを解凍すると、TShock-Beta-linux-x64-Releaseになるかと思いますので、それをインスタンスへコピーしましょう。

ssh -i ~/Downloads/TerrariaKey.pem ubuntu@{パブリック IPv4 アドレス} "mkdir -p ~/remote/path/"
scp -r -v -i ~/Downloads/TerrariaKey.pem ~/Downloads/TShock-Beta-linux-x64-Release ubuntu@{パブリック IPv4 アドレス} :~/remote/path/

上記が完成し、ローカルで開いたインスタンスに対してlsを行うと、remote`ディレクトリが見当たるかと思います。

ubuntu@ip-{プライベートIP}:~$ ls
remote

dotnetのinstall

TShockを起動するにはdotnetが必要なため、dotnetをインスタンスにinstallしてください。

wget https://dot.net/v1/dotnet-install.sh
chmod +x dotnet-install.sh
./dotnet-install.sh -c 6.0

Terrariaのサーバーを開く

それでは、Terrariaのサーバーを開きましょう。
やり方は簡単で、今回TShockinstallした、TShock-Beta-linux-x64-Release内にTShock.Serverがあるので、それを実行するだけです。

cd remote/path/TShock-Beta-linux-x64-Release
./TShock.Server & background

以上でTerrariaのサーバーが完成し、下記のように自身でWorldを生成できるようになったかと思われます。

Worldが完成次第、今回使用したパブリック IPv4 アドレスとWorld生成時に付与したTCPポートにゲームで接続すれば完成です。

終わりに

さて、いかがでしたでしょうか?
AWSに触れたことがない方でも、簡単にサーバーをたてることが出来たのではないでしょうか?
TShock自体、なかなか使うことがないかもしれませんが、是非これを機会にフローだけでも覚えて帰ってくだされば幸いです。
ちなみに今回この記事を書く際、「サーバーをたてる」との言葉を使いましたが、皆さんは、「建てる」、「立てる」、「たてる」、どれを使われますでしょうか?(蛇足)

弊社ではサーバーサイドエンジニアを募集しておりますので、素敵な会社を宣伝しておきます。
https://recruit.fuller-inc.com/
https://herp.careers/v1/fuller/w2QyIOoAhVP-

ということで、今回のTShockを用いてAWSでTerrariaのサーバーをたてようの記事を終わりとさせていただきます。
次回はグミ大好きお兄さん、@nirazoさんのプログラミング教材を作ろう!Playground Book概論です!

Discussion