Eaglercraft:ブラウザで動くMinecraft、その壮絶な開発秘話と法的闘争

Eaglercraft:ブラウザで動くMinecraft、その壮絶な開発秘話と法的闘争

Eaglercraft:ブラウザで動くMinecraft、その壮絶な開発秘話と法的闘争

あなたは、単一のHTMLファイルやWeb URLを開くだけで、Webブラウザ上でMinecraft Java Editionのフルバージョンをプレイできることを知っていましたか? 驚きましたか? 私は驚きました。しかし、すべきかどうかは別問題です。私の弁護士は「ノー」と言っていますし、この免責事項を表示するように指示されました。ですから、ご自身の判断でお願いします。

それでも、私は、非常に熱心な開発者がMinecraft Java EditionをWebブラウザ内で完全に動作させる方法、その人気、そしてそれによって生じた論争、特にMojangの弁護士との間で起きた出来事について、お話ししましょう。このビデオをアップロードすることには大きなリスクがありますが、皆さんに捧げます。さあ、始めましょう!

Eaglercraftの誕生:不可能を可能にした開発者の挑戦

全ては、Lax1Dudeというプレイヤーから始まりました。2020年、彼はMinecraftをWebブラウザで動かすという、実にクールなアイデアを思いつきました。2016年以降、通常のJava版Minecraftを最新のWebブラウザで実行することはサポートされなくなっていたからです。彼のアイデアは、JavaScriptを使用してゲーム全体を実行することでした。

JavaScriptは通常のJavaとは異なるプログラミング言語ですが、Webブラウザで実行でき、インターネット上のウェブサイトの少なくとも98%で使用されています。私自身のウェブサイトでもJavaScriptを使用しています。もし彼がこれを成功させたら、それはMinecraftエンジニアリングの信じられない偉業となるでしょう。

Lax1Dudeは早速作業に取り掛かりました。Java版MinecraftをJavaScriptで実行するには、ゲーム全体を**TVM(TeaVM)**というツールでコンパイルする必要がありました。TVMは基本的に、通常のJavaアプリケーションをJavaScriptで動作させるためのツールです。

しかし、残念ながら、話はそう簡単ではありませんでした。プログラミングについて少しでも知っている人なら分かると思いますが、プログラムは通常、依存関係(依存ライブラリ)を必要とします。これは、プログラムが動作するために依存する他のコードの断片のことです。ケーキを作る時の材料のようなものです。レシピに卵がなければ、ケーキはうまく固まりませんよね。

Minecraftが必要とする依存関係の1つは、**LWJGL(Lightweight Java Game Library)**です。これはゲーム全体の主要な基盤です。LWJGLがなければ、Minecraftは全く動作しません。問題は、LWJGLをTVMでコンパイルできないことでした。さらに悪いことに、Minecraft 1.6以降のバージョンでは、LWJGL以外にも多くの依存関係が必要でした。

1.5からの挑戦:不可能への挑戦

そこで、プロジェクトの最初のバージョンでは、彼はMinecraft 1.5(2013年リリース)をテスト対象として、妥協することにしました。

Lax1DudeがLWJGLを動作させるための解決策は、丸1ヶ月かけてLWJGLの依存関係全体を手動で書き直すことでした。これにより、TVMとの互換性を持たせ、JavaScriptで動作させることができました。

しかし、これは彼が対処しなければならなかった多くの問題の1つに過ぎませんでした。その他の問題としては、グラフィックの適切な動作、JavaScriptによって発生するラグの問題をゲームの複数の部分を書き直すことで解決すること、そしてサーバーの適切な動作が含まれていました。

プログラミングとテストに数ヶ月を費やした結果、2020年末頃には、Eaglercraftと名付けられたMinecraft 1.5の完全移植版Webバージョンがほぼ完成し、安定した状態になりました。

Eaglercraft X:1.8への挑戦と秘密の開発

それから数年後の2022年5月、Lax1DudeはEaglercraftをMinecraft 1.8にアップデートすることを決めました。1.8を選んだのは、彼の好きなバージョンであり、多くのMinecraftサーバー(Hypixelを含む)で広くサポートされていたためです。

しかし、これはさらに多くの依存関係の修正を必要としました。それらをJavaScriptで動作するように修正しなければなりませんでした。その他にも多くの変更が必要でしたが、それら全てを説明していたら、この記事は長くなりすぎてしまいます。そこで、Ayumi2000という別の開発者がLax1Dudeを支援しました。

