🔛

1時間くらいで Cloudflare Workers + Durable Object なミニゲームをデプロイした話

に公開

https://cccccccclick.m-yamagishi90.workers.dev/

ミニゲームは、ユーザーインタラクションが「クリック」だけの超シンプルなものです。

クリックすると総クリック回数が増えます。それだけです。

ただ、これはクリック回数を Cloudflare の Durable Object に保存しているので、他の誰かがクリックした数字も反映されます。

https://github.com/yamayuski/cccccccclick/commit/6c4923999d13b8103420ed6c9e5b04bbbd5170d4

初期コミットはこれだけです。 1 時間半くらいで適当に書いて、 Cloudflare Workers への push/deploy は wrangler を用いてすぐに終わりました。

思いつきから実際に動作するまでの時間がとても短くなりましたね。

現在は WebSocket による、よりリアルタイムな双方向通信による更新の作業をしています。それに紐づいて、他のプロダクトでも必要性を感じていた「一つコントラクトを定義したら、 WebSocket でも WebTransport(今の所サーバは Deno) でも WebRTC でも Bun でも Cloudflare でも動く」という Protocol-agnostic な通信ライブラリを作成中です。 Hono は型安全な RPC 含め複数のランタイムで動作しますが、前提が HTTP 通信なので双方向性がありません(WebSocket middleware はありますが WebRTC や WebTransport がまだ対応されていません)。なので、自分で作ってしまおうという算段です。

このライブラリは基本的な実装を GPT-5 にお任せして、私は指示出しだけしています。 issue を作って Copilot にアサインしたら勝手に実装してくれるので非常に楽です。

https://github.com/yamayuski/kataribe

こっちの方はまだ publish していませんが、 npm や jsr などに公開して自由に require することが出来るようにする予定(で、自分のプロダクトにも使う)なので、公開されたら是非使ってみてください。

Discussion