ゲーム制作

開発者用ツールを作った

私のテストプレイ、非効率すぎ…?

正直、テストプレイの効率化について今まで甘く見すぎていたかもしれない。

恥ずかしながら、実装したステージやイベントを最近まで筆者がどうやって確認していたか白状すると、

  • 確認したい場面までの進行フラグをONにするコードを追加する
  • スポーン地点最寄りの移動オブジェクトの移動先を対象ステージに書き換える
  • 「TODO:テストコード。後で戻す。」とかいう旨のコメントを入れる

…とまあ、こんな面倒なことをやっていた。

これは単に非効率なだけでなく、無関係なコードを書き換えているわけなので危なっかしいんだ。あと、Gitの変更差分にも上がってくるから気が散る。

開発者ツールの実装に踏み切った

というわけで、プログラマたるもの楽するために全力を尽くせということで、デバッグやテストプレイを容易にする開発者ツールを作ってみた。

ゲーム画面(開発者ツール起動中)

特定のコマンドをガチャガチャ入力すると、このように味も素っ気もない見た目の操作パネルが表示される。これに数値を入力して、ゲームの状態を色々と書き換えるわけだ。

今のところはマップ移動機能しかないが、これだけでもテストプレイは飛躍的に効率が良くなっている。今後、他の機能もどんどん追加していく予定だ。もっと早く作っておくべきだったなあ。

入力方法は考えどころ

どうでもいい裏話になるが、このツールの実装で一番迷ったのは入力方法の選定だった。

コマンドプロンプトみたいにキーボードでコマンドを叩こうかとか、ゲーム本体とは別の専用ウインドウを表示してそっちで指令を出そうかとか、構想が様々あって割と悩んだ。

で、なんやかんや考えた結果、最終的に仮想コントローラで入力を完結させるという方針に落ち着いた。
決め手はふたつ。

  1. 実装が楽。
  2. 仮想コントローラさえ使えればどこでもデバッグできる。

1.は言うまでもない。今から抽象レイヤーに新たな穴をあけて、なんらかの入力の仕組みを追加するのはキツイっす。

2.は移植性の観点が絡んでいるので、プラットフォームとしてWindowsしかターゲットにしていない本作には関係が薄いかもしれない。
それでもまあ、キーボードが使えないような環境に不幸にも放り出された際、開発者を救う保険となりうると考えれば、悪いアイデアじゃないよね?

もちろん本編の開発も進んでるよ

進捗報告としてスクショをぺた。

ゲーム画面

さあ、どこでしょうね(進捗度合い)

まだまだ作んなきゃいけないものが山積みで気が遠くなるが、ぼちぼちやっていくよ。