Xbox 360 シューティングラブ。10周年 『開発こぼれ話』その10『メカ系2Dドット絵』

Xbox 360 シューティングラブ。10周年 『開発こぼれ話』その9『メカ系2Dドット絵』

驚く事に東亜プランやセイブ開発の流れを汲む手打ちによる重厚なメカ系2Dドット絵の業務用シューティングゲームは2002年の『トゥエルブジールと』と『デルタジール』この2作以降出ていないのだ。ゲームセンターの熱い時代を象徴する至高のドット絵を存分に堪能できる『シューティングラブ。10周年 販促ポスター』こちらでプレゼント企画があるので要チェックだ。→

シューティングラブ。10周年 ポスター

Xbox 360 シューティングラブ。10周年 『開発こぼれ話』その9『デルタジールとシューティング技能検定のイイ関係』

『デルタジール』(2002)Stage2のWarning分岐の戦車いっぱいな敵配置が気に入っていたので、後に作った『シューティング技能検定(業務用)』(2007)でセルフオマージュしたのだ。並べて見ると『デルタジール』の方はゲーム序盤のステージなので敵弾速遅く難易度やさしめ、『シューティング技能検定』の方は失敗した方がおもしろくなるゲーム設計なので成功失敗ボーダーギリギリになるよう敵弾速めの調整にしているのが良く分かる。


Xbox 360 シューティングラブ。10周年 『開発こぼれ話』その8『ステージ名』

作った当時はそんなに問題にはならなかったが、10年経つと大概忘れる。
ステージ制のシューティングを作る際、およそ順番に作って行くが、有る程度開発が進むと、やっぱテンポ悪いからステージの順番を変えようとか、違うテイストのステージを挟んだ方が良いかもって思いはじめる。
ステージ並び 修正
こういった順番だったのを、
dm_1
こういった風に入れ替えたりするのだ。

開発当時は毎日がエブリデイの茶飯事なので何を入れ替えたとかは覚えていたので問題は無かったが、10年経つと見事に忘れる。

デルタジール デバッグメニュー
これはデルタジールのデバッグメニューのステージセレクトだ。
stage6aとかstage6bとか存在しないステージ名を用いてプログラム内の関数名を定義していたりするのでメニューから目的のステージを選択しても別のステージが始まったりする。今思うとホントあほだ。後にステージの入れ替え等、編集作業をする事を考慮しないで作っていたのだ。もちろん当時は関数名と実際のステージとの対応は頭に入っていたので問題無かったが10年後の自分の手間になったのだ。
トゥエルブジール デバッグメニュー
次のプロジェクト、トゥエルブジールからは後の編集作業も考慮してstage1/stage2といった名称で無くtown/airportといった判別しやすい語句を使用するようになったのだ。

Xbox 360 シューティングラブ。10周年 『開発こぼれ話』その6『ツールその2』

こんなツールも作った。
オブジェクト画像を表示し、矩形をセットして衝突判定をエディットするツールだ。矩形情報はバイナリで保存されるのでそのままROMに入れても良いし、Ctrl+Cでクリップボードにコピーしてプログラムソースにペーストしても使えた。とてもシューティングゲーム用のツールらしいツールだ。

Xbox 360 シューティングラブ。10周年 『開発こぼれ話』その5『ツールその1』

そういえばツールも作ってた。
2Dのシューティングでちゃんとした背景ある場合、背景の絵柄に合わせ地上の敵を配置する必要がある。手打ちでテキストを書いて組み込む事も出来るが数値等のデータだけでは後から修正するのは骨だ。絵の上に敵置いてくようなツールがあると便利だろうという事で作ったのがこのツールだ。昔ゲーム制作を勉強していた際X68000様に作ったツールを元に新たにWindows版を作ったのだ。当時Windowsは95か98だった。開発に使用していたPCがDOS/V・X68000といった構成からWindowsPCのみでの開発に移行したのはこの頃だろう。
背景を表示し8x8グリッドで任意の敵番号をマウスでセットして使う。左端のグリッドにセットした数値はゲーム中にその位置に来た時呼ばれるプログラム番号だ。
デルタジールのターゲット機には問題があった。当初分からなかった事だが開発が進みプログラムサイズが大きくなって来るとターゲット機にプログラムを転送する時間がとても長くなった。512kbyteサイズのプログラムを転送するのに1分程掛かったのだ。これは長い。ちょっと修正して確認するといったサイクルのテンポがとても悪い。転送待ちしている間に他の事を考え出したりすると転送が終わった頃には何を修正したのか忘れてしまったりするのだ。テンション急降下、賢者モードになってしまう。
このツールは↑↓→←キーでスクロールするのだが、ある日おや?と思った。スクロールした時のレスポンスが良い。とても良い。これはもしかするとそのままゲームが動くのでは?背景描画は既に出来てるからスプライト描画部分を作ってしまえばいちいちターゲット機を使用しなくても済むのではないか。早速作ってみたら動いた。WindowsPCでプログラムソース数ファイル程度の修正ならばコンパイルして実行するまでほんの数秒。よそ見する暇も無い。こうしてデルタジールはWindowsPC上で開発してターゲット機を使うのはチェック時のみといったマルチターゲット開発になり作業効率は大幅に向上したのだ。

