Vol. 01
2026.04.10
2026.04.08 ZENN // TECH

「捨てる決断」をゲームにした話 ─ClaudeとGeminiでガチャゲーを作った話

ORIGIN: ZENN.DEV READ ORIGINAL

はじめに

俺は設計職をしながら、ソロインディー開発者として思いつくままにアプリを作っています。

以前Zennに「設計職がGemini・Claude・Claude Codeを使い分けて、写真ファイラーをリリースした話」を書いたのですが、今回はその第二弾です。

作ったのは Trash-to-Coin。断捨離ガチャゲーです。

相変わらずコードは書けないけれど。でも「何を作るか」「どう設計するか」「どんな体験にするか」は全部自分で決めています。そのスタンスは今回も変わりません。


作ったもの

Trash-to-Coin は、不要なファイルをドロップすると粉砕してコインを錬成してくれるWindowsアプリです。

  • ファイルをドロップ → 4軸スコア査定 → 粉砕演出 → コインドロップ
  • ファイルはゴミ箱(または完全削除)へ送られる
  • 265種のコインを集める図鑑コンプ要素あり
  • 34種の隠し称号、呪いシステム、レベルシステムつき

要するに「断捨離しながらガチャを引く」アプリです。

ダウンロード: GitHub Releases
(Windows専用・完全無料)


なぜ作ったか

「このファイル、いつか使うかも」「消したら後悔するかも」という感情が邪魔をして、気づいたらデスクトップに「最終版_絶対_コピー(3).psd」が増殖しています。(大げさだが)
※いやマジで大げさだな…そんなファイル無いだろマジで。いや、あるのか…?

ゴミ箱に捨てる行為にゲームとしての快楽を乗せたら面白いんじゃね?
そう思って作り始めました。

結果として「ダーク・ミスティック×インダストリアルファンタジー」な世界観の厨二病アプリが完成しました。断捨離ツールとは思えない見た目ですが、中身はちゃんと断捨離応援ツールです。


こんな感じのポエム付きコインが出てくる。
CSS等でガチャの演出も作ってもらったりした。これが意外とおもろい。


設計の話①: 4軸スコアリング

Trash-to-Coinの核心は、ファイルの「業の深さ」を4軸でスコアリングする仕組みです。

雰囲気↓

Vintage(ヴィンテージ度)

最終更新日からの経過年数で決まります。5年以上放置されたファイルは 「Fossil(化石)」 属性を獲得し、高レアリティの確率が上がります。10年以上は係数3.5倍。

Chaos(カオス度)

ファイル名のカオス度です。「最終版」「コピー」「test」「fix」など16種のカオスワードへの一致数で係数が上がります。

そして 役満判定 があります。カオスワード3語以上かつ連番パターン((3)_2)を含む場合、係数2.8倍の役満確定です。最終版_絶対_のコピー(3).psd はもちろん役満です。

Abyss(アビス度)

パスの階層の深さです。C:\Users\name\ で既に3層あるので、実質的に7層以上で「深い」扱いになります。13層以上は係数2.2倍。node_modulesの奥深くに眠るファイルは必然的に高スコアになります。

Mass(マス)

ファイルサイズです。1GB以上は係数1.8倍。「よくこんなの放置してたな」案件ほど高評価です。

さらに 三重一致ルール があります。1KB未満 × Fossil × Abyss10層以上 の三重一致で係数が2.5倍に跳ね上がります。「深い闇の底に眠る1行だけのメモ」へのLG隠しルートです。

node_modulesを投げたら11788連になった

上限なしのn連実装後、テストでnode_modulesフォルダをまるごと投げたら11788ファイルが展開されました。

アプリは死にませんでしたが、Codeカテゴリ(×1.4補正)の.jsファイルが大量にあるため確率が上がりすぎることが判明。これがきっかけで確率テーブルの大幅調整をしました。


設計の話②: レアリティ確率の調整

tier_powerという設計

各レアリティの確率は ベース確率 × final_coefficient^tier_power で計算し、正規化します。

レアリティ ベース確率 tier_power
LG 0.1% 2.0
UR 0.8% 1.8
SSR 2.0% 2.0
SR 13.0% 1.5
R 25.0% 1.0
UC 33.5% 0.6
C 28.5% 0.3

高レアリティほどtier_powerが大きいので、スコアが高いファイルほど指数関数的に高レア確率が上がる設計です。

250連でSSR18枚は多すぎた

最初のテストで250連投げたらSSRが18枚出ました。約7%。これはゲームとして緩すぎです。

やり込みゲームが好きなので、「しっかり断捨離しないとLGが出ない」水準にしたかった。ベース確率とtier_powerを両方下げて、現在の数値に落ち着きました。

