1231
暦の上では年明けですが、まあ日記をやります。
昼ごろに起きて買い出しに行った。目ん玉が飛び出るほど高いローストビーフを買ったので明日食べる。
あとは2024年のまとめ記事を書いたりしていたら終わった。夜はすき焼きを食べた。
弊家は基本的には紅白を見るのだけど、今年はなんかイマイチだった気がする。知ってる人が減った?B'zはよかったね。実は出たことなかったの知らなかったけど。
寝ます。明日は初詣に行くかも知れないし行かないかもしれない。近いし、行くか?
暦の上では年明けですが、まあ日記をやります。
昼ごろに起きて買い出しに行った。目ん玉が飛び出るほど高いローストビーフを買ったので明日食べる。
あとは2024年のまとめ記事を書いたりしていたら終わった。夜はすき焼きを食べた。
弊家は基本的には紅白を見るのだけど、今年はなんかイマイチだった気がする。知ってる人が減った?B'zはよかったね。実は出たことなかったの知らなかったけど。
寝ます。明日は初詣に行くかも知れないし行かないかもしれない。近いし、行くか?
初詣には結局行かなかった。明日は行くかも。
おせちと称してお高いローストビーフを食べた。とてもよかった。ローストビーフにもなんか適当な縁起エピソードをあつらえてレギュラーメンバーにしてやればいいと思う。
あとは昼寝したりゲームしたり。そういえば年が明けたのでギターの練習を再開した。ペグがガタガタなのを直してたら弦が切れたので張り替えた。なんか心機一転という感じでいいなと思った。半年ぶりでも指の形は案外覚えていたけどコードチェンジが厳しい。あと指が痛い。
寝ます。そろそろ昼夜逆転を戻していかないとな。
結局昼過ぎに初詣に行った。願うことはいろいろある。
「Inverted Angel」クリアした。まあまあよかった。エンディングはちょっと観念的?でよくわかんないところがあるけど、ゲーム体験としてはひさびさにこういうのやったなーという感じで楽しかった。追加シナリオも今後出るらしいのですこし楽しみにする。
寝ます。明日はコード書きたい。そろそろ社会がドアをノックしている。
まだ身体が2025年に慣れていないので、日付を見るとびっくりしてしまう。2025年て。ないだろそんな年。
LangChainの本が届いたので読んでいる。昔よりだいぶ洗練されているなという感じだけど、これをそのまま使うかというと……。TypeScriptだったらいいのか?Pythonは書きたくない。
あとSpectreの実装をすこし進めた。まだ自動で向きを決めることはできてないけどLevel1のクラスターを集めてLevel2にするところまではできた。難産だったがあとはこれを再帰的に実行できればだいぶ完成するはず。明日時間があれば。
寝る。もう明日からはただの土日。
なんか普通に仕事復帰したくねえなという気持ちがある。正月休みですこしは気が晴れるかと思っていたが、どうも様子がおかしい。
Spectreの敷き詰めは一応好きなレベルのタイルを並べることができるようになった。描画パフォーマンスの改善のために例によってシェーダーも書いた。今回は変な形のメッシュなこともあってすこし手間取ったが一応動いた。レベル8、2000万タイルくらいまでなら一応出せるようだ(メモリ使用量が3GBくらいになるのだが、なんでそんなに多いのかよくわかっていない)。
あとは、スクロールに応じて自動でタイルを継ぎ足す仕組みが必要。明日やってみるけど、そんな簡単ではないかもな。
寝ます。明日で連休終わりとかマジかよ。
何してたっけ。たいしたことはしてないか。Spectreの描画で浮動小数点値の誤差が出てるからそれを解消した。出てくる座標は要するに30°のsinとcosとその和なので、$(i, j) \mapsto \frac{i}{2}+\frac{j\sqrt{3}}{2}$の対応で整数の組に置き換えれば誤差がなくなる。そういう風にしてくれよとClineに頼んだらなんかいい感じにやってくれた。やはりこういう類の作業はかなり得意らしい。これで高々数ドルなら安いもんだ。
あと3Dレンダリングから2Dレンダリングにしようとしてガチャガチャしていたら、なんかそれらしく動いたのだけどブラウザで動かない。なんでだ?まだ何かが不足しているのか、まあそれは明日調べる。まあ別に3Dのままでもいいんだけど。むしろそのほうがよかったりするのか?グラフィックのことなんもわからん。
夜は焼肉に行き、終わっていく連休の弔いをした。やれやれ。
寝ます。明日はたぶん諸々思い出すだけで終わるだろうけど。はあ。
仕事初めだったがメチャメチャ調子が悪かった。気圧という噂もあるが、気圧が体調に及ぼす影響をあまり真面目には信じていないので、どう考えたものか悩む。
とりあえずコードレビューをした。明日はもうちょっとプロジェクト管理的なことをしたい。
Spectreは昨日2Dレンダリングにしたら動かなくなった原因がただのシェーダのミスだったので直した。あとカメラズームとパンをClineに実装させている。スマホ対応がちょっと難しい。
次にやるべきは描画の軽量化で、というのも今は計算済みのエンティティを全部spawnしているが、普通に画面に映るものだけにしないと効率が悪すぎる。スマホではたぶん動かせない。これをやるためには領域からそれに含まれるタイルを引いてくる必要があるので、R*-treeのクレートを使って実現するつもり。明日行けるか?
寝ます。明日はもうちょっと体調良くなっててくれ。
昨日よりはだいぶ元気だった。決めなければいけないことがいろいろあって大変。
Spectre見るやつ(仮)は、ピンチジェスチャーを修正したので描画の効率化に入ったのだけど、Clineにやらせようとしたら全然うまくいかなかった。LLMって一度変な方向に入ると軌道修正できなくて迷走してしまう傾向があると思うのだけど、今日も「直ってないですよ」って8回くらい言ったらできもしないのに実行結果を見たら原因がわかりました的なことを言うようになり、ああパワハラで心を病んでしまった……と思った。単体テストなどで自分の正気をつねに確認できるようにしながら実装を進めさせる必要があるのかも。まあそれも試したけど今度は普通に実装ができなくなったのでダメなのかも。難しいね。
寝ます。明日は自分で描画最適化を実装する。ただ、描画を最適化してもそもそものタイル生成も早晩ボトルネックになると思われる(1つあたり16byteとはいえ)のでそこの遅延生成なども考えなければ。まあそれは追々。
なんか急に設計を考え直す必要が生じたため急いでAPI仕様を書いたりドキュメント書いたりした。こういうのが結局一番心が落ち着くし、自分が機能できてる実感が持てる。
Spectreはレンダリングの最適化に悩んでいる。とりあえずカメラ位置に応じてR*-treeからタイルを取り出すことはできたけど、パフォーマンスが悪い。タイルをさらにインスタンスバッファに詰めるところとかが遅いのかなという気はするのでそこにテコ入れすることを考える。色付けるのとかはシェーダでやれるはずだからな。
あとR*-treeへの挿入が遅いのも気掛かりだけど、これはタイルをすこしずつ追加するアルゴリズムが作れればマシにはなるはず。あと思ったよりメモリ消費が多いのも気になってる。課題が多い!
寝ます。
同僚に嫌われており、まあ嫌ってるのは知ってるんだけどもう少し取り繕ってくれないと辛い。HRTみたいな標語は、あったらあったで空虚だなと思うが、あればこういうのはマシになるんだろうか?
別に僕が悪くないと思っているわけではない。普通に力不足なのはわかっている。気配りができないから新しい何かを呼び掛けることができないのだ。そういうことを求められないように環境を変えるべきなのかな。
SpectreはR*-treeのパフォーマンスを改善できた。envelopeの計算をメモ化するユーティリティを挟んだのと、タイル描画時の色の決定をシェーダー側に移した。後者は別にそれほど効いてないと思うが前者でとりあえず描画自体については満足できるパフォーマンスが得られている。やっぱりbounding boxの計算が遅かったんだな。
あとは動的にタイルを継ぎ足すアルゴリズムを実装すれば完成する。が、それもまた大工事になるだろう。特にパフォーマンスを重視するなら。まずどうやれば良いのかからわかっていない。
寝ます。ハー。気が塞ぐな。でも明日が終われば3連休だしな。