**Show HN:**  
私は何を作っているか分からないまま、古い携帯でゲームを作りました。

2026/01/15 20:08

**Show HN:** 私は何を作っているか分からないまま、古い携帯でゲームを作りました。

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

Summary:

著者は、Claude Codeを使用した電話中心のワークフローが、迅速かつ反復的なプロトタイピングループを数時間で完成したWebGLゲームに変える方法を示しています。Redmi Note 9(4 GB RAM)上で「Inertia」デモを構築し、傾き制御のアートからマーブルサンドボックスまで6回の高速イテレーションを実行しました。ローカルに即時デプロイしてデバイス上でテストすることで、すべてが数秒以内に完了しました。この「ビーブ発見」手法は、固定要件から始める従来の開発とは対照的です。電話を開発ツールとプレイテスターの両方として活用し、通常のコード→デプロイ→デバイスへの移行サイクルを省略します。著者は、テスト、分析、およびシミュレートされたユーザーフィードバックを自動化するオーケストレーション層を追加することで、人間によるチェックを置き換え、より高速なループを実現できると提案しています。広く採用されれば、このワークフローはインディ開発者の障壁を下げ、モバイルゲームプロトタイピングを加速させ、Termuxなどのオンデバイス環境でClaude Codeへのツール移行を促進し、モバイルゲーミング業界の生産性とリリース速度を再構築する可能性があります。

Summary Skeleton

What the text is mainly trying to say (main message)
著者は、Claude Codeを用いた電話中心のワークフローが、迅速で反復的なプロトタイピングループを数時間で完結したWebGLゲームに変えることを示しています。

Evidence / reasoning (why this is said)
彼は4 GB RAMのRedmi Note 9でInertiaを構築し、傾きアートからマーブルサンドボックスまで6回のイテレーションを繰り返しました。すべてが数秒以内にローカルデプロイと即時デバイステストで完了しました。

Related cases / background (context, past events, surrounding info)
この「ビーブ発見」アプローチは、固定要件から始める従来のコーディングとは対照的です。加速度計ベースのゲーム開発において電話を開発とプレイテストの両方で使用する事例がありますが、ここではコード→デプロイ→ピックアップサイクルを排除しています。

What may happen next (future developments / projections written in the text)
著者は、テスト・分析・シミュレートされたユーザーフィードバックを自動化するオーケストレーション層を導入し、人間によるループを置き換えてより高速なイテレーションを実現できると提案しています。

What impacts this could have (users / companies / industry)
採用されれば、このワークフローはインディ開発者の参入障壁を下げ、モバイルゲームプロトタイピングをスピードアップし、TermuxでClaude Codeなどのオンデバイス環境へのツール移行を推進します。これによりモバイルゲーミング業界の生産性とリリース速度が大きく影響されるでしょう。

本文

出発点
「加速度計を創造的に活用した Web ベースのゲームを作れ。」
これだけが仕様でした。ワイヤーフレームもデザインドキュメントも機能リストもありませんでした。私は Redmi Note 9(4 GB RAM の 4 年前後の Android フォン)で Claude Code を走らせながらこの一文を入力しただけです。3 時間後には Inertia が完成しました―プロシージャルな地形と動的カメラを備えた WebGL マーブルゲームです。面白いのは、実際にマーブルゲームを作っているとは思わず、4 版目までが迭代だったことです。


Inertia のプレイ感

リング状の球体が 3D 地形を移動する。


これは「Vibe Coding」ではない

Vibe coding:終了製品(例:タスク管理アプリ、チャットインタフェース、ダッシュボード)が明確に決まっており、AI に実装の詳細を任せる手法。
Vibe Discovery:要件自体が未定義で、作成しながら製品が何になるかを発見していくプロセス。

Vibe CodingVibe Discovery
「ドラッグ&ドロップ付きのタスク管理アプリを作って」「加速度計で楽しいものを作って」
要件は既知、実装は曖昧要件は未知、構築中に発見
AI が意図をコードへ変換AI が提案し、人間が反応。製品が生まれる
事前に想定した終了状態イテレーションを通じて発見される

Vibe Discovery においては、指示するのではなく、反応することになります。各プロトタイプが本当に欲しいものを教えてくれます。


セットアップ

  • デバイス:Redmi Note 9(5 年前後 Android、4 GB RAM)
  • ターミナル:Termux
  • AI:Claude Code
  • サーバー:Node.js の
    http-server
    でテスト
  • バージョン管理&デプロイ:GitHub

全てのフィードバックループ(構築 → テスト → 反応 → イテレーション)は、単一デバイス上で数秒で完了しました。このスピードが Vibe Discovery を可能にします。

なぜ電話なのか?

  1. センサーロープ – デバイス上で作ることで「コード→デプロイ→電話を拾いテスト」というサイクルが排除され、開発環境とテスト環境が同一になります。
  2. 「横になる」要因 – リラックスした姿勢は作業モードよりも試行錯誤のマインドセットを育みます。
  3. 音声入力の注意点 – Termux は Android の音声入力に対応していません。メモアプリから貼り付ける必要がありますが、これは余計なステップです。Vim モードで編集することは、携帯キーボードでも驚くほど効率的です。

