LoginSignup
1
0
はじめての記事投稿
Qiita Engineer Festa20242024年7月17日まで開催中!

マイクラで遊ぶために全力で技術習得した話

Last updated at Posted at 2024-06-14

マイクラを始めるきっかけ

今から三年前、新卒で企業に勤め初めてからというもの、友達と交流する機会が減り、「自然と皆が集まる場所」を欲していた。

当初はコロナ禍ということもあり「オンライン飲み会」が世間では流行っていたが、僕らの周りでは全く流行っていなかった。というか、主に自分が苦手だった。(オンライン飲み会って、話題を作るのが難しいよね…。)

オンラインで自然に交流が持てるのはやはり「ゲーム」になる。

ゲーム選定では

  • 何人来ても楽しめる
  • ゲーム内で他の人が来るまでの待機時間が退屈でない
  • みんな持ってる

という感じで皆さんお馴染みの「マインクラフト」をすることに。

自分のPCをホストに皆でマイクラしてみた話

マインクラフトを通信で遊ぶのには「自分でサーバーを用意する」か「マルチサーバーを月額契約」する必要がある。

自分でサーバーを用意する場合には何通りか方法があるが、最初は「自分のPCにサーバーを作って、ポート解放で皆がアクセスできるようにする方法」を選んだ。
これはかなり簡単で、色々なサイトでやり方が紹介された。

サクサクと設定して(サーバーの公開とかで何度かつまづきながらも…)遊ぶことができた。

しかし、このやり方にはいくつかデメリットがあった。

  • 自分がいない時は皆マイクラが進められない
  • 自分の通信環境が悪いと皆のマイクラもラグる
  • 自分のPCが重くなる

「自然と皆が集まる場所」を実現させるには特に一つ目が肝心で、誰でも気が向いたタイミングで来てられるところを作りたい気持ちが強かった。

そして後日、別の方法を模索することに。

クラウドサーバーにマイクラサーバーを建てた話

マルチサーバーの契約は金額が高い上、面白くないなと感じた。
そこで、当初流行りのクラウドサーバーに目をつけるに至った。

「無料で使える」「ネット上にナレッジが沢山ある」ということを聞いて、クラウドサーバーにはAWSを選んだ。

クラウドサーバーはとにかく最初の設定がめんどくさい!

ということで、本来は色々設定しなきゃいけないこと(IAMやCost Managementとか)をすっ飛ばしクラウドサーバーを作成。
(良い子は真似しないでね!)

EC2(仮想サーバー)を新規作成、環境を設定したら、ローカルにあるマイクラサーバーをポン!

これで完成…?

他にも後から色々と設定して皆で快適に遊べるようにまでした、が
これではクラウドにした意味がない!金がかかりすぎる…。

と言うのも、クラウドサーバーの長所は使っていない時にシャットダウンすれば、お金がかからないところ。
ずっと使っていたら、無料枠からはみ出してしまう!

実際のところ、無料枠ではマイクラのカクツキが酷く、ちょっといい構成で作っていたので、コスト削減は急務だった。

誰かがいるタイミングだけ起動する仕組み作り

と言うことで、何かないかと調べてみるといい記事を発見。
それはDiscordを使ってEC2のインスタンスのON/OFFを切り替えられるというもの。

ゲーム友達とはDiscordでやり取りしていた身としては、なんともちょうど良かった。

実装にはかなり苦戦して1週間くらいかけ、マイクラそっちのけで作業していた。これを人は本末転倒という。

DiscordBOTとEC2を何やかんやで連携させ、ついにインスタンスをDiscordから操れるように!

他にもマイクラとDiscordのチャットが双方向へ送られるようにして、マイクラに参加していなくてもマイクラしているメンバーと楽しみを共有できるようにもした。

オチ

実用的なシステムを作ったのは初めてだったので、全てを完璧に仕上げた達成感は凄まじかった。
賞賛されなくとも、皆が楽しく遊んでくれるなら幸せだなと…。

参加していたのは5人。
2ヶ月後、マイクラに自分以外の姿はなくなっていた…。

↓自分で調べたくない人向け
(おそらく当初見たものとは違うけど、大体同じことやってると思う)
https://zenn.dev/nacal/articles/e7f0d481661ec0
https://riminosu13.hatenablog.com/entry/2020/08/04/005220

1
0
0

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
1
0