2024/8/9(金)

ゲーム制作ライブラリの開発を進めた。画像関連の処理を作るにあたり、利用するプログラマ側に実装を見せないためにどういう実装にすればいいか、Siv3Dなどを参考にしてみたのだが、結論としてID的なものを作るしかなさそうだということになった。

DXライブラリではLoadGraphの戻り値はint型だし、WindowsAPIのHWNDとかVulkanのVkInstanceのようなハンドル群も中身ポインタである。自分はこういう形で一意のIDにあたるものを発行するやつがどうも好きではなく、というのも同一性を変数実体ではなく値によって共有するのがどうも好かないのだ。

Siv3DはなんかID的なものを使ってないように表面上見えたのでソースを読んでみたのだが、実は結局のところID的なものを使っていた。ちょっと型付けしているだけだ。

単に個別のクラスを提供してそれらの実装を隠蔽するだけならIDは要らない。しかし、クラスAがメソッドでクラスBを受け取るみたいな関係がある場合、クラスAがクラスBを利用するには何かしらクラスBの中身にアクセスする必要がある。ここでアクセスできるようにする方法は以下の通りだ。

  1. 単にクラスBのpublicなメソッドでおっぴろげる。→実装の隠蔽・分離が崩れる。
  2. クラスBがクラスAをfriendにする。→friendは極力避けたい。
  3. ID的なものだけ取れるようにする。ライブラリの中でしかIDの意味は分からないようにする。

こう見るとやっぱりID的なものを使うしかないと分かる。


少女終末旅行を読了した。いや、リアルタイムで一度読んではいたのだが、あまりにダメージがでかくてずっと今一度あの結末と向き合えずにいたのが今日ようやくちゃんと見れた。

ケッテンクラートがどうしても直せないものと分かったときのチトの顔の威力があまりにも強すぎる。どうして君がそんな顔にならなければいけないんだみたいな気持ちになる。

仕方なく本を燃やし始めたときのやり取りもグオーーーーーーーになる。「大丈夫だよちーちゃんは記憶力がいいから」「そうだね」大丈夫じゃない。本を燃やすのはそういう話じゃないんだ、そういう話じゃない、けどもうそういう話になるしかないんだ。何を言ってるのか自分でも分からん。なんなんだろうな、本読みが本を失うのは心の支えを失うに等しいみたいなところがあり、つくみず先生は間違いなくそういうの踏まえて描いてるから意地が悪い。でも「記憶なんて生きる邪魔だぜ」という言葉が何度もユーの口から繰り返されてて、それら全てを踏まえた上で暗闇の階段のシーンに繋がるから全部必要なんだ。こんな悲しくて美しいもんがあるかよ。

何もかもを失ったチトが身一つで歩き続けた結果、死と生の境が曖昧になったように思い、暗闇の階段で世界とひとつになったように感じるところに終着する。身体の赴くままを体現したようなキャラであったユーリはチトの階段で感じたことの告白に「私もずっとそれを言いたかった気がする」と返す。ユーがここに同調するの、構成として天才過ぎる。

最後の舞台が無人の場所なのもすげえよな。自分は雑魚なのでここまで何も覚悟できてなかった。ポストアポカリプスというと、大体は終末後と言っても「段々終わりつつある世界」とか「破滅が起こった後もゆるやかに行われ続ける社会」みたいなのが描かれるが、この物語は本気で「本当の本当に完全に終わりになる世界の終りの瞬間」を描こうとしている。何度も割と陰に陽に念を押されてたのに、一体結末に何を期待してたんだという話だ。この2人は最後の2人だし、他に人類はいないし、地球という世界の生き物たちの物語はここでおしまいなんだ。

最後に様々な階層の情景が映し出される。海(=最下層)と屋上(=最上層)が描かれてるのは「生物たちの始まりと終わり」という話なんだろう。もういいよ十分わかったよ!!!「本当の本当に終わり」という部分がテーマの作品だったのは十分わかったよ!!!!

初読時は「救いはないんですか!???」みたいな想いで強いダメージを受けたが、今改めて読むと、遠い遠い未来に人類の歴史が本当の本当に終わりになったとき、最後の最後の一番最後の人類として少女二人が「でも生きるのは最高だったよね…」と肯定してくれるなら、なんかそれも嬉しいかもしれない。

Categories: