開発ログ
まわしての実装や設計判断を書き残しています。
組み合わせ生成 11,600 通りの審査が 4 巡しても終わらなかった理由
お題をパターン × 単語で 11,600 通り生成したら、問題語の除去が 4 巡しても終わらなくなった話。原因は審査の単位・衝突相手の集合が開いていること・審査側の未較正の 3 つに分けられ、それぞれ対処が違う。
自作サイトの解説記事を書いたら誤りが 4 件出た。でも打率は低い
外向けに断定しようとすると、内側でなあなあになっていた因果が壊れる。ただし検出していたのは記事ではなく敵対的なレビューかもしれない。
対処が効いても、理由が合っていた証拠にはならない — GA4 の記録
GA4 で数値パラメータをやめたら内訳が取れるようになった。ところが後で公式ヘルプを読み直すと、効いた理由を取り違えていた。計測の確認を「届いた・処理された・理由が分かっている」の 3 段に分ける話。
デザイントークンの一元管理は、定義を読める層までしか守らない
ゲームごとに配色を変えるテーマ機構を CSS 変数 1 層で作った記録。色の定義場所を数え直したら 3 か所あり、1 本は実際にずれていた。一元管理の保証がどこで終わり、どう確かめるかの話。
音源ファイルを 1 つも置かずに、効果音と BGM を全部コードで書いた話
音源ゼロなら帰属表記も再配布条件も存在しない。効果音は oscillator 数行、BGM は Float32Array に書き込んで WAV に。
LLM エージェントにゲームを遊ばせてテストした話と、その限界
LLM エージェント同士に情報を隔離して実際に対局させ、駆け引きが構造として成立するかを出荷前に検証した記録。得点設計の欠陥や UI の見落としを検出できた一方、楽しいかどうかの判定は人間のプレイテストに残ることまで書きます。
壊れ方を先に決めて手書きした Service Worker のオフライン対応
事前キャッシュは入れないものから決め、版はキャッシュの中身から導き、HTML だけ network-first にする——壊れ方を先に決めた手書き Service Worker の設計と、公開後にユーザー動線を書き出して見つかった穴の話。
0 点の人の画面に何と書くか。パーティーゲームの称号を設計し直した話
最下位ラベルは、いちばん配慮が必要な人にいちばん高い確率で貼り付く——指摘を受けて称号を作り直した記録と、残った穴。
AI の 6 ペルソナに判断を委任してパーティーゲームを 10 本出した話
判断の大半を AI ペルソナパネルに委任した量産フローの記録。委任の設計・3 回覆された自分の好み・パネルの壊れ方と測れないもの。
個人開発のゲーム名、商標セルフチェックで分かるのは音の一致まで
J-PlatPat でゲーム名をセルフチェックする運用の記録。称呼検索の実操作・ヒットの読み方・自分で判定しないラインの引き方。
個人開発で AdSense を貼る前に 5 人の専門家ペルソナに見せた話
広告を「どこに置かないか」を AI の専門家パネルに決めてもらった話。タイトル直下枠の全撤去、高さの 62% が広告になっていた事件、SSR のモジュール状態バグ。
パーティーゲームのエンジンを純関数で書いたら誤タップと乱数に強くなった話
ゲームルールを 1 つの純関数に集約した設計の記録。誤タップ耐性・タイマーのリロード復帰・語り順の偏り修正がぜんぶこの形から出てきた。
Astro と Remotion でパーティーゲームサイトを個人開発した話
スマホ1台で3〜8人が遊べるパーティーゲームサイトを Astro 7 + Remotion + VOICEVOX で作っています。ゲーム定義のスキーマ設計・OGP動画のビルド時生成・VOICEVOX依存の切り離し・生成データの配布方法という4つの技術判断を、個人開発の技術選定の軸として紹介します。