LinuxでMinecraftを高速化し最適化するための5つの簡単なトリック

PCゲームをプレイしている人の写真.

巨大な構造物を作成することから、ほぼ無限の世界を探索することまで、Minecraftは無限の可能性を持つゲームです。Minecraftはほぼすべてのプラットフォームやデバイスで動作しますが、一部のユーザーはUNIX系システムでスムーズに動作させるのが難しいと感じるかもしれません。この記事では、LinuxでのMinecraft体験を最適化するためにできる5つの簡単なトリックを紹介します。

1. 軽量のMinecraftランチャーを使用する

LinuxでMinecraftのインストールを最適化する最も簡単なトリックの1つは、代替ランチャーを使用することです。これらは、デフォルトのランチャー体験を改善および拡張するサードパーティのアプリです。これらは、複数のMinecraftインスタンスを実行したり、MODを管理したり、ワールドバックアップを維持したりする機能など、追加の機能を備えていることがよくあります。

Ubuntu LinuxのPrism Launcherデフォルト画面のスクリーンショット.

それに加えて、代替ランチャーにはMinecraftの内部をより深く見ることができるツールが付属しています。たとえば、Prism Launcherには、インスタンスの現在および過去のゲームログを表示する「Logs」ツールがあります。これにより、Minecraftのインストールに関する既存の問題や潜在的な問題を診断するのが非常に簡単になります。

MinecraftインスタンスのためにPrism Launcherによって生成されたログのスクリーンショット.

さらに、代替ランチャーはインスタンスの隠れたオプションのいくつかを公開します。これには、カスタム画面解像度の設定、環境変数の設定、およびレガシーバージョンのサポートが含まれます。複数のゲームバージョンでプレイする私にとって、これはMinecraftインスタンスを追跡するために不可欠です。

2. 最小および最大メモリパラメータを一致させる

Minecraftサーバーを実行したことがあるなら、Javaのメモリ割り当て変数に慣れていることでしょう。要するに、これらはJava仮想マシン(JVM)がサーバーおよびクライアントプログラムのために準備するRAMの量を決定するパラメータです。

Minecraftの基本的なサーバースタートアップスクリプトを示すターミナル.

デフォルトでは、Minecraftは最小メモリ変数(-Xms)を約512 MBに設定し、最大(-Xmx)には2 GBを割り当てます。これにより、Minecraftがメモリ使用量を増やすにつれて、ガーベジコレクションの量が増加します。これが原因で、特に低スペックのシステムではFPSがカクつくことがあります。

これを修正するには、最小および最大の変数が同じ値に設定されていることを確認するだけです。このトリックはJavaのヒープサイズ変更機能を無効にし、ゲームを実行中にMinecraftが行う必要のあるガーベジコレクションを最小限に抑えます。

デフォルトのメモリ割り当てを変更するには、MinecraftランチャーのInstallationsタブに移動し、Minecraftインスタンスの横にあるアイコンをクリックします。

デフォルトのMinecraftランチャーのインスタンス編集メニューのスクリーンショット.

Editを選択し、次にMore Optionsをクリックします。

JVM Argumentsテキストボックスの内容を削除し、次のコード行を貼り付けます:

-Xms4G-Xmx4G

Saveボタンをクリックし、新しい設定を適用するためにMinecraftを起動します。

知っておくと良いこと: あなたは多作なMinecraftサーバー管理者ですか?今日、Craftyでホスティングバックエンドを最適化し、効率化しましょう。

3. 世代Zガーベジコレクタを有効にする

ガーベジコレクションは、すべてのJavaアプリケーションに不可欠な部分です。Minecraftでは、ゲームが未使用のチャンクやプレイヤーデータを解放する方法として機能します。正しく行われれば、これにより長期的により一貫した体験が得られます。

MinecraftはデフォルトのガーベジコレクタとしてParallel GCを使用しています。一般的なプログラムには機能しますが、ゲームのようなリアルタイムアプリでうまく動作するようには設計されていません。その結果、Minecraftはチャンクを生成するなどのメモリ集約型タスクを実行する際に、しばしば一時停止やカクつきが発生します。

この問題を修正するには、Installationsタブに移動し、Minecraftインスタンスの横にあるアイコンをクリックします。

ポップアップメニューでEditをクリックし、次にMore Optionsをクリックします。

