たれみみ部のアイコン

たれみみ部

たれみみうさぎたちとおしゃべりしたり、作品をながめたり、ミニゲームで遊んだりできるウェブサイト。

公開中
  • ウェブサイト
  • Next.js
  • TypeScript
  • Supabase
  • three.js
  • Gemini API
サイトを見る

できること

つくり

フロント Next.js 14(App Router)+ TypeScript + Tailwind CSS。Vercel にデプロイしています。
データベース・認証 Supabase(PostgreSQL + Auth)。Google ログインに対応し、部員プロフィール、実績、ミッション、各ゲームのスコアを保存しています。
AI Google Gemini API。キャラクターの口調を保つプロンプトを組み、返答のラベルに応じた表情画像をあらかじめ読み込んで、待ち時間を短くしています。
3D three.js。うさぎのモデルはコードで組み立てていて、GLB として書き出せます。美術館シーンではNPCが歩きまわります。
画像 部員がアップロードしたアイコンや部員証の画像は Cloudflare R2 に保存・配信。生成には html2canvas と sharp を使っています。
計測 アクセスログを自前で記録し、管理画面で日別・ページ別・時間帯別に見られるようにしています。
テスト Vitest。ゲームのバランス調整は、何度も対戦を回すシミュレーションをテストとして実行して数字で確かめています。

技術的におもしろいところ

対戦ゲームの物理を決定論にしてある

対戦ゲーム「たれコマッシュ」の物理は、同じシードと同じ入力なら必ず同じ結果になるように作っています。 おかげでバランス調整を勘に頼らずに済み、パラメータを変えるたびに大量の対戦をシミュレーションとして回して、 勝率の偏りを数字で見ながら詰められます。同じ物理エンジンをレースの「たれコマGP」でも共有しています。

ランキングは1つのテーブルに全ゲームが相乗り

ミニゲームごとにテーブルを作らず、ゲームIDで区別する汎用のスコアテーブルにまとめています。 新しいゲームを足すときはデータベース側の作業が要らず、デイリー・週間・通算の集計も1か所で済みます。 会員登録なしで遊ぶ場合は、端末ごとに作った匿名のIDで自分の記録をまとめて表示します。

同じゲームコードが3か所で動く

ミニゲームは、サイト内のページ・itch.io・iOSアプリの3か所で動きます。 Vite で単体のHTMLへビルドし直したものを配っていて、iOS版はそれをアプリに同梱して WKWebView から読み込む形。 ゲーム本体を書き直さずにネイティブ配信へ載せられます。

プライバシー・お問い合わせ

たれみみ部のプライバシーポリシー利用規約は、サイト内に掲載しています。

ご意見・不具合のご報告は、たれみみ部の「コンタクト」ページ、または Sizu dev のお問い合わせページからご連絡ください。