戦闘機対戦ゲームをFREDDYで実装!
GFighter:FREDDYによる対戦型空中戦ゲーム
ここでは、FREDDYの技術的な話は忘れて、ゲームを楽しんでいただきたい。FREDDYの利点はネットワークを意識せずサーバー上のデータにアクセスできることである。この仕組みを発展させることにより、通信を意識せず、複数のWebブラウザ間でデータの交換をすることができる。この仕組みの効果的なデモンストレーションとして、GFighterという、対戦型の戦闘機による空中戦ゲームを実装した。
このゲームのWebアプリケーションはFREDDYのWebサイトのGFighterのページ(http://freddy.yokoyama.ac/index.php/GFighter)で公開している。なお、このゲームはFirefox 3とInternet Explorer 7で動作確認を行っているが、あくまで研究段階のステータスであり、動作は保証しない。ゲーム画面のスクリーンショットを図1に示す。
簡単にこのゲームの操作を説明する。このゲームはWebブラウザさえあれば、インストールやログイン無しに誰でもすぐに遊ぶことができる。
GFighterの起動ページ(http://freddy.yokoyama.ac/demos/dogfight/index.php)をクリックしてゲームを起動したら、ワールドと機体を選択する。このゲームは4人まで対戦できるワールドが2つ用意されている。各機体アイコンの横に「この機体で参戦する」または「この機体は使用中です」と表示されている。使用中の機体がある場合、すでにほかのユーザーがワールド内にいて、対戦を待っている状態である。ゲームに参加するには「この機体で参戦する」をクリックする。
すると、出撃地点とコールサインを決めるウィンドウが現れるので、それらを決定し「出撃」をクリックする。これにより画面が切り替わり、ゲームが開始される。ゲームではほかのユーザーの飛行機を探し、それを撃墜することでポイントを得る。なおWebブラウザの画面は全画面表示にしておくと見やすい。
GFighterの操作説明
ゲームは、Googleマップ上で展開される。まず、画面内に青い輪で強調された戦闘機が表示されるが、それが自分の操作する機体である。機体の操作はキーボードで行い、マップの視点操作はマウスで行う。このソフトのデモンストレーションはIBM(当時)のThinkPadで行ったため、トラックポイントを使うと一番効率的にキー操作できるよう設計されている。
機体の左旋回、右旋回はそれぞれ「A」と「D」で行う。スピードを上げるには「E」、下げるには「C」である。最高速のアフターバーナーを使用するには「W」、最も速度を落とすには「X」を押す。燃料には限度があり、速度が上がると燃料消費が激しくなる、一方で機体を一定速度以下にすると、燃料が増えていく。
Googleマップの表示範囲は、基本的には機体の位置には依存しないが、一定時間機体が画面外へ出ると、マップは機体が表示される位置へ強制的に移動する。逆に言うなら、一定時間内なら、機体のはるか前方を索敵できる。
さて、ワールドに複数の機体が存在する場合、自機以外はすべて敵となる。もし、飛行中に敵の機体を発見したら、速やかに撃墜する。敵機を撃墜するには、まず敵機にレーダーを照射し、ミサイルを発射しなければならない。
レーダーは「S」を押すことで機体前方に照射することができる、レーダーの範囲は色付きの線(選んだ機体によって色が異なる)で表示されるので、その範囲内に敵機をとらえる。レーダーの照射時間には限りがあり、一定時間後にオフになってしまう、レーダーがオフになってしまったら、一定時間経過しないと再照射できない。
敵機をレーダー照射範囲にとらえたらミサイルを発射する。ミサイルは「M」「O」「K」と連続でキーを押す。レーダー照射範囲を表す線が黒に変わったら、ミサイルが発射されたことを表している。この黒い線は一定時間表示されるが、その間に敵機がその範囲から逃げ切れなかったら撃墜となる。
ゲームを終了する時はWebブラウザを閉じれば良い。利用していた機体は一定期間後に開放され別のユーザーが利用できる状態になる。
お楽しみいただけただろうか。次のページではこのゲームがFREDDYを利用して動作する仕組みを説明する。