2663連ストレステスト中にLGを引いた時の達成感は本物でした。


設計の話③: 呪いシステム

タイムスタンプ改ざん検知

スコアが高いほどレアが出やすい設計なので、「ファイルの更新日を10年前に偽装すれば高スコアになる」という抜け穴があります。

これを検知する アンチチートシステム を実装しました。
※OS仕様的にどうしようも無い部分もあるので、そこは見逃す方向性に。

検知条件:
- modified_at が現在時刻+5分より未来
- created_at が現在時刻+5分より未来  
- accessed_at が created_at より1年以上前(物理的に不可能)

改ざんを検知すると 「呪い」 が発動します。(特殊称号が付与されるよ)

御札問題

呪い発動時、御札.txt をデスクトップに生成して「3日後に粉砕で解呪」という演出を考えていました。

しかしデスクトップへの突然のファイル生成はマルウェアの典型的な挙動に近く、ウイルス対策ソフトに誤検知される可能性があります(コードサイニング証明書未取得のため)。

そこで世界観に乗せた解決策を採用しました。

「時刻改ざんにより呪いを受けた。デスクトップに解呪の御札を生成…おや、何者かに阻まれたようだ。」
[供物の在り処を開く]

%APPDATA%/ の当該フォルダを開くボタンに変更。「何者かに阻まれた」というテキストで、現実すら世界観に組み込みました。


AI三本柱ワークフロー

今回の開発で確立したワークフローを紹介します。

Claude(このサービス): 設計・壁打ち・プロンプト作成

仕様の言語化、設計の壁打ち、ClaudeCodeへの投げ文作成をお願いしています。「この設計で問題ないか」「どう実装するか」の相談役です。あとこの文章もコイツが書いてる。

Claude Code: ロジック実装・バグ修正・整合性担保

実際のコード実装はほぼ全てClaudeCodeです。Rustのバックエンド、Reactのフロントエンド、SQLiteのDB設計まで任せています。複数ファイルにまたがる実装の整合性を保ってくれるのが強みです。

Gemini(Antigravity): UI発散・世界観テキスト・画像生成

UIの「発散」はGeminiが圧倒的に得意でした。「ダーク・ミスティックなステータス画面を作って」と投げると、CORRUPTION LEVEL という概念を勝手に追加してくれました。「断捨離するほどアバターの解像度が上がる」というメタ演出も発散中に生まれたアイデアです。

コイン画像265枚、アバター、ロゴ、ボトムナビアイコンも全てGeminiで生成しました。

Geminiの「完璧です!」問題

UIの発散は天才なのですが、実装になると途端に怪しくなります。

Geminiにある機能の調整を実装してもらった後、ClaudeCodeに確認させたところ:

バグ一覧:
1. gacha.rs がローカルファイルも trash_via_pseudo に通す
2. flush_pseudo_trash がフロントエンドから呼ばれていない
3. MainPage.tsx の単体モードで START_RARITY が二重 dispatch
4. restore_count の二重インクリメント
5. save_acquisition が metadata.path(UUID付きstagedパス)を記録

Geminiが「完璧です!」と言った後にバグが5個見つかりました。

UIの発散はGemini、実装の正確さはClaudeCode という役割分担が今回最も大切な学びです。
※もちろん俺の使い方が下手なのはその通りではある。うん。


結果

v1.0.0をリリースしました。

  • 265種のコイン(全フレーバーテキスト付き)
  • 34種の隠し称号
  • 呪いシステム・完全削除モード・レベルシステム
  • ピクセルアートの錬成炉から3Dコインが出てくる(統一感はない)

「ピクセルアートの炉から3Dグラフィックのコインが出てくる」という統一感のなさは、後から「デジタル(ピクセル)を錬成して現実の価値(3Dコイン)にする」というコンセプトとして解釈できることに気づきました。偶然の産物です。

称号コンプ、できるもんならやってみてほしいと思ってる。


おわりに

非エンジニアのしがないサラリーマンが武器にできるのは、「仕様を決める力」と「体験を設計する力」くらいで。

AIがコードを書いてくれる時代に、「何を作るか」「どんな体験にするか」を決めるのは人間の仕事だと思って。
AIにアイデアを形にしてもらうのを始めて今月で3か月目くらい。楽しい。

あ、Trash-to-Coinは完全無料(マジ)です。デスクトップに積もった「最終版_絶対_コピー(3).psd」(だから大げさなんよこのファイル名)を持っている方は、ぜひ炉に投げ込んでみてください。

最後にいくつかのスクショ貼って終わりますね。

メイン画面


図鑑画面


ステータス画面

ステータス画面は結構こだわったので、Lvが上がるたびに見に行ってみてほしい。うん。細かいけど。