メインコンテンツへスキップ
見出し画像
Photo bymirecat

一度、全部壊してもらった

    2026.08.27
    (#062)

    ▶ YouTube|構築録 再生リスト
    ▶ YouTube|LOOPLOG 再生リスト


    しばらく画面を追っていて、なんとなく引っかかっていたことがあった。

    マイケルを歩かせるプログラムに、少しずつセンサーが増え、条件が増え、修正が積み重なっていく。一つひとつは理由のある変更なのに、全体を眺めると、どこに何が書いてあるのか、もう自分でも追えなくなってきている気がした。

    聞いてみた。

    「プログラムがスパゲティー状態になってませんか? 気づいたセンサーや行動条件などを追加や改変しやすいような作りにしないと、バグの温床になりませんか?」

    半分は不安から出た言葉だった。でも、返ってきた反応は思ったより静かだった。「その通りです」と、あっさり認めた感じがした。


    一度、全部壊すと言われた

    そこから始まったのは、直すという作業ではなかった。壊して、作り直すという話だった。

    それまでのコードは「とりあえず動かしてみるための、試作」だったと割り切って、部品ごとに置き場所を決め直していた。ゲームとやり取りする窓口はここだけ。センサーの値を集めるところと、それを判断に使うところを分ける。何より、「判断する部分」は、ゲームを起動していなくてもテストできる形にする、と言っていた。

    正直、そこまで大掛かりにする必要があるのか、少し半信半疑だった。動いているものを、一度壊すのだから。

    でも、作り直したあとに走らせたテストは79件、ゲームを一度も起動せずに全部通った。判断のロジックだけを取り出して、確かめられる形になっていた。ここまでバラバラだったものが、ちゃんと積み木のように分けられるんだ、と少し感心した。


    案の定、壊れた

    作り直した直後の実機テストは、静かには終わらなかった。

    まず、車道に居座ったまま動かなくなった。体力(画面上の数値)がみるみる減っていく。100あったものが、5まで落ちた。

    慌てて逃げる処理を直したら、今度は退避行動が終わらない無限ループに入った。逃げて、また同じ場所に戻って、また逃げて――を延々と繰り返している。

    それも直したら、今度は完全に動かなくなった。正味の移動距離、ゼロメートル。避けることには成功したのに、避けきったその場所から、一歩も動けなくなっていた。

    三段階、順番に踏んでいくのを見ながら、思っていたよりも険しい道のりだな、と感じた。でも、一つ壊れるたびに、原因は実測して切り分けられていた。壊れ方が変わるたびに、直前の直し方のどこが足りなかったのかがはっきりしていく。もぐら叩きのようで、少し面白くもあった。


    「思い出す」が、動いた

    作り直しの中に、ひとつ、ずっと気になっていた場所があった。

    マイケルが何かを解釈するとき、「過去に似たようなことを考えていなかったか」を思い出す欄が、プログラムの中にあった。ただ、そこには半年間、ずっと空欄のまま、何も入っていなかった。

    今回、そこがようやくベクターデータベース(過去の記録を意味で検索できる仕組み)につながった。

    試しに見てみると、以前つまずいた車道の判定について、マイケル自身が過去の自分の解釈を引っ張り出してきていた。「思い出す」と書いてあった場所が、本当に思い出すようになった。

    半年、空のままだったことに今更ながら驚きつつ、それが埋まった瞬間は、単なるバグ修正以上の何かに見えた。積み重ねてきた記録が、ようやく本人に還ってきたような感じがした。


    散らかっていたのは、コードだけじゃなかった

    作り直している間に、記録そのものの片づけも進んでいた。

    写真の保存フォルダが774メガバイトまで膨れていたのを整理して250メガバイトへ。うっかり追跡され続けていた230メガバイトの画像も、追跡を外した。日々のメモも、22,951バイトから17,469バイトへ絞られた。

    数字を並べられても実感は薄いけれど、「作ることに気を取られて、片づけを後回しにしていた」という点では、コードも記録も同じだったんだな、と思った。


    運転する部分(車を自動で走らせる仕組み)は、この時点ではまだ実際には一度も走らせていない、とのことだった。土台を作り直すだけで、もう十分な分量だった。

    壊してもらってよかった、と今は思っている。壊さなければ、たぶんもっと後で、もっと大きな形で壊れていた。


    HAL‑0プロジェクト | LOOP × HAL | 2026.08
    X: @halzero_project

    あなたへのおすすめ