RPGエンジン「World Wide Adventure」のJavaScript環境への移植および互換スクリプトの作成

Fri, Mar 13, 2015 in 時代背景 , JavaScript , TypeScript , CSS , HTML , RPGエンジン

卒業論文を終え、どうしてもやりたくて時間がとれなかったJava製ロールプレイングゲームエンジンWWAのJavaScriptの移植に再度着手することにしました。

下記の3プロジェクトをほぼ1人で遂行しました。

  • WWA Wing(WWAのJavaScript環境への移植)
  • WWA Loader(バイナリ形式WWAマップデータからデータのロード, JavaScriptのオブジェクトとして結果を返す)
  • WWA Phoenix(従来のWWAのHTMLタグをWWA Wingのタグに置換)

WWA Wing

Javaアプレットで動作するロールプレイングゲーム実行環境World Wide AdventureのJavaScript 版の実行環境です。 近年、非HTTPSなWebサイトでJavaアプレットを実行するには、実行を許可するサイト一覧である「例外リスト」への追加が必要になり、WWA本来の「サイトにアクセスしてすぐ遊べる」という特徴が失われたために開発を開始しました。

開発途中でWWAの公式サイトの公認を得ており、現在においては公式サイトのWWAもWWA Wingでの動作に対応しています。 また、ゲーム投稿サイトPLiCy (外部サイト) を利用することで、Webサイトを持たずにWWAを設置することができるようになっています。

公式サイトでの配布物では、ローカル環境でサーバを建てて、ゲームのテストを可能にするプログラム「WWA Debugger」(Aruneko氏による)と、 原作からのWWA作成ツール、およびWWALoaderが同梱され、それだけでWWAの開発が可能となっています。しかし、開発ツールはWindowsでのみしか動作しないため、作成ツールのマルチプラットフォーム化が今後の課題となっています。

2018年~2019年には、PLiCyさんの協力のもと、セーブデータの保存の永続化・複数化などの機能をリリースすることができました。

タイトルWWA Wing ( 発表当初「World Wide Adventure on JavaScript」)
作者WWA Wing Team (まつゆき, [Aruneko](https://www.aruneko.net), [Aokashi](http://aokashi.net), [ヒラリラー](http://hirarira.net))
ソースコードhttps://github.com/WWAWing/WWAWing
開発言語TypeScript, JavaScript, CSS, HTML
使用ライブラリpackage.json を参照
ライセンスMIT License
開発期間2015年2月3日〜現在

WWA Loader

WWAのマップデータ(バイナリ)を解析するJavaScriptプログラムです。 WWA Wingで必要になるため作成を開始しました。

開発当初は、基本的にWeb Workerとして呼び出すことを前提としているプログラムでしたが、多くのブラウザで直接本体に組み込んだ方が動作が速くなることがわかったため、 現在は webpack によって WWA Wing 本体と結合されて動くようになっています。他の npm で開発されている JavaScript のプログラムと一体的に動作させることも可能です (2021年2月現在、ブラウザに限る。 nodeなどのランタイムで動作させることも実現できるか検討中)。

マップデータファイル名を与えると、そのマップデータファイル名を XMLHttpRequest で取得し、解析結果をJavaScriptのオブジェクト として返します。

タイトルWWA Loader
作者WWA Wing Team (まつゆき, Aruneko, Aokashi, ヒラリラー)
ソースコードhttps://github.com/WWAWing/WWAWing/tree/develop/packages/loader
開発言語TypeScript, JavaScript
ライセンスMIT License
開発期間2013年4月〜現在

WWA Phoenix

WWA Wingは、WWA設置サイトの管理者が対応するまで、その効力を発さないという欠点があります。 ですので、既存のWWAを遊ぼうとした時には相変わらずJava版となってしまいます。 そこで、従来のWWAをWWA Wing相当の実行環境に置き換えるブックマークレットとして、WWA Phoenixを開発しました。

タイトルWWA Phoenix (開発当初「JumpGate」)
作者WWA Wing Team (まつゆき)
ソースコードhttps://wwaphoenix.github.io/
開発言語JavaScript
ライセンスCreative Commons CC-BY 4.0
開発期間2013年4月〜現在