なぜ Web ジェネレーターやクラウドエージェントを使わないのか?

  • 環境所有 – ジェネレーターはサンドボックス化された庭園。内蔵ツールに限定されます。
  • クラウドエージェント制約 – ほとんどの場合、すぐに GitHub リポジトリを結び付ける必要があり、研究段階では不安定です。
  • ローカルエージェント(Termux + Claude Code) は以下を提供します:
    • 実行時の所有権(設定ファイル編集、スクリプト実行)。
    • ツールフリー(
      gh cli
      の利用、ローカルスクリプト実行)。
    • ローカル優先状態(一時的なクラウドコンテナなし)。

要するに:ジェネレーターは魚を提供し、ローカルエージェントは釣り竿・船・海を渡す手段を与えてくれます。


6 回のイテレーションと 6 つの発見

イテレーションプロンプト結果発見
1「加速度計ゲーム、驚かせて」傾きで重力が制御されるパーティクルアートツール視覚だけではなくゲームプレイが必要
2「もっと楽しいものを」傾き操作のエンドレスランナー目的地や深みが欲しい
3「もっと複雑で別のアートスタイルに」フィジックス付きアイソメトリックパズル良い機械学習も悪いフィードバックを打ち消せない
4「物理は保つ、操作を直感的に」傾きインジケータ付きサンドボックス視点が合わず、マーブルゲーム・3rd‑person を欲した
5「3rd‑person マーブルゲーム」キャリブレーション付きマーブルゲーム操作は感度が高すぎる。微調整が重要
6「美しくし、加速度を可視化」プロシージャル地形の WebGL ゲーム適切な 3D と動的カメラには WebGL が必須

最終製品―リング状球体プレイヤーと動的カメラを備えた WebGL マーブルゲームは、始めから私の頭にあったわけではありません。各機能は前回のプロトタイプへの反応から生まれました。


何故これがうまくいくのか

高速フィードバックで「構築しながら考える」ことが可能です:

  1. 誤りを説明(≈ 5 秒)
  2. Claude が修正実装(≈ 30–60 秒)
  3. テスト(≈ 10 秒)
  4. 反応 → 繰り返し

従来の開発は摩擦が多く、PR をレビューしてデプロイするまでに何を反応したか忘れます。Vibe Discovery は反応を即座に保ちます。

AI は曖昧なフィードバック(「もっと楽しく」)を解釈し、障害物を追加したり物理を調整したりして実験します。会話は言葉ではなくプロトタイプで行われます。


興味深い示唆

ヒューマンボトルネックから自律ループへ

Human → 分析 → イテレーション
  ↑               ↓
自動化ソース(テスト、分析、シミュレートユーザー) →
   自動化 → オーケストレーション → 生成/デプロイ

AI コーディング、デプロイメント、測定ツールはすでに存在します。欠けているのは、それらを結びつけ人間ボトルネックを排除するオーケストレーション層です。自動フィードバック(ドロップオフ分析、自動テスト、シミュレートユーザー)は「これが粘り強い」という主観的コメントに代わる可能性があります。


次のステップ?現実チェック

  1. 「Inertia」を手作業で洗練させる。
  2. 6 歳の娘と共に Vibe discovery を行い、「Man and the Apple」と名付けたゲームを開発する。

これらは今後のブログ投稿で紹介します。


技術メモ

  • ゲーム技術:WebGL 1.0 カスタムシェーダ、Device Orientation API(キャリブレーション)、レイヤードサイン波から生成したプロシージャル地形、速度に応じて高さ・距離が変わる動的カメラ。
  • デプロイ
    gh repo create
    + GitHub Pages API – ローカルから本番まで 1 分以内。
  • リポジトリ:6 回のイテレーションを別々の HTML ファイルとして含む。

お試しください

Android で再現するには

# 任意の Android フォンで Termux を使用
pkg install nodejs git
npm install -g @anthropic-ai/claude-code
claude

曖昧なアイデアから始めて、何が生まれるかを確認してみてください。

同じ日のほかのニュース

一覧に戻る →

2026/01/18 5:44

トルコ語の格変化をベースとするプログラミング言語

