著者は、 Write forDOnationsプログラムの一環として寄付を受け取るためにTechEducationFundを選択しました。

序章

Minecraftは人気のサンドボックスビデオゲームです。 もともと2009年にリリースされ、プレイヤーはブロック3Dで生成された世界で構築、探索、作成、および存続することができます。 2022年初頭の時点で、これは史上最も売れたビデオゲームでした。 このチュートリアルでは、自分と友達が一緒にプレイできるように、独自のMinecraftサーバーを作成します。 具体的には、Minecraftを実行するために必要なソフトウェアパッケージをインストールし、実行するようにサーバーを構成してから、ゲームをデプロイします。

または、 DigitalOceanのワンクリックMinecraft:Java EditionServerを別のインストールパスとして探索することもできます。

このチュートリアルでは、JavaバージョンのMinecraftを使用します。 MinecraftのバージョンをMicrosoftAppStoreから購入した場合、このサーバーに接続することはできません。 PlayStation 4、Xbox One、Nintendo Switchなどのゲーム機で購入したMinecraftのほとんどのバージョンは、MicrosoftバージョンのMinecraftでもあります。 これらのコンソールは、このチュートリアルで構築されたサーバーに接続することもできません。 MinecraftのJavaバージョンはこちらから入手できます。

前提条件

このガイドに従うには、次のものが必要です。

  • Ubuntu 18.04 が新規インストールされ、sudo権限を持つ非rootユーザーであり、SSHが有効になっているサーバー。 このガイドに従ってサーバーを初期化し、これらの手順を実行できます。 Minecraftはリソースを大量に消費する可能性があるため、サーバーサイズを選択する際はそのことに注意してください。 DigitalOceanを使用していて、より多くのリソースが必要な場合は、いつでもDropletのサイズを変更してCPUとRAMを追加できます。

  • ローカルのMac、Windows、またはLinuxマシンにインストールされている Minecraft JavaEditionのコピー。

ステップ1—必要なソフトウェアパッケージをインストールしてファイアウォールを構成する

サーバーを初期化したら、最初のステップはJavaをインストールすることです。 Minecraftを実行するために必要になります。 デフォルトでは、Ubuntu 18.04は、Minecraftの最新リリースを実行するのに十分な最新バージョンのJavaを提供していません。 幸い、古いUbuntuリリース用に新しいJavaパッケージを構築し続けるサードパーティのメンテナがいます。それらをインストールするには、独自のパッケージソースのリストにPPAまたはパーソナルパッケージアーカイブを追加します。 次のコマンドでこれを行うことができます。

  1. sudo add-apt-repository ppa:openjdk-r/ppa

次に、この追加を反映するようにパッケージソースを更新します。

  1. sudo apt update

最後に、Javaの OpenJDKバージョン17、特にヘッドレスJREをインストールします。 これは、GUIアプリケーションのサポートを削除するJavaの最小バージョンです。 これにより、サーバー上でJavaアプリケーションを実行するのに理想的です。

  1. sudo apt install openjdk-17-jre-headless

また、screenというソフトウェアを使用して、取り外し可能なサーバーセッションを作成する必要があります。 screenを使用すると、ターミナルセッションを作成してそこから切り離し、プロセスを実行したままにすることができます。 サーバーを起動してから端末を閉じると、セッションが強制終了されてサーバーが停止するため、これは重要です。 今すぐscreenをインストールしてください:

  1. sudo apt install screen

パッケージがインストールされたので、ファイアウォールを有効にして、トラフィックがMinecraftサーバーに入るのを許可する必要があります。 実行したサーバーの初期設定では、sshトラフィックのみを許可しました。 次に、トラフィックがポート25565を介して着信することを許可する必要があります。これは、Minecraftが接続を許可するために使用するデフォルトのポートです。 場合によっては、ufwはsshなどの名前付きトラフィックルールを使用します。sshはデフォルトで常にポート22を使用しますが、このようなあまり一般的ではない場合は、ポート番号を手動で指定します。 次のコマンドを実行して、必要なファイアウォールルールを追加します。

  1. sudo ufw allow 25565

