表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。

小説

冷笑と再帰って似てる

作者: ちりあくた

 Unityでゲームを作ってるんです。


 もっぱらコーディングは生成AIにお任せしていますが、それでも作業量はかなりのものです。空いてる時間を探しては、自分の気分と相談して、ちまちまと画面に向かっています。


 これを何気なく友人に言ったら、「発売したら遊ぶよ」って返されました。ごめんなさい、発売予定はないんです。じゃあ何のためかって、そりゃあ、私が楽しむためでしょう。


 友人にはキョトンとされそうですが、私はこう返してやります。「あなたは登山が趣味ですが、乗鞍岳に登ったって、他人には褒められないし、人からお金も取れないし、じゃあなんで登るの?」。


 ……「そこに山があるから」。


 これはお決まりの回答ですね。その真意はおそらく、自身を満足させるためなのでしょう。彼は「山に登り切った自分」だったり、「登り切った後の肉眼で捉えた景色」だったり、内的なものが欲しいのであって、そこに他者は介在しませんよね。


 売られないゲームも同じです。私にしか遊ばれないゲームでも、私が作ってやらねば、見たい形は成され得ないのです。


 まあ、毎日やり甲斐を感じているか、と聞かれたら嘘になります。


 だって、コーディングって大変なんですよ。ChatGPTは数回前の応答すら覚えてくれません。ですから、コード同士の繋がりが皆無なんです。敵のHPを表す変数名ですら、彼らの気分次第で「hpEnemy」だの、「enemiesHp」だの、例えは下手ですが、とにかく物覚えが悪いのです。


 ゲーム制作をする前、てっきり私はプログラミング言語など知らなくていいものだと、たかを括っていました。ですが、現実は厳しいものです。結局のところ、私が C# を理解して、コードを修正して、スクリプトをオブジェクトに対応させて、Unity上でのインスペクターを調整して……AIはブレインになってくれやしませんでした。彼らは手足に過ぎません。


 ですから、行き詰まる機会は何度も何度も訪れたのです。そのたびに、「私はなんでこんな無意味な……」と諦めかけることもありました。


 しかし、私の妄想でしかないアイデアが、現実世界に形を成すのを、どうしても見たかったのです。だからこそ、小休止してはパソコンへ、小休止してはパソコンへ、幾度の虚無感と戦いながら、ゲーム制作は続きました。


 そうして、制作終盤のことです。ある程度ゲームは完成してきて、私はデバッグに取り掛かり始めました。


 一つ心配だったのは、敵出現パターンを制御するために書いた再帰関数でした。


「なんかカッコよくない?」と、数週間前の私は調子に乗って、再帰を使ったのです。確かにテストプレイでは動いたはず……はずでした。はず、なのです。


 私はUnityのゲーム画面を実行し、敵が湧いてくるのを確認しようとしました。すると、いきなりコンソールが真っ赤になりました。


 StackOverflowException。


 見飽きたようで、見たくなかった単語。半ば諦念のようなため息をついて、私はコードを開きました。どうやらログによれば、SpawnEnemyRecursively()と書かれたメソッドが、延々と自分を呼び続けているようです。


 条件分岐は一応書いてありました。でも、よくよく見ると、境界値がずれています。


 ……何が「ずれています」ですか。ずれさせたのは、私以外の誰がいるっていうんですか。このやろう、偉そうに。


 椅子の背もたれにダラッと体を預けて、天井を見上げます。まるで天井が答えを知っているかのように。そうして、何度も思ってきたことを、また思うのです。


 なんで私は、これを作ってるんだろう。


 しばらくぼんやりして、ようやくキーボードに手を戻します。if (count <= 0) を if (count < 0)にしてしまっていた。たったそれだけで、永遠に自分が自分を呼び続ける、そんな地獄絵図が発生していたのです。


 私は思わず、鼻で笑いました。乾いた、ひび割れたような、息だけの笑い。自分で書いた初歩的なミスに対して、でも、どこか他人事みたいな冷たさで。


 ああ、これが「冷笑」ってやつか、と一瞬思いました。すると、ふと脳裏に奇妙な連想がよぎりました。


 ……冷笑と再帰って、似てるなあ。


 理由は単純です。


 再帰関数は、自分を呼んで、自分に戻って、また自分に潜り込んでいく。


 冷笑だってそうです。自分をバカにして、そのバカにした自分をまたバカにして、どんどん深いところへ沈んでいくじゃないですか。終点がない、底がない。


 気づいたら、私はモニター前で再び笑っていました。さっきより少しだけ柔らかい微笑みだったと思います。


 …………ま、いいか。


 境界値を直して、処理を整理して、ついでにログも追加しておきます。再度実行すると、敵はきちんと一定間隔で湧き、コンソールも静かでした。


 正直、胸の奥の虚しさはまだ消えていません。でも、その虚しさをいったん抱えたままでも、ゲームは前に進むらしいのです。


 冷笑も再帰も、底なしに感じたところで、きちんと「戻り値」を返してやれば終わります。つまり、「停止条件」を作ってやれば。


 そんな当たり前のことを、今さら噛みしめながら、今日も私は、賽の河原の石を積むのです。

評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