Elara’s Library

MinecraftのMODに関するあれこれを書いてゆきます。(主に1.12.2)

【日本語で読むマイクラMOD_028】FoamFix for Minecraft

FoamFix for Minecraft

(※内容は、19年02月12日時点のCurseforgeものです) 

minecraft.curseforge.com

MOD Name: FoamFix for Minecraft
MOD Owner : asiekierka

(※画像は、引用元のサイトでご確認ください)

1.7.10以降のMODが導入されたMinecraft (Modded Minecraft)を最適化させるよう設計されたFoamFixは、対象を絞ったシンプルな最適化を行うMODです。

観測したところによると、Javaのヒープ使用量(メインメニューのVisualVMを使用して測定)が、最大で50%減少することがあります!

Features/内容:

(ノ◕ヮ◕)ノ*:・゚✧

FAQ:

  • Q:パフォーマンスに問題があって、FoamFixを削除するとそれが解消されたんだけど!
  • A:必ず最新版にアップデートを行ってください。私自身がコンピュータのハードを何千通りも用意してFoamFixをテストするのは不可能ですし、たまにそれらの中で特異な問題が起きます。最新バージョンにアップデートをしても問題が解決しない時は、私のほうに連絡をしてくださいね!

  • Q:Lawful版はどこにあるの?
  • A:現在推奨されている方法はAnarchy版で、"enableCoremod"をfalseに設定することです。
    それはまだcoremodが存在していることを示しますが、coremodは実際のゲーム炉軸に変更を及ぼしません。
    それでもあなたがLawful版を求めるなら、そのビルドはここで行われています。

  • Q:FoamFixがクライアント/サーバー側にない場合、サーバー/クライアント側で実行ができますか?
  • A:Yes.

  • Q:FoamFixのバージョン/エディション(OO版)を、混在させることはできますか?
  • A:Yes.

  • Q:FoamFixを1.7.10にバックポートできますか?
  • A:No.FoamFixは主に1.8+のMinecraft MODをターゲットにしています。
    Minecraft 1.7.10 MODのユーザーには、こちらのガイドをお勧めします。

  • Q:バニラ向けのFoamFixを製作してくれませんか?
  • A:FoamFixのほぼ全ては、ForgeとMODにおける一般的なメモリ使用パターンの最適化に焦点を置いています。バニラ自体はForge + FoamFixよりも効率的であるため、バニラに移植してもほとんどメリットはありません。

  • Q:開発環境において、FoamFixを実行させることはできますか?
  • A:Yes, けれども、あなたはBON2、または同じようなツールを使って、手動で難読化(deobfuscate)を解除させる必要があります。

Bug Reporting / バグの報告:

まず最初に、FoamFixなしの状況でバグを再現を試みてください。FoamFix無しでもバグが存在している場合、それはFoamFixによる不具合ではありません。

FoamFixが導入されている場合にのみ現れるバグの報告は、

  • ここからのみ報告を行ってください。私は同じような問題がないかをたどることができます。
    特に、他のMOD開発者への報告はしないでください!
  • 別MODによって不具合が引き起こされているという結論に達した場合、私は自分自身で他の開発者に連絡を行い、それらの修正についての議論に最善を尽くします。けれども、不必要なバグ報告はすこし迷惑です。

Additional Tips / 追加のTips:

(この項目でのいくつかの箇所は、包括的な最適化ガイドとして書き直されることがあるので、注意してください)

  • forge.cfgにおいて、alwaysSetupTerrainOffThreadの有効化を行います。(0.6.3以降、FoamFixは自動的に新しいインスタンスでこれを行います!)
  • BetterFPS をインストールする - それはFoamFixの対象になっていない、Minecraftにおける他の分野の最適化を行います。
  • "ghost chunk loading"関連のラグ(30秒ごとの顕著なラグスパイク)が発生している場合、問題を部分的に回避する方法は、forgeChunkLoading.cfgにおけるdormantChunkCacheSizeの値を増やすことです。
  • 一部のGPU/ドライバ構成では、ミニマップを無効にする(ミニマップレベルを0に設定する)とFPSが大幅に向上します。
    これは、更新するテクスチャの量が増え、アニメーションするテクスチャの更新が大幅に増えることで発生するラグであり、ミニマップレベルの量に比例して肥大化します。
    0.6.3以降、FoamFixは新しいインスタンスにおいて初期設定としてこの設定を行います。
  • Dedicatedサーバーでmax-tick-time=0に設定すると、"java.lang.Error: Watching server"に関連したクラッシュを解消できあmす。なぜこれが起こるのか、まだ調べ中です!

Common Crashes / よくあるクラッシュ:

  • FoamFix 0.9.6+以降で起こる、java.lang.NoSuchMethodError: net.minecraftforge.common.model.TRSRTransformation.isIdentity()Z” - Forgを最新の推奨(latest)バージョンに更新するか、FoamFixを0.9.5にダウングレードします。
  • java.lang.IllegalArgumentException: Cannot set property [...], it is not an allowed value (※OO[...], を設定できません。許可された値ではありません) - このエラーの原因となるコードパスは、一般的な振る舞いに非常によく似ており、FoamFixなしでも同じようなクラッシュが引き起こされるはずです。
    FoamFixが無いと再現ができない、ということを確認してください。
  • FoamFixと共にSpongeForgeを使用している場合(私はそれについての対応はしていません)、MixinMutableBlockPosに関するよくあるクラッシュは、config/foamfix.cfgにおけるcoremod.optimizedBlockPosを無効にすることで解消できます。

Support / サポート:

  • バグ報告には、GitHubのissue trackerのみを使用してください。さかのぼるのが楽になります。
  • "not supported(サポートされていない)"というのは、”全く機能しない”という意味ではなく、”状況によっては壊れることがあり、さまざまな理由で支援できないことがある”という意味です。注意してください!
  • 以下のMODは、それなりの範囲でサポートされており、それらのやり取りに関するバグの修正には最善を尽くします。
    • BetterFPS - CPUにおけるL2/L3キャッシュが少ない場合は、BetterFPSの使用をおすすめします。
    • FastWorkbench/FastFurnace - 入れる必要があります。強くお勧めします。
    • VanillaFix - 影響の強すぎるきらいがありますが(ちょっとこわいですが)、効果的です。必要と思うならば使用してください。
    • 他のほとんどのFOSS最適化モジュール
  • 以下のMODはサポートを行っていないので、それらとのやり取りに関して満足のいく修正は保証できません:
    • FastCraft 2 - ライセンスが非常に厳格であり、開発者を頼りにしないとデバッグは不可能です。
    • NotEnoughIDs - 2017/09以降、メンテナンスされていません。
    • OptiFine - ライセンスが非常に厳格であり、開発者を頼りにしないとデバッグは不可能です。
    • Sponge - 互いのエンジンによる変更のいくつかが競合しています。(サーバー側にSpongeがある場合でも、クライアント側がFoamFixを使用してSpongeのあるサーバーに接続することはサポートされています)
    • TexFix -
    • その他、ほとんどの独立した最適化MOD


あなたが今後の私のMOD開発を支援したいと考えているならば、上記のリンク、またはPatreonを通しての寄付をご検討ください。