2話 デバッグに力を入れてみた結果。
「あ、ここの物理演算式、マイナスが抜けてますね」
ロケットパンチ事故から一日、私はデバッグに精を出していました。カタカタとキーボードでテストコードを打ち込みながら、期待結果にそぐわないものを修正していきます。実装も好きですが、こういったテストも好きだったりします。粗を探して虱潰しに直すのっていいですよね、もぐら叩きみたいで。自分のソースコードじゃなければもっと楽しいのですが。
自分で見つけたバグや、みったんに指摘されたものを優先的に潰してからは、怪しい箇所を重点的にテストコードを書いていきます。
「データのメンテナンスも行わなくちゃいけませんし……うーん、時間がいくらあっても足りません。でもあんまり人入れたくないんですよね」
基本的にプログラマーというのは、人月換算されています。どういうことかというと、「誰がどれくらいかかる」ではなく「一人でどれくらいかかる」と計算されるのです。つまり優秀で生産性の高いプログラマーでも、馬鹿で生産性の低いプログラマーでも、一か月働けば同じ「一人月」として扱われるのです。
ですが、ぶっちゃけ馬鹿で生産性の低いプログラマーがいると一人月換算どころかマイナスになりかねません。何故ならバグを生み出してしまうから、それの改修により、よりいっそうの時間がかかってしまうためです。
つまり何が言いたいかというと、産業スパイ等々の心配より、開発期間が延びる心配の方が大きかったりします。だって早くリリースして、愛を育みたいんですもん。
私もバグを出さないと言えるような秀才ではないですが(というかバグありますし。飛んでいきましたし)、この規模のプログラムを書いているにしては少ない方だと自負しています。
「ふあああ……」
欠伸が漏れます。時計を見ると夜の9時を過ぎていました。テストに夢中になっていたら、いつの間にか残業に突入していたようです。そう思うと、途端に疲労と空腹が襲い掛かってきました。ポケットに入れていたスマホを見るとみったんからメールが入っていました。どうやら、先に帰宅してしまったみたいです。私も今日はそろそろ終わりにしましょう。
「最後に一度動かして今日は終わりますか」
大きなバグは殆ど潰したと思いますので、再度動かしてみることにしました。
フルフェイスヘルメットで頭部をすっぽり覆い、プログラムを実行します。面倒なので設定は以前のものを読み込むようにしておきました。
『ようこそ、マキシマへ! 起動完了まで、しばらくお待ちください! あっ、暇つぶしに私の歌なんてどうですか?』
「あはは、ありがとう。でも必要ありませんよ」
『そうですか、残念です……』
しょぼん、としたボーカロイドの声に、私が組み込んだにも関わらず、思わずにやにやしてしまいました。本番に搭載させるかは判りませんが、こういった遊び心は必要です。
誰かにソースコードを見せるつもりも、保守させるつもりもありませんので、プログラム内の変数名で思い切り遊んでいたりします。「miku_san」とか「rin_len」とか「ruka_nee」とか、やりたい放題です。コメントに「// そろそろ疲れました。探さないでください。」なんて書いていたりもします。
そういえば、ミニマムソフトが提供したプログラムに、性差別を想起させる文字列が含まれていたとかで、ニュースサイトに取り上げられていたことがあったことを思い出します。流石に、変数名で遊んでいたら回収された、となったら馬鹿みたいなので、最終的には直そうかなと思い至るのでした。
『起動が完了しました。それでは、ルナ・シェアワールド(仮)の世界へ、いってらっしゃい!』
なんてどうでもいいことを考えていたら起動が完了したようです。私の目の前に、見渡す限りの草原と青空が広がります。
――システム、オープン。
マキシマへコマンドを送り込み、メニューを開きます。そこから以前のようにスキル、スラッシュと選択していきました。
以前と同じように、私の身体が自動的に動きます。腕を下から上に振り上げ、その動きに伴うように斬撃エフェクトが発生します。それはまっすぐ飛んでいきました。ちゃんと腕もついたままです。……最後のは何かおかしい気もしなくはないのですが。
エフェクトは草原をかき分けて前方に進んでいきます。どうやらバグもないようです。
と、思っていたら後ろから衝撃があって、私は前方に吹き飛ばされ、すっ転びます。何事かと振り返ると、草原が左右に割れていました。どうやら斬撃エフェクトがループしたために、後ろから来たそれに吹っ飛ばされたようです。当たり判定がある上、何かにぶつかるまではエフェクトが消えない設定ですしね。
確かに仕様通りの動きなのですが、吹っ飛ばされていい気分はしません。というか試すたびに吹っ飛ばされても効率が悪いです。
「マップにもうちょっと力を入れましょう……」
天動説の地球のように世界の端が出来るのが嫌だったため、マップ情報をループさせていたのですが、エフェクトに吹き飛ばされるよりはましです。
というか、そもそも論として、スラッシュのエフェクトを距離によって消滅させるような仕様が必要な気がしてきました。某ゲームの基本技のイメージを持っていたため、減衰を考えていませんでしたが、リーチ無限は強すぎますね。
「うーん、色々調整が必要ですね」
ふう、と一度ため息を吐いてから、気を取り直して他に用意したスキルを試してみます。「バク転」「ダッシュ」と言った基本動作スキルや、「乱れ突き」「ダブルエッジ」と言った武器用に作ったスキルなど、一通り試してみましたが、スラッシュ以外に問題のありそうなものはありませんでした。しいて言うなら、乱れ突きが明らかに筋肉量を無視したようなスピードで繰り出されるのに違和感があったくらいでしょうか。
エフェクトを飛ばすような技は今のところスラッシュくらいですからね。基本的な動作では、問題も出にくいでしょう。
「とりあえず基本モーションは上出来ってところですね」
ふふん、と満足げに笑います。
あとは帰る前にスラッシュのエフェクトだけ修正しておきますかね。
デバッグに力を入れてみた結果⇒全自動跳ね飛ばしスキル完成。要修正。