JVM Argumentsテキストボックスに次のコード行を追加します:

-XX:+UseZGC -XX:+ZGenerational

世代ZGCを使用するために修正されたJVM引数を強調表示したスクリーンショット.

これにより、リアルタイムアプリ向けにより微調整されたGCである世代Zガーベジコレクタ(ZGC)が有効になります。私が見たところ、世代ZGCはチャンクを読み込む際に発生するラグスパイクの80〜90%を除去します。また、プレイセッション全体で一貫したFPSを維持します。

注意: 世代ZGCはJava 21以降でのみ利用可能です。つまり、上記のフラグはJava 8および17を使用している場合は機能しません。

4. パフォーマンス向上MODをインストールする

MODはMinecraftのアイデンティティの核心です。追加のコンテンツを提供するだけでなく、ゲームに新しい機能や調整を追加します。これらは、ブロックの見た目を変更するテクスチャパックから、Minecraftの動作を変えるモッドパックまでさまざまです。

それに加えて、MODはMinecraft自体に必要な最適化を提供することもできます。たとえば、OptifineやSodiumはMinecraftのレンダラーの動作を改善し、膨大なFPSの向上とより詳細なグラフィックス設定ページを可能にします。個人的には、SodiumとScalableLuxを使用しており、私のMinecraftインスタンスで約25〜30FPSの向上を実現しています。

Minecraftの人気パフォーマンスMODの2つを示すスクリーンショット.

Minecraftのレンダラーの改善に加えて、チャンク生成やメカニクスの動作を調整するMODもあります。これにより、追加のFPSの向上が得られるだけでなく、ゲームの不安定性やクラッシュのリスクが減ります。

MinecraftのチャンクパフォーマンスMODであるConcurrent Chunk Management Engineのウェブページを示すスクリーンショット.

余談ですが: 今日、Linuxで利用可能な最高のゲームをいくつかチェックしてください。

5. GraalVM JVMランタイムを使用する

結局のところ、MinecraftはJVM上で動作するJavaアプリケーションです。これは、最適でないJVMランタイムを使用している場合、ゲームのパフォーマンスが悪くなる可能性があることを意味します。

デフォルトでは、MinecraftはLinuxディストリビューションにあるJVMランタイムを使用します。通常、これはディストリビューションのパッケージリポジトリからインストールした場合のOpenJDKです。これは悪くない選択ですが、通常、Minecraftのようなリアルタイムアプリに利益をもたらす最適化が欠けています。

OpenJDKのウェブページを示すスクリーンショット.

これを修正する方法の1つは、GraalVMランタイムをインストールすることです。これは、リアルタイムJavaプログラムを実行できる効率的で高速なバイナリを提供するためにJITおよびAOTを使用するOracleのパフォーマンス重視のソリューションです。私の経験では、これによりMinecraftの応答性とFPSが大幅に向上します。

とはいえ、GraalVMを使用する最大の欠点は、世代ZGCが現在このランタイムで動作しないことです。そのため、GraalVMのガーベジコレクタとしてParallel GCまたはG1GCを使用する必要があります。

JVMランタイムを変更するには、まずGraalVMバイナリをプロジェクトウェブサイトからダウンロードします。

tarファイルをホームディレクトリに抽出し、新しいターミナルセッションを開きます。

GraalVMフォルダーをディストリビューションのJVMディレクトリにコピーします:

sudocp-rv ./graalvm-jdk-*/usr/lib/jvm/

MinecraftランチャーのInstallationsタブに移動し、インスタンスのをクリックして、More Optionsを選択します。

Java ExecutableテキストボックスのBrowseをクリックし、GraalVMバイナリの場所にある「/usr/lib/jvm/」に移動します。

GraalVMフォルダーに入り、「bin」フォルダーを選択し、「java」を選択します。

GraalVM JVMバイナリの場所を示すブラウズウィンドウのスクリーンショット.

これらの簡単なトリックを駆使して、残ることはそれらを使用してLinuxでの個人のMinecraftワールドを最適化することだけです。そのために、独自のカスタムワールドを生成するために使用できる最高のMinecraftシードをいくつかまとめました。

画像クレジット:Fausto Sandoval via Unsplash。すべての変更とスクリーンショットはRamces Redによるものです。