Minecraft(マイクラ)統合版のサーバーといえば、公式サーバーの『Realms』、レンタルサーバーの『ConoHa VPS』や『Xserver VPS』等を使うことが一般的です。
しかし、これらは維持するために結構お金が掛かったり、機能に制限があったりして自身のニーズに合わない場面もあります。
そんなときの選択肢の1つとして、自分のPC上にマイクラサーバーを立てるという方法があります。実はMicrosoftからサーバー用のソフトウェアが提供されており、意外と簡単に自分のPC上にマイクラサーバを構築できます。
ここでは自宅のPCにマイクラサーバーを構築する方法を解説します。また、例としてNintendo Switchのマイクラから構築したサーバーへアクセスする方法について紹介します。
マイクラサーバーの立て方
前提条件
まずは前提としてPCは以下を満たす必要があります。(一部は推奨条件)
OS | Windows(Windows 10 version 1703以降 or Windows Server 2016以降) Linux(Ubuntu 18以降) |
プロセッサ | x86-64系(IntelやAMDのプロセッサ) 2コア以上推奨 |
メモリ | 1GB以上余裕がある(同時接続人数によっては更に必要) |
ストレージ | 1GB以上の空き(サーバーソフト全体は300MB弱) |
ARM系プロセッサ用のバイナリは出ていないので要注意(ラズパイとかには基本構築できない)
マイクラサーバー構築手順
ここからはマイクラサーバの構築手順を解説します。(Windows版を例に説明しますが、Ubuntu版も基本的には同じです。)
公式の配布ページにアクセスして、マイクラサーバー用のソフトウェアをダウンロードします。
Windows用とUbuntu用があるので、自身が構築するOSのバイナリをダウンロードしてください。
「bedrock-server-(version).zip」というファイルがダウンロードされるので、このファイルを解凍します。
解凍するとフォルダ内に「bedrock_server.exe」というファイルがあるので、こちらを起動します。
起動すると以下のようにコンソール立ち上がり、マイクラサーバーが動き始めます。(ファイアウォールの許可を求めてくる場合があるので、その場合はアクセスを許可してください。)
以上でマイクラサーバーの立ち上げは完了です。簡単すぎー!
ちなみに、Minecraftサーバーを構築するPCはIPアドレスを固定にしておくことをおすすめします。なぜなら、DHCPでIPがコロコロ変わると、サーバーにアクセスする度にIPアドレスを指定し直す必要があるからです。
マイクラサーバーの設定
マイクラサーバーには以下の3つの設定ファイルが用意されています。
それぞれの内容について簡単に説明するので、自身の環境や用途に合わせてカスタマイズしてください。
マイクラサーバーの全体的な設定を行います。
設定項目 | 設定値 ※太字はデフォルト値 | 初期値 | 備考 |
---|---|---|---|
server-name | 文字列 | Dedicated Server | サーバー名 ※ 文字列にセミコロンは含めないこと |
gamemode | survival creative adventure | survival | ゲームモード survival:サバイバル creative : クリエイティブ adventure : アドベンチャー |
force-gamemode | true false | false | デフォルトのゲームモード設定をプレイヤーに強制するかの設定 true : ゲーム中にゲームモードを変えたとしても、再ログインするとサーバー設定のゲームモードになる false : ゲームモードを変えてログアウトし直した場合、ログアウト時の設定で再開する |
difficulty | peaceful easy normal hard | easy | 難易度 peaceful:ピースフル easy : イージー normal : ノーマル hard : ハード |
allow-cheats | ture false | false | チートコマンドの許可/不許可 true : チートコマンドを許可する false : チートコマンドを許可しない |
max-players | 整数値 | 10 | サーバーの最大同時接続数 |
online-mode | true false | true | 接続プレイヤーに対してMinecraftのアカウントデータベースと照合する/しない true : チェックを行い、照合できたアカウントだけ接続を許可する false : チェックをせず、どのようなアカウントでも接続を許可する 基本的にはtrue推奨だが、インターネットに接続していないサーバー等で照合できない場合にfalseにする |
allow-list | true false | false | "allowlist.json" による接続許可アカウントの振り分け有効/無効 true : "allowlist.json" に登録されているアカウントだけ接続を許可する false : "allowlist.json"を参照せず、どのアカウントも接続を許可する |
server-port | 1〜65535 | 19132 | サーバーのポート番号(IPv4) 不特定多数の外部に対して公開する場合は、マイクラのデフォルトポート「19132」のままにしておいた方が良い |
server-portv6 | 1〜65535 | 19133 | サーバーのポート番号(IPv6) 不特定多数の外部に対して公開する場合は、マイクラのデフォルトポート「19133」のままにしておいた方が良い |
enable-lan-visibility | true false | true | LANの視認性 サーバーがデフォルトポート番号から変更した状態でも、クライアントから初期値(19132,19133)のポート番号で問い合わせが来たときに応答するかどうかの設定する true : ポート番号を変えていてもクライアントの問い合わせに応答する false : ポート番号を変えていた場合、そのポート番号の問い合わせのみに応答する trueは利便性が高いが、同一LAN内に複数のマイクラサーバーを運用しているような場合はfalseにする必要がある |
view-distance | 5以上の整数値 | 32 | 描画距離(単位 : チャンク) 値を低くするとサーバー処理を軽くできるが、その分遠くのものが描画されなくなる |
tick-distance | 4〜12 | 4 | シミュレーション距離(単位 : チャンク) プレイヤーからどれだけ離れたところまでmobや作物などの処理を行うかを設定する 値を高くするとより遠くのmobが成長したり作物が育ったりするが、その分サーバー処理が重くなる |
player-idle-timeout | 0以上の整数値 | 30 | キックするまでの放置時間(単位 : 分) 指定した時間プレイヤーが未操作の場合、サーバーからキックする 0の場合はどれだけ時間経過してもキックしない |
max-threads | 0以上の整数値 | 8 | サーバーが使用する最大スレッド数 0または設定項目を削除した場合、可能な限り多くのスレッドを使用する |
level-name | 文字列 | Bedrock level | ワールドの名前とワールドデータが保存されるディレクトリ名 ※ 文字列にセミコロンとファイル名に使用できない以下の文字は含めないこと /\n\r\t\f`?*\<>|\" |
level-seed | シード値 | 空白 | ワールドシード値 シード値を指定して生成したい場合に使用する |
default-player-permission-level | visitor member operator | member | プレイヤー権限レベル ワールドに初めてプレイヤーが参入した時、この設定に応じた権限が付与される visitor:探検はできるがブロック破壊などの操作は不可能 member:通常プレイが可能 operator:member権限に加え、各プレイヤーの権限設定、世界全体を細かく操作できるコマンドの利用が可能 |
texturepack-required | true false | false | テクスチャパックの強制 true : ワールドに適応されたテクスチャパックをクライアントに強制する false : ワールドに適応されたテクスチャパックをクライアントに強制しない |
content-log-file-enabled | true false | false | コンテンツエラーのログファイル出力 true : コンテンツエラーのログファイルを出力する false : コンテンツエラーのログファイルを出力しない |
compression-threshold | 0-65535 | 1 | 圧縮対象サイズ 圧縮するネットワーク ペイロードの最小サイズを設定する |
compression-algorithm | zlib snappy | zlib | ネットワークで使用する圧縮アルゴリズム zlib : zlibを使って圧縮する snappy : snappyを使って圧縮する |
server-authoritative-movement | client-auth server-auth server-auth-with-rewind | server-auth | サーバーとクライアント間での位置ズレの補正 client-auth : クライアント側で位置ズレ補正する server-auth : サーバー側で位置ズレ補正する server-auth-with-rewind : server-authに加え、サーバーが是正を行うとクライアント側でも巻き戻って補正する 補正はcorrect-player-movementがtrueに設定されている場合のみ有効 |
player-movement-score-threshold | 整数値 | 20 | 異常動作検知のしきい値 異常動作とレポートされる不一致時間の間隔 server-authoritative-movementの設定によっては無効化される ※1 |
player-movement-action-direction-threshold | 0〜1 | 0.85 | プレイヤーのアクションずれしきい値 1に近いほどプレイヤー視点の方向とプレイヤーが攻撃している方向を正確に一致させる 0は2つの方向が最大 90 度まで異なる可能性がある |
player-movement-distance-threshold | 小数点含む数値 | 0.3 | プレイヤーの位置ずれ検知しきい値 プレイヤーの位置について、ゲーム内の位置とサーバー内の位置がズレていると検知されるまでの距離に対する閾値を設定する server-authoritative-movementの設定によっては無効化される ※1 |
player-movement-duration-threshold-in-ms | 整数値 | 500 | プレイヤーの位置ずれ修正間隔 プレイヤーの位置について、ゲーム内の位置とサーバー内の位置のズレを修正する時間の間隔をミリ秒単位で設定する server-authoritative-movementの設定によっては無効化される ※1 |
correct-player-movement | true false | false | プレイヤー補正の有効/無効 true : 移動量がしきい値を超えた場合、クライアントの位置がサーバーによって補正される false : クライアントの位置がサーバーによって補正されない |
server-authoritative-block-breaking | true false | false | ブロック破壊の検証 true : サーバーはクライアントと同期してブロックのマイニング操作を計算。クライアントがブロック破壊をしようとしたとき、ブロックを破壊できるかどうかをサーバーが検証する false : サーバーはブロック破壊の検証しない |
chat-restriction | None Dropped Disabled | None | ゲーム内チャットの有効/無効 None:チャット使用可能 Dropped:チャットを無効化 Disabled:管理権限のプレイヤーのみチャットが使用可能 |
disable-player-interaction | true false | false | 用途不明(初期値のまま推奨) クライアントがワールドとやりとりするとき、他のプレイヤーを無視する必要があることをクライアントに通知する |
client-side-chunk-generation-enabled | true false | true | 用途不明(初期値のまま推奨) サーバーはクライアントに対して、プレイヤーのインタラクション距離外でビジュアル レベル チャンクを生成する機能があることを通知する |
disable-persona | true false | false | ペルソナ機能の有効/無効 true : ペルソナ機能を無効にする false : ペルソナ機能を有効にする |
disable-custom-skins | true false | false | カスタムスキン機能の有効/無効 true : カスタムスキン機能を無効にする false : カスタムスキン機能を有効にする |
※1 "server-authoritative-movement" の設定によっては無効化されると記載されているが、正しくは "correct-player-movement" と思われる。以前は"server-authoritative-movement" の設定値がtrue/falseだったので、その名残と思われる。
"server.properties" の "allow-list" が "true" の場合、この "allowlist.json" に登録されているユーザだけがサーバーに接続できるようになります。
ignoresPlayerLimit | 最大参加人数に含むかどうか true : 含む false : 含まない |
name | Xbox Live ゲーマータグを入力 |
xuid | xuidを入力 (未入力でもOK) |
以下は特定の2名を登録する場合の設定例
[
{
"ignoresPlayerLimit" : false,
"name" : "username1",
"xuid" : "1234567890123456"
},
{
"ignoresPlayerLimit" : false,
"name" : "username2",
"xuid" : "9876543210987654"
}
]
ユーザーの権限を個別に設定することができます。
permission | 権限の設定 visitor:探検はできるがブロック破壊などの操作は不可能 member:通常プレイが可能 operator:member権限に加え、各プレイヤーの権限設定、世界全体を細かく操作できるコマンドの利用が可能 |
xuid | 権限設定する対象のxuid |
以下は特定の2人の権限を設定する場合の例
[
{
"permission" : "operator",
"xuid" : "1234567890123456"
},
{
"permission" : "member",
"xuid" : "9876543210987654"
}
]
マイクラサーバーのアップデート手順
マイクラのバージョンアップが行われると、合わせてサーバー側もアップデートする必要があります。クライアントとサーバーのバージョンが一致していないとダメってことですね。
アップデート手順は以下の通りです。
「bedrock_server.exe」を実行して立ち上がったコンソールを閉じます。
起動していた「bedrock_server.exe」があるフォルダに対して、ダウンロードした最新のファイル・フォルダ一式を上書きコピーするのですが、以下のファイルはコピーしないようにしましょう。
- server.properties
- allowlist.json
- permission.json
これらはマイクラサーバーの設定ファイルなので、上書きしてしまうと設定がデフォルトに戻ってしまいます。
あとは通常通り「bedrock_server.exe」を起動します。
起動すると以下のようにコンソール立ち上がり、マイクラサーバーが動き始めます。
以上でマイクラサーバーのアップデートは完了です。これまた簡単すぎー!
まとめ
マイクラサーバーを立ち上げる方法を解説しましたが、かなり簡単だったと思います。
自宅サーバーを立ち上げるとサーバー設定を自由にカスタマイズできます。また、PCの性能によりますが、ゲーム機をホストにしていた環境から飛躍的にレスポンスが向上したりします。
さらに、Realmsやレンタルサーバーよりも維持費は経済的です(PCを持っていない or 性能が低いとかだと初期費用が掛かるけど)。といってもLAN外の人が接続するためには、ポート開放などを行い公開する必要になりますが、それはまた別の機会に紹介。
自分でも出来そうだなと思ったら、ぜひ一度お試しあれ。
コメント