重要なのは、Eaglercraft 1.8の開発は全て秘密裏に行われたことです。Lax1Dudeは、うまくいかない可能性がある場合に虚偽の約束をしたくなかったからです。しかし、彼らは最終的に成功し、7ヶ月以上かかりました。Lax1DudeはこのバージョンをEaglercraft Xと呼びました。

Eaglercraftという名前の由来:中学生の秘密の言葉

ここで、なぜこのプロジェクトがEaglercraftと呼ばれたのかを説明しましょう。Lax1Dudeが中学生の頃、彼は秘密の言語を作ることを面白いと思っていました。「Eagler」は、ワシの卵を食べる人を意味し、侮辱として使われる言葉でした。

Lax1Dudeは、Eaglercraftが人気になったら、ユーザーの大半は中学生だろうと考え、中学生の日常語に「Eagler」が浸透することを期待して、この名前をつけました。そして、その夢は現実のものとなりました。Eaglercraftは中学生の間で非常に人気を博し、Eaglercraftを単に「Eagler」と呼ぶのが一般的になりました。

Eaglercraftの人気:無料、オープンソース、そしてアクセス性の高さ

Eaglercraftがこれほど人気になったのには多くの理由があります。まず、無料かつオープンソースであることが挙げられます。しかし、もちろん、その合法性は非常に疑問です。Minecraft for free.comがどうなるか、私たちは皆知っていますよね。

唯一の違いは、今回、NotchがQuakeをプレイして全体を騒がせる代わりに、Minecraftは数十億ドル規模の企業、マイクロソフトが所有し、数十億ドル規模の企業の弁護士がバックアップしているという点です。この点については、すぐに詳しく説明します。

2つ目の理由は、極めてアクセスしやすい点です。Googleで「Eaglercraft」を検索すると、Eaglercraftクライアントをホストする無数のウェブサイトが表示されます。オープンソースであるため、誰でもコードを自分のウェブサイトにコピーして、Eaglercraftのインスタンスをホストできるのです。

実際、Lax1Dudeは意図的にEaglercraftを、15MB未満の単一のHTMLファイルからローカルで実行できるように設計しました。比較のために、通常のMinecraft 1.8のアセットだけでも100MB以上です。これは、不要なものをすべて削除し、残りを圧縮することで実現しました。音楽は削除され、サウンドやテクスチャの一部は圧縮編集されました。

Eaglercraftはファイルからローカルでプレイできるため、インターネット上のウェブサイトにアクセスすることなくプレイできます。これが、Eaglercraftが学校生に非常に人気がある理由です。IT部門は通常、学校Wi-Fiでこのようなウェブサイトをブロックするからです。

DMCAの嵐:Mojangの法的反撃

学校IT管理者をかいくぐる以外にも、Eaglercraftは、多くの学校の生徒が使用しているChromebookを含むほぼあらゆるハードウェアでプレイできるため人気があります。人々はさらに創造性を発揮し、Samsungの冷蔵庫やTesla Model Xでさえも起動させています。問題は、車にマウスとキーボードを接続できないので、実際にはワールド内を移動できないということです。

さて、このプロジェクトの合法性の問題に移りましょう。もちろん、コンパイルされた形式で配布されているEaglercraftは、MinecraftのEULA(エンドユーザー使用許諾契約)に違反しています。「あなたは、私たちが作ったものを配布してはならない」と記載されているからです。

しかし、Lax1Dudeはこのことを考えていました。Eaglercraft Xでは、MinecraftのMODのように、コードをゲームコードに適用するパッチの形で公開するというアイデアを思いつきました。違法にデコンパイルされたMinecraft 1.8のソースコードの完全なコピーをインターネットにアップロードするのではなく、です。

しかし実際には、これはうまくいきませんでした。Eaglercraftをホストしたほとんどのウェブサイトは、コンパイルされた完全なコピーを配布していたからです。そして、Mojangがついに堪忍袋の緒を切って、Eaglercraftへの取り締まりを開始するのは時間の問題でした。

DMCAの連鎖反応:終わりなき闘い

2022年11月、最初の記録されたEaglercraft関連のDMCA(デジタルミレニアム著作権法)削除要求が、App Detexという代理店によって中国のEaglercraftサーバーに送られました。App DetexはMojangの親会社であるMicrosoftと契約しており、彼らの代わりにDMCA削除要求を送信することができます。

DMCA削除要求とは、著作権者のソフトウェアの違法コピーに対する正式な通知であり、潜在的な違反者にコンテンツを削除するよう要求するものです。通常、要求に従わなければ、著作権保有者は法的措置を取ることができます。

