『マインクラフト』Java版、「あえて読みづらくしたソースコード」を廃止へ。よりModを作りやすく
『マインクラフト』のJava版では、コードの「難読化」が廃止される。

Mojang Studiosは10月30日、『マインクラフト』のJava版について、コードの「難読化(obfuscation)」を廃止する方針を発表した。これにより、Modの開発やアップデートやデバッグなどがよりしやすくなることが期待されている。
サンドボックスゲーム『マインクラフト』ではプラットフォームに応じて2つのエディションが展開されており、PC向けの「Java版」とコンソールやスマートフォンでもプレイ可能な「Bedrock版(統合版)」が存在する。Java版はその名の通りJavaというプログラミング言語で書かれ、後発のBedrock版はC++で開発されている。

このうちJava版について、今回コードの難読化を廃止すると発表した。難読化とは、ゲームをはじめとするソフトウェア開発において、意図的にコードを複雑にすることでプログラムを解析しにくくすること。代表的な手法としては名前難読化があり、これはクラス名や関数名などの識別子を短い文字列に置き換えることで読み取りづらくするものだ。
難読化はコードの流用防止やチート対策などを目的として導入される一方で、Mod開発者によるアップデートやデバッグが困難になるという側面も存在した。『マインクラフト』でも難読化の手法が用いられていたものの、Mod開発者にとっては難読化されたコードを読み解く必要があった。そんな中、2019年9月にリリースされたスナップショット19w36a以降、Mod開発者に向け、名前難読化がどのようにおこなわれているかを示す対応表として「難読化マップ」が提供されてきた。ところが、「難読化マップ」を用いて難読化を解除するには専用のツールを用いる必要があり、解読にはコストを要していた。

Mojang Studiosによれば、次のゲームドロップ「Mounts of Mayhem」の正式リリース以降のスナップショットでは、クラス名や変数名などについて、難読化されていない元の名称が使用されるようになるとのこと。なお、難読化されたコード向けに設計された既存のツールにとっては問題となる可能性があるため、次のスナップショットからは、難読化されたバージョンに加えて、難読化がおこなわれていないバージョンも試験的に配信するそうだ。
長年開発が続けられてきた『マインクラフト』Java版では、Modコミュニティが重要な役割を占めており、Mojang StudiosもModこそが本作の核であると表現している。今回の変更により、今後より活発でスムーズなMod開発がおこなわれることに期待できそうだ。