Javaがインストールされ、ファイアウォールが適切に構成されたので、MinecraftWebサイトからMinecraftサーバーアプリをダウンロードします。

ステップ2—最新バージョンのMinecraftをダウンロードする

次に、Minecraftサーバーの現在のバージョンをダウンロードする必要があります。 これを行うには、 MinecraftのWebサイトに移動し、 Download minecraft_server.XXXjar というリンクをコピーします。ここで、Xはサーバーの最新バージョンです。 。

これで、wgetとコピーしたリンクを使用して、サーバーアプリをサーバーにダウンロードできます。

  1. wget https://launcher.mojang.com/v1/objects/125e5adf40c659fd3bce3e66e67a16bb49ecc1b9/server.jar

サーバーアプリはserver.jarとしてダウンロードされます。 Minecraftのバージョンを管理する必要がある場合、またはMinecraftサーバーをアップグレードする場合は、ダウンロードしたserver.jarの名前をminecraft_server_1.18.1.jarに変更し、強調表示されたバージョン番号を任意のバージョンに一致させると便利です。ダウンロードしたばかり:

  1. mv server.jar minecraft_server_1.18.1.jar

古いバージョンのMinecraftをダウンロードする場合は、mcversions.netにアーカイブされています。 ただし、このチュートリアルでは、現在の最新リリースに焦点を当てます。 ダウンロードが完了したので、Minecraftサーバーの構成を始めましょう。

ステップ3—Minecraftサーバーの構成と実行

Minecraft jarをダウンロードしたので、実行する準備が整いました。

まず、screenコマンドを実行してスクリーンセッションを開始します。

  1. screen

表示されたバナーを読んだら、スペースバーを押します。 screenは、通常のようにターミナルセッションを表示します。 このセッションはデタッチ可能になりました。つまり、ここでコマンドを開始して実行したままにすることができます。

これで、初期構成を実行できます。 次のコマンドがエラーをスローしても心配しないでください。 Minecraftは、ユーザーが最初に会社のライセンス契約に同意する必要があるように、このようにインストールを設計しました。 次にこれを行います:

  1. java -Xms1024M -Xmx1024M -jar minecraft_server_1.18.1.jar nogui

このコマンドの出力を調べる前に、サーバーを調整しているこれらすべてのコマンドライン引数を詳しく見てみましょう。

  • Xms1024M-これは、1024MBまたは1GBのRAMを実行して実行を開始するようにサーバーを構成します。 サーバーがより多くのRAMで起動するようにしたい場合は、この制限を上げることができます。 メガバイトの場合はM、ギガバイトの場合はGの両方がサポートされているオプションです。 例:Xms2Gは、2ギガバイトのRAMでサーバーを起動します。

  • Xmx1024M-これは、最大1024MのRAMを使用するようにサーバーを構成します。 サーバーをより大きなサイズで実行したい場合、より多くのプレーヤーを許可したい場合、またはサーバーの実行速度が遅いと感じた場合は、この制限を上げることができます。 Javaプログラムは、使用できるメモリの最大量を常に指定する必要があるという点で独特です。

  • jar-このフラグは、実行するサーバーjarファイルを指定します。

  • nogui-これはサーバーであり、グラフィカルユーザーインターフェイスがないため、GUIを起動しないようにサーバーに指示します。

通常はサーバーを起動するこのコマンドを初めて実行すると、次の出力が表示されます。

