懐古と検証を兼ねて、個人サイトにJava製の横スクロールミニゲームを設置してみました。
Javaはセキュリティ問題で2015年からブラウザで再生することができなくなっていましたが、CheerpJによって安全に再生できるようになっていました。
内容については、往年の個人サイトによく設置してあったという横スクロールゲームを意識してみました。

動作確認、ゲームページはこちら↓
CheerpJとは
CheerpJはイギリスの企業が公開しているJava仮想マシンです。
『CheerpJにはWebAssemblyとJavaScriptにコンパイルされた完全なOpenJDKランタイムが含まれています。』とのこと。
Javaがブラウザでブロックされたのはセキュリティ的な問題があったからで、WebAssembly上で再生するなら安全ということのようです。JavaとJavaScriptは別物のはずなのに、こうして共演することもあるんですね(初心者並感)。
フラッシュエミュレーター:Ruffleは有志が着々と改良を重ねていますが、こちらはJavaをほぼそのまま変換しているので当時の挙動そのままで再生できるのでは。
なお今回は個人利用なので無料で使えますが、企業が利用する場合は商業ライセンスが必要です。
横スクロールゲーム?
今回意識したのは、かつての(2000年代前半?)個人サイトによく設置されていたらしい横スクロールのゲームです。詳しい仕組みは分かりませんが、画像を差し替えられるミニゲームがレンタルという形で提供されていたようです。タイトルは『横スクロールでGo!』とのこと。
サービスが2014年に終了しているので内容を確認することは出来ませんでした。動画なども見つけられず。WebArchiveで断片的に知ることは出来るかも。
プレイヤーとアイテム、背景画像などをそれぞれ変えられる他、いくつか設定項目があったようです。なんとなく個人サイトでオリキャラバージョンなどを見かけたような気がしますが定かではありません。
記憶の中では元となったゲームの画面はもっと横長で、プレイヤーはマウスに追従して画面を縦横斜め自由に奔走できた気がします。ランキングがあったかも。横スクロールという点と、画像を差し替えられるので統一性を意識しないとカオスになるという点においては近いかもしれない……。
元のゲームとは結果としてかなり違うものになりましたが、個人的には満足です。

スコアに応じて4種類のエンディングが表示されるようにしました。
キャラクターはしまうまです。当サイトのアイドル的存在です。
こうして胴体に字を書くとなんとなくBSEのニュースを彷彿とさせられます。検索したら2001年の抗議活動とのこと。2001年!?? 歴史のドキュメンタリーで見て印象的だったのかも。意図せず当時の時代的背景の一端に触れられました。
追記:先駆者たち
記事公開の翌日に再検索したところ、『横スクロールでGo!』をNintendo Switchのプログラミングゲームで再現している先駆者を発見。
実際に遊べてはいませんが、アイテムを集めつつ長く飛び続けるゲームのようです。本家のゲームシステムも多分そうです。
私が作ったものは時間制限があるシンプルなものですが、本来は体力ゲージを回復させながら走行距離を稼ぐ内容だったという答え合わせができました。それにしても他のオマージュゲームを見つけられてよかったです。個人サイトでかなり流行っていたというのも信憑性がありそう。
別の技術検証の記事もありました。
当時のスクリーンショットを確認できてアツいです。体力切れの時にはプレイヤーがどんどん沈んでいき、その途中で運良くアイテムを拾えれば続けられるみたいなテクニックが使えそうなことも確認できました。
その他のブラウザJavaゲームツール
Javaの知識がなくても個人サイトに設置できるタイプのツールが流行っていたようです。
現代では多くのブラウザJavaゲームツールは過去のものになりましたが、いくつかは存続しているようです。開発者自身あるいは有志によって支えられているようです。
WWAも元々はJavaゲームでしたが、有志がツールを作り直しており、現代でもゲーム投稿サイトにWWAの新作が投稿されています。かつてのWWAも、今回使ったCheerpJで動かすことが出来るようです。
スーパー正男というアクションゲームツールは、Canvas版として再生できるような仕組みが作られていたようです。
画像を差し替えるだけのお手軽ツール。個人のイラストサイトで流行っていたそうです。当時のことはWebArchiveでもなかなか調べられない領域なので詳しいことは分かりませんが……。
Javaの思い出
以前にJavaに似ているとされるKotlinを使って4択テストアプリを作ってGoogle Playで配信していたのですが、あれから5年も経っているし、以後はUnity版に差し替えたしで全然覚えていませんでした。
Javaといえばコーヒーのイメージでしたが、今回初めてキャラクターを認知しました。Duke(デューク)さんとのこと。不思議な親しみやすさを感じる絶妙なデザインです。左利きというこだわりの設定があるらしい……。

余談
今回この件を通じて、wasmがWebAssemblyの略だったことを知りました。今までUnityのゲーム制作やRuffleの検証で見かけていたのにあまり関心がありませんでした……。WebAssemblyが何者なのかまだよく分かりませんが、今後もお世話になりそうです。
当時のことは今となっては分からないので、こうした文化はWeb歴史家みたいな専門家がヒアリングして残しておかないと消えていくばっかりなのかなと思います。いろいろな人が当時の思い出を各々語って記事にしているのを見かけますが、個人サイトは点在していたし、界隈によって大きな偏りがあるのでは。昨今はLLMが勝手に歴史を補完してしまうので、記事として書かれたものだけが正史になってしまうかも。
おわりに
現代の個人サイトにJavaのミニゲームが設置できることが確認できて満足です。懐古や検証目的以外の場合は、わざわざJavaのブラウザゲームとしてではなく別の方法を検討することをおすすめします。
これで万が一個人サイト復権の流れが来ても安心です。検証は楽しいものの、またUnityでの制作に戻ろうと思います。
























