心の中でロールプレイングしてください。レトロを超えたレトロっぷりですが、このカラフルな矩形を画像に置き換えれば見た目もがらりと変えられますので、改造してみてください。フリー素材とかで検索するとよいかと思います。マップについてはデータを用意するのが面倒だったので、noise()を使って自動生成しています。具体的には、下記のような計算式で雲模様のような値を得ています。255して塗りつぶした色でチップを作ったとしたらこんな感じ。その値を適当なしきい値で黒っぽいところは海、灰色は草原、白っぽいところは山......といった形で分けています。type;}そうするとこんな感じの地形として表示できます。毎回ランダムに変わりすぎると調整しづらいので、noiseSeed(1)と書いて乱数の種、乱数系列を固定化しています。どこまでも世界が広がっているので探索してみてください。作者にも先がどうなってるのか分かりません。これが乱数の醍醐味の一つですね。そのまま歩いていると、敵と遭遇して戦闘が始まります。Attackで攻撃するか、Escapeで逃げるかしましょう。Escapeは失敗することもあり、その場合は敵の攻撃を一方的に受けます。敵を倒すと経験値が得られて、一定値を越えるとレベルアップします。drawShape()で描いている矩形も、Enemyクラスでオーバーライドして画像ファイルと差し替えて改造するのも(以下略)。遠くに歩いた先の敵ほど強いので、油断は禁物です。ちなみに草原より、林や山の方に敵が多く潜んでいます。敵の攻撃を受けてHPが0になってしまうとレベルやパラメータが大きく減ってしまうので、ご注意を。受けたダメージは歩くと回復します。最初は街の人との会話もランダムな謎言語文字列生成で作ろうかと思っていたのですが、そこまでは間に合わず断念――。あと戦闘をコマンド式のこのような別モードではなく、ぶつかってダメージを与えるようなアクションにするのも楽しそうです(コマンド式よりコード減りそう)。デモとソースコード以下のリンク先で、HTML5版のサンプルデモとプログラムのソースコードを確認できます。RPGサンプルプログラムはJavaScriptモードだけでなく、そのままJavaモードでも使えます。Java版とnoise関数で得られる値が微妙に異なったので、isJavaScriptで場合分けして値を調整しています。画像を使えばこの通り矩形描画のかわりに画像ファイルを使うようにプログラムを書き換えて、マップチップやキャラクター、背景、フレームなどを描画するとこんな感じにできます。モンスターは10種類登録してあります。オフィスに住むというイルカも参戦?こちらのサンプルは360行ではなく、370行になってしまいました。