Xbox 360 シューティングラブ。10周年 『開発こぼれ話』その2『マイトアンドマジック』2

昨日の続き

今ではゲーム開発の際プログラムするならば統合環境を使うのが当たり前だが、10年前『デルタージール』『トゥエルブジール』を開発した時はmakefileを書いてコマンドラインでmake(リターン)と打ってプログラムをするのが一般的だった。ゲームが動くターゲット毎デバッガが違うのも当たり前。

しかし当時の様にコマンドラインで直接コマンドを打ち込んでプログラムをする事は良くある。makefile書いてデータコンバーターを作ったりエディタでバッチファイル書いてデータ処理の効率化をしたり。あとちょっとしたプログラムのある機能が仕様通り正しく動作するかどうかの検証はモノによっては統合環境よりコマンドラインを使った方が早く正確に出来たりする。例えばゲームで参照されるデータの最小値最大値を知りたいとするとテキストエディターでさっと新しいプログラムソースを作るそんな時ファイルの名称は日付だったり内容を表すような短い名称、最小値最大値だったらmixmaxで省略してmm.cってプログラムソースを作ってコマンドラインで

>bcc32 mm.c

>mm

と、コマンドを入力し表示されるメッセージを見て正しく動作するかどうか検証する。きっと多くのプログラマもそうしてる事だろう。

昨日の記事Steam版の『マイトアンドマジック』が勝手にインストールされていた日もそんな作業をしていた。インストールされたリンクを辿ると実行ファイルが数10Kbyteとやけに小さい。ウイルスならばそういった容量でもあれこれ出来るからそんな不思議ではないが、ゲームプログラムの実行ファイとしては小さすぎる。オールマシン語ならばそういったサイズもあり得るが今時のリッチなゲームにはいろんなライブラリがくっついているのでそのサイズの実行ファイルはありえない。まるでコマンドラインで作ったテストプログラムの様だ。…あれ?そうじゃないか。リンク先のパスを見ると今日作ったテストプログラムじゃないか。

現象は確認できたので、いったいなんなのかググってみたら結論はこうだ。mm.exeというプログラムを実行するとWindowsはSteam版の『マイトアンドマジック』がプレイされたものとしてそのゲームへのリンクをスタートメニューに作るそうだ。プログラマーなら試してみよう!→mm.exe

てか、なんなんだその仕様は。いろいろおかしいよ!

Xbox 360 シューティングラブ。10周年 『開発こぼれ話』その1『マイトアンドマジック』1

 その昔、コンピューターがマイコンと呼ばれれていた頃、家庭用ゲーム機でもゲームセンターでも遊べない魅力的なゲームがパソコン向けに数多くリリースされていた。ウィザードリィ・ウルティマ・といった舶来でちょっと通な感じのするゲームが遊べるのが醍醐味だった。同じ頃エンカウントするとやたらフロッピーをアクセスするなんかちょっとテンポが悪くパッケージには豪華印刷物のマップが付属してきたゲームがあった。マイトアンドマジックだ。当時PC88でプレイして以来、続編を遊ぶ機会は無かったが。

  ある日の事『シューティングラブ。10周年』の開発中、その日も明け方頃まで作業をし、さて帰るかと思いPCをシャットダウンしようとするとスタートメニューのところに『新しいプログラムがインストールされました』と表示が。あれ?今日は何かソフトをインストールしただろうか?そんな覚えは無いんだが、何だろう?Windowsアップデートで何か勝手にインストールされたのだろうか?なにが変わったのかを確認すると驚いた。マイトアンドマジックがインストールされていたのだ。Steam版の。

  なんだ最近のWindowsは家庭用ゲーム機みたく勝手に最新ゲームの体験版とかをインストールしてくれるのか、なんだ気が利くじゃないか。いやまて、これは何か新手のウイルスか?

 つづく