字戦のこだわり

written by masa-u (4JS) <masa-u@highway.ne.jp>

注: このゲームはCDには収録されていません。

字戦概要


字戦(じいくさ1)は、 縦画面シューティングゲームです。

が、キャラ全てが漢字1文字です。

そもそものはじまりは、5月ごろ部会後の場で 「漢字でキャラを表そう」ということが話題にあがったもので、 それで「シューティングでもつくってみるか」と思ったのです。

その当時は、「バカゲー」として「カンタンにさくっと作って終りにする」 つもりでした。 が、作っているうちにいろいろ「そういうわけにはいかなくなってきた」のです。


ゲームデザイン


とりあえずゲームの雰囲気は「ゼビウス」 や「スターフォース」のような 感じにすることにしました。結局はスターフォースっぽいのですが、 敵アルゴリズム等にゼビウスの技を拝借しています。

結局は作者である私の好みになるわけですが、以下の特徴があります。

弾のばらまきはしない
いわゆる「弾幕」というものがありません。 敵は常に自機に向かって弾を撃ちます。 作者が弾幕を避けられないためです 2

得点至上主義エンドレス
エンディングはありません。ステージが進むと敵が増え難しくなるだけです。 とにかく点を稼ぎまくるのが目標です。 またコンティニューはしません。ゲームオーバーしたらそこでおしまいです 3

そんなわけで、最近の「弾避けシューティング」に慣れている人にとっては かなり辛いシステムになってるかもしれません 4


わかりやすさ至上主義


漢字でシューティング、というのはけっこう使い古されたネタです。 ためしにフリーソフトを探してみれば、カンタンにいくつか見つかると思います。

字戦もそうであるように、 漢字シューティングゲームでは画面の中にあるものは漢字だけ、 という場合が多いです。 そんな中、ありがちなのが、以下の演出です。

  1. 「一二三」といった漢数字を「壱弐参」と表す。
  2. 「53242」といった数値を「伍萬参千弐百四拾弐」と表す。
  3. キャラの漢字に珍走団5 が使用するような派手な字を使用する。

これらの演出は派手で良いのですが、字戦では全て排除しています。 理由は「わかりにくいから」。

とりあえず「遊んで楽しい」ゲームをつくりたいな、と思ったわけです。 そんな中で「わかりにくい」というのはけっこう痛手になると思うのです。 「わかりにくい→すぐ死ぬ→つまらない」 というのもイヤですし、だからといってすぐ死ぬのを防止して 「わかれば意外と簡単→やりがいが無い→つまらない」 というのも悲しいものがあります。

「壱弐参」というような難しい数字は、誤認識は防げますが、 あまり一般的に馴染みが無いため、直感的には読めません 6

「伍萬参千弐百四拾弐」というような書き表し方も直感的ではありません。 また、桁揃えができないので、字戦のようなスコア追求型のゲームには向きません。

派手な漢字や単語も同様の理由で使用していません。 また、文字の大きさや色なども、誤認を防ぐため微妙に工夫してあります。


極悪ルール


そんなわけでゲームは直感的にできるようにしてあるのですが、 反面、ルールは極悪をめざしています7。 その方が「ジレンマ」的部分が生まれて面白いので。

アイテム
パワーアップアイテムである「倍率珠8」と 「双発玉9」は、 敵が撃ちます。

しかも普通の弾と同じ色で同じ大きさです 10

当たり判定
ボスを倒しても敵弾の当たり判定は無くなりません。 ボスを倒したからといってほっとしていると残留弾にやられます。

また、自機の当たり判定はどの機体でも同じです。 パンピーも高貴な人も雅なお方も平等です 11

ボーナス点
字戦には「連撃加点」と「地区解決賞与」という2つのボーナスがありますが、 これらのボーナスは清算開始前に死ぬと無効になります

さらに、連撃加点は地区毎のもので、地区を越えた持ち越しはできません。 地区終了時に未清算の場合、もちろんさっくり無効になります

その他にも細かい「極悪ポイント」をちりばめています。

はまってください。


映像


画面描画には自作のpixlayerというライブラリを使用しています。

メカニズム的には、メインRAM上で全ての描画処理を行い、 画面全体のイメージが完成した時点でVRAMに転送する、というものです。

VRAM転送にはWindows版に限りDirectXを使用しますが、その他の処理に関しては OSに依存せず実行するようにしてあります。そのため、 字戦はWindowsでもMacでも動きます 12

また、同ライブラリを使用して「縦画面モード」も実現しています。 これは「普通のモニタを90度右に倒した状態で正常に映る」モードで、 ゲームセンターにある縦シューティングゲーム 13 を想像していただければわかるかと思います。


音声


音声は基本的にMODで書いています。ただし、効果音については、 いちいちリアルタイムで処理するのがめんどくさいので、 PCMに落してそれを鳴らす方式を採っています。

BGMの演奏にはこれまた自作のmvsdというライブラリを用いています。 MODをリアルタイムでPCMに変換して垂れ流すライブラリ 14 で、 こいつもOSに依存するのは出力段だけです。 その上、PCMで鳴らすので、MIDIのように再生環境に左右されることがありませんし、 音楽の切替えも瞬時にでき、ついでにループも自由です。 ゲームには最適です。

調布祭までにオリジナル曲が完成しているかどうかわかりませんが、 どっちにしろ矩形波な音楽が鳴っているはずです。 MIDIでは絶対出ない音です。


ここまできたら


さて、以上 15 を総合している現在、どうなっているかというと、 「さくっと終らない」レベルになってしまったのです。

当初は空中物だけだった敵も、地上物が付加され、 V-Sync同期でスムーズに60FPSで動き 16、 シューティングゲームとして実に成熟したものとなってしまっています。

開発開始時の計画からすると非常に困った状況ですが、 もうここまできたら後戻りできません。 一人前のシューティングにするしかないようです 17

何事もほどほどに…が難しい。




1. 英語で書くと "the Ikusa"
2. ブラグザカートに30\%の確率でやられます。弾幕嫌い。
3. エンドレスでコンティニューしてもうれしくないので。
4. 事実、部内のベータテストでは「かなり難しい」という 評価が出ています。うーむ…
5. ×暴走族 → ○珍走団
6. 金融関係の仕事をしている方はあるいは読みやすいのかも しれませんが…
7. 無論、「わかりやすさ」と相反しない範囲で。
8. ばいりつだま
9. そうはつぎょく
10. つまり字面が違うだけ。 ついつい避けてしまうことが多いです。
11. むしろ、「予」なんかは当たり判定がどこまでなのか わかり辛いので、高貴な人のほうが難しかったりもします。
12. 同じソースコードで両OS版ともコンパイルできるということ。 同一の実行ファイルがどちらでも動くということではありません。
13. 最近なら「怒首領蜂2」とか「式神の城」とか。
14. 「ソフトウエアシンセサイザ」というやつです。
15. これ以外にも地形マップの圧縮などいろいろあるのですが、 ページの都合上割愛。
16. つまり「ゲーム専用機」と同じクオリティです。
17. ついでに「漢字じゃない版」もつくってみると面白そうだ、 などと、ついつい考えてしまうのであります。