この中国サーバーへのDMCA削除要求はLax1Dudeを驚かせ、彼は何もリスクを取りたくなかったので、EaglercraftのGitHubリポジトリを削除することにしました。しかし、事前に人に知らせていたため、2000人以上の人がプロジェクトをフォークすることができました。これにより、Mojangにとって、全てのフォークに対してDMCAを発行するのは非常に面倒なことになりました。

その後まもなく、Lax1DudeはGitHubアカウントからプロジェクト全体を削除し、Mojangの手の届かないところに置きました。

あるいは、そう彼は思っていました。数日後、Lax1DudeはDMCA削除要求で殺到されました。今回は、Mojangの本社から直接でした。まず、彼のGitHubアカウントで、彼が削除するのを忘れたMinecraft Beta 1.3バージョンのEaglercraftのコピーに対して。次に、Eaglercraftをホストしていたいくつかのウェブサイトで、そして彼が共有したいくつかのGoogleドライブのリンクで。

さらに、Lax1Dudeは、彼がEaglercraftをホストしていたため、2つのDMCAが彼のISP(インターネットサービスプロバイダー)に送信されたことも知りました。そして、これらに加えて、MojangはDiscordに連絡し、彼のサーバーを削除し、アカウントを停止させたとされます。

最後の試みと、Mojangからの沈黙

これを受けて、Lax1DudeはこれらのソースからすべてのEaglercraftコンテンツを完全に削除することを決めました。DMCA要求と戦うのは賢明ではありません。

その後、Lax1DudeはEaglercraftを放棄しました。結局のところ、彼は著作権法を侵害しており、Mojangは激しい反撃をしていました。諦める時でした。引退、辞任、終了。

…いや、そうではありませんでした。

終わらない戦い:Eaglercraftの復活と継続的な法的闘争

複数の削除要求にもかかわらず、Lax1DudeはEaglercraftの作業にすぐに戻り、GitLabというGitHubの代替サービスで編集を続け、さらに改善を続けました。

しかし、MojangはGitLabに連絡し、彼のすべてのリポジトリとアカウントを削除するよう要求しました。それ以降、DMCAによる削除と他のプラットフォームへのEaglercraftの再アップロードというサイクルが何度も繰り返されました。Lax1Dude自身の投稿、複数のEaglercraftサーバー、そしてプロジェクトのフォークが含まれていました。

この時点で、Mojangは非常に多くのDMCA削除要求を送信していたため、法的チームはDMCA削除要求のテンプレートを作成し、疑わしい違反者に送信するようになりました。

Lax1Dudeは合計8つのDMCA削除要求を受け取りました。そしておそらく数百ものDMCAが、何らかの方法でEaglercraftをホストしていた他の人々に送られました。Eaglercraftについて説明する無数のYouTube動画もDMCAで削除されました。そのため、私自身がこのビデオをアップロードすることで、大きなリスクを取っています。

この時点で、MojangがEaglercraftを消し去りたいと考えていることは非常に明らかでした。そこで、Mojangをなだめる最後の試みとして、Lax1DudeはGitHubアカウントにリポジトリを作成し、MojangにEaglercraftのソースコードをMinecraft.netで公式に使用することを提案しました。理由は、EaglercraftがChromebookのようなローエンドのハードウェアで非常にうまく動作するため、公式ゲームでも役立つ可能性があるからです。

しかし、残念ながらMojangはこれに応答しませんでした。おそらく、彼らは単に関心がなかったのでしょう。

法的措置の現状と未来への展望

この時点で、これらのDMCA削除要求の結果が実際に何かあったのか疑問に思うかもしれません。結論から言うと、MojangはまだEaglercraftについて誰かを訴追していません。

私は弁護士ではないので、なぜそうなのか推測するしかありません。それは、Lax1Dudeが彼のプロジェクトに対して一切の金銭を受け取らないことを拒否しているという事実によるかもしれません。

Lax1Dudeは、彼がいまだにEaglercraftプロジェクトに取り組んでいる唯一の理由は、MinecraftをWebブラウザで動作させるという挑戦を楽しんでいるからだと私に言いました。それだけのことです。

もし金銭的利益がなければ、Mojangはそれを彼らの収益に対する脅威として低く評価するかもしれません。ただし、広告で収益を得ている他のEaglercraftホスティングサイトは、別の話かもしれません。

それがEaglercraftの物語です…今のところ。次に何が起こるか分かりません。Eaglercraftがさらに新しいバージョンのMinecraftに対応するかもしれません。Mojangがそれ以前に閉鎖しない限り。ですから、私はこのプロジェクトを監視し続ける必要があります。