## Japanese Translation: **(全ての重要ポイントを組み込んだもの)** --- ## Kip – ケースベース型研究言語 Kip は、トルコ語の格変化を型システムと構文に埋め込む実験的プログラミング言語です。名詞格接尾辞と母音調和を用いて引数関係を表現し、関数引数の順序を柔軟に変更できる一方で意味は明確に保たれます。 ### コア機能 | 機能 | 説明 | |------|------| | **引数順序** | 格接尾辞が役割を決定します。例:`(5'le 3'ün farkını) yaz.` と `(3'ün 5'le farkını) yaz.` は同じ意味です。 | | **帰納型** | トルコ語構文で宣言します。例:`Bir doğal-sayı ya sıfır ya da bir doğal-sayının ardılı olabilir.` | | **多相型** | 同様に宣言します。例:`Bir (öğe listesi) ya boş ya da bir öğenin bir öğe listesine eki olabilir.` | | **パターンマッチング** | 条件付き接尾辞 `-sa/-se` を使用し、入れ子パターンとワイルドカード `_` をサポートします。 | | **定数** | キーワード `diyelim` で宣言します。例:`sıfırın ardılına bir diyelim.` | | **組み込み型** | 整数 (`tam-sayı`) – 算術、比較、階乗;文字列 (`dizge`) – 長さ、連結、整数へのパース。 | | **I/Oプリミティブ** | 出力:`yazmak/yaz`;入力:`okumak/oku`;シーケンス接尾辞 `-ip/-ıp/-up/-üp`。 | ### 形態論と実装 * Kip はトルコ語の形態解析に TRmorph の有限状態変換器を利用します。曖昧な単語はすべてのパースで表現され、アポストロフィで解消できます。 * コンパイラは Foma(パッケージマネージャ経由)と Haskell Stack を使用し、REPL (`stack exec kip`) で実行するかファイルを `--exec` で実行します。WASM プレイグラウンドは `playground/` 以下にあります。 ### プロジェクト状況 Kip は研究専用プロジェクトです。構文と挙動は進化する可能性があります。キャッシュされたバイトコードファイル (`.iz`) は、コンパイラが変更されると無効になります。 --- この要約はすべての主要ポイントを反映し、元のテキストに忠実でありながらメインメッセージを明確かつ簡潔に保っています。

2026/01/17 20:15

ASCII文字はピクセルではない:ASCIIレンダリングの深掘り解析

## Japanese Translation: **概要** この記事では、各文字を多次元「形状ベクトル」でモデル化することで鮮明で高コントラストのASCII画像を生成できるインタラクティブな画像→ASCIIレンダラーを紹介しています。従来の最近傍サンプリングはセルごとに1ピクセルとして扱い、ジャギーやぼやけた出力が生じます。スーパーサンプリングはジャギーを減らしますが、単一の輝度値へ平均化するためエッジがまだぼやけてしまいます。 新しい手法では、セルの上/下と左/右の半分を小さな円でサンプリングし、各グリフがどのように空間を占有しているかを捉えます。これにより6次元(方向性コントラスト用の外部サンプリングをオプションで追加)形状ベクトルが生成されます。このベクトル空間で最近傍検索を行い、グリッドセルごとに最適な文字を選択します。ベクトル要素を指数関数的に上げることでコントラストを増幅し(全体の対比を高めつつ均一な勾配を保持)、さらに隣接セルをサンプリングする方向性コントラストでシャープ化します。 フレームごとのユークリッド距離計算とサンプリング収集によるパフォーマンスボトルネックは、**k‑d木インデックス**、**量子化キーを用いたキャッシュ**、およびサンプリングとコントラスト段階の **GPUアクセラレーション** を組み合わせて解消し、モバイルデバイスでもスムーズなFPSを実現しています。著者はさらに、各文字に異なる色/明度を割り当てる方法や高次元サンプリングベクトルの探索などの拡張可能性についても概説しています。 最後に、読者は将来の投稿でこれらの開発内容を取り上げる予定のメールリストへの登録を勧められています。

2026/01/18 7:19

ライトモード・インフレーション (Note: “ライトモード”は「軽い(低エネルギー)モード」を指し、物理学や宇宙論の文脈で使われることが多いです。)

## Japanese Translation: **改善された概要** この記事は、macOS のライトモードウィンドウが過去 16 年で徐々に明るくなってきたことを示しており、Snow Leopard(2012)では平均明度が約 71 %だったのが、Mac OS Tahoe ではほぼ 100 %に上昇しています。著者はスクリーンショットをクロップし、Pillow を使ってグレースケールへ変換した後、ピクセル平均強度を算出することで測定しました。この分析は画面全体やアプリケーションの明るさではなく、**ウィンドウクロム**に特化しています。2020 年末に M1 MacBook Air にアップグレード(Big Sur でウィンドウ明度が 85 %から 97 %に増加)した後、著者はダークモードへ切り替えました。ダークモードは Mojave(2018)で導入されました。本研究では、典型的なライトモードウィンドウの最も暗い色が Tahoe では 97 %明度に達する一方、Snow Leopard では 90 %であることを指摘しています。また、iOS 26 の HDR 実装は一部要素を 100 %以上の白に押し上げる可能性があり、知覚される明るさを過大評価する恐れがあると述べています。 著者は、このより明るい UI デザインへの移行がコントラストバイアスによってダーク背景をより魅力的にしていると主張し、ユーザーの目の疲労を軽減しつつアプリ間の視覚的区別を保つために中程度のグレー(約 50 %)インターフェースを推奨しています。将来のデザインへのインスピレーションとして、著者はより高い明るさレベルにもかかわらず、Yosemite などの古い macOS スタイルを好んでいます。 このバージョンは主要なポイントすべてを保持し、ダークモード導入に関する余計な因果推論を削除し、ウィンドウクロムへの焦点を明確にしています。

**Show HN:** 私は何を作っているか分からないまま、古い携帯でゲームを作りました。 | そっか~ニュース