Output
[22:05:31] [environment second] [22:05:31] [main/ERROR]: Failed to load properties from file: server.properties [22:05:31] [main/WARN]: Failed to load eula.txt [22:05:31] [main/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.

これらのエラーは、サーバーが実行に必要な2つのファイル(eula.txtにあるEULA(エンドユーザー使用許諾契約))と構成ファイルserver.propertiesを見つけられなかったために生成されました。 サーバーはこれらのファイルを見つけることができなかったため、現在の作業ディレクトリにファイルを作成しました。 Minecraftは、EULAを読んで同意したことを確認するために、意図的にこれを行います。

nanoまたはお気に入りのテキストエディタでeula.txtを開きます。

  1. nano eula.txt

このファイル内に、MinecraftEULAへのリンクが表示されます。 URLをコピーします。

〜/ eula.txt
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
#Tue Mar 24 22:05:31 UTC 2020
eula=false

WebブラウザでURLを開き、契約書を読みます。 次に、テキストエディタに戻り、eula.txtの最後の行を見つけます。 ここで、eula=falseeula=trueに変更します。 次に、ファイルを保存して閉じます。 nanoでは、これは「Ctrl + X」を押して終了し、保存を求めるプロンプトが表示されたら「Y」を押してからEnterキーを押すことを意味します。

EULAに同意したので、サーバーを仕様に合わせて構成できます。

現在の作業ディレクトリには、新しく作成されたserver.propertiesファイルもあります。 このファイルには、Minecraftサーバーのすべての構成オプションが含まれています。 すべてのサーバープロパティの詳細なリストは、 Official MinecraftWikiにあります。 サーバーを起動する前に、このファイルを好みの設定で変更する必要があります。 このチュートリアルでは、いくつかの基本的な設定について説明します。

  1. nano server.properties

ファイルは次のように表示されます。

〜/ server.properties
#Minecraft server properties
#Thu Apr 30 23:42:29 UTC 2020
spawn-protection=16
max-tick-time=60000
query.port=25565
generator-settings=
force-gamemode=false
allow-nether=true
enforce-whitelist=false
gamemode=survival
broadcast-console-to-ops=true
enable-query=false
player-idle-timeout=0
difficulty=easy
spawn-monsters=true
broadcast-rcon-to-ops=true
op-permission-level=4
pvp=true
snooper-enabled=true
level-type=default
hardcore=false
enable-command-block=false
max-players=20
network-compression-threshold=256
resource-pack-sha1=
max-world-size=29999984
function-permission-level=2
rcon.port=25575
server-port=25565
server-ip=
spawn-npcs=true
allow-flight=false
level-name=world
view-distance=10
resource-pack=
spawn-animals=true
white-list=false
rcon.password=
generate-structures=true
online-mode=true
max-build-height=256
level-seed=
prevent-proxy-connections=false
use-native-transport=true
motd=A Minecraft Server
enable-rcon=false

このリストの最も重要なプロパティのいくつかを詳しく見てみましょう。

  • difficulty(デフォルトeasy)-これは、与えられるダメージの量や要素がプレーヤーに与える影響など、ゲームの難易度を設定します。 オプションは、peacefuleasynormal、およびhardです。

  • gamemode(デフォルトsurvival)-これはゲームプレイモードを設定します。 オプションは、survivalcreativeadventure、およびspectatorです。

  • level-name(デフォルトworld)-これは、クライアントに表示されるサーバーの名前を設定します。 アポストロフィなどの特殊文字の前に円記号を付ける必要がある場合があります。 これはescaping文字として知られており、特殊文字がコンテキスト内で正しく解析されない場合の一般的な方法です。

  • motd(デフォルトA Minecraft Server)-Minecraftクライアントのサーバーリストに表示されるメッセージ。

  • pvp(デフォルトtrue)-プレイヤー対プレイヤーの戦闘を有効にします。 trueに設定すると、プレイヤーは戦闘に参加してお互いにダメージを与えることができます。

必要なオプションを設定したら、ファイルを保存して閉じます。

これで、サーバーを正常に起動できます。

前回と同様に、1024MのRAMでサーバーを起動しましょう。 今回は、必要に応じてMinecraftに最大4GのRAMを使用する機能も付与する必要があります。 サーバーの制限やユーザーのニーズに合わせて、この数を調整してください。

  1. java -Xms1024M -Xmx4G -jar minecraft_server_1.18.1.jar nogui

初期化を少し待ってください。 間もなく、新しいMinecraftサーバーは次のような出力の生成を開始します。

Output
[21:08:14] [Server thread/INFO]: Starting minecraft server version 1.18.1 [21:08:14] [Server thread/INFO]: Loading properties [21:08:14] [Server thread/INFO]: Default game type: SURVIVAL [21:08:14] [Server thread/INFO]: Generating keypair [21:08:15] [Server thread/INFO]: Starting minecraft server on *:25565

サーバーが稼働すると、次の出力が表示されます。

Output
[21:15:37] [Server thread/INFO]: Done (30.762s)! For help, type "help"

これでサーバーが実行され、サーバー管理者のコントロールパネルが表示されます。 helpと入力してみてください。

  1. help

次のような出力が表示されます。

Output
[21:15:37] [Server thread/INFO]: /advancement (grant|revoke) [21:15:37] [Server thread/INFO]: /ban <targets> [<reason>] [21:15:37] [Server thread/INFO]: /ban-ip <target> [<reason>] [21:15:37] [Server thread/INFO]: /banlist [ips|players] ...

このターミナルから、管理者コマンドを実行し、Minecraftサーバーを制御できます。 次に、screenを使用して、ターミナルからログアウトした後もMinecraftサーバーを実行し続ける方法を学びます。 次に、Minecraftクライアントに接続して、新しいゲームを開始できます。

ステップ4—サーバーを実行し続ける

サーバーが起動したので、SSHセッションから切断した後もサーバーを実行し続けたいと考えています。 以前にscreenを使用したので、Ctrl + A + Dを押すとこのセッションから切り離すことができます。 元のシェルに戻っていることがわかります。

Output
​​[email protected]:~$ screen [detached from 3626.pts-0.minecraft-1804] $

次のコマンドを実行して、すべての画面セッションを表示します。

  1. screen -list

セッションのIDを含む出力が得られます。これは、そのセッションを再開する必要があります。

Output
There is a screen on: 3626.pts-0.minecraft-1804 (11/16/21 22:56:33) (Detached) 1 Socket in /run/screen/S-root.

セッションを再開するには、-rフラグをscreenコマンドに渡してから、セッションIDを入力します。

  1. screen -r 3626

ターミナルから再度ログアウトする準備ができたら、必ずCtrl + A + Dでセッションから切り離してからログアウトしてください。

ステップ5—Minecraftクライアントからサーバーに接続する

サーバーが稼働しているので、Minecraftクライアントを介してサーバーに接続しましょう。 その後、あなたは遊ぶことができます!

Minecraft Java Editionのコピーを起動し、メニューでマルチプレイヤーを選択します。

Select Multiplayer in the menu

次に、接続するサーバーを追加する必要があるので、サーバーの追加ボタンをクリックします。

Click the Add Server button

表示されるサーバー情報の編集画面で、サーバーに名前を付け、サーバーのIPアドレスを入力します。 これは、SSH経由で接続するために使用したものと同じIPアドレスです。

Name your server and type in the IP address

サーバー名とIPアドレスを入力すると、マルチプレイヤー画面に戻り、サーバーが一覧表示されます。

Select your server and click Join Server

今後、サーバーは常にこのリストに表示されます。 それを選択し、サーバーに参加をクリックします。

Enjoy the game!

あなたはあなたのサーバーにいて、遊ぶ準備ができています!

結論

これで、Ubuntu 18.04でMinecraftサーバーが実行され、あなたとすべての友達がプレイできるようになりました。 粗雑な3Dの世界で探索、作成、存続を楽しんでください。 そして覚えておいてください:グリーフィングに気をつけてください。