Underground 2 Revived
Play Need for Speed: Underground 2 (2004) in Chrome and Firefox with WebGPU graphics, Web Audio, up to 120 fps widescreen, controller support, free roam and Online races with friends. Fan project, not
上から降ってくるひらがなをタップして集め、制限時間内に単語を作ってスコアを競う無料のブラウザゲーム。インストール不要・登録不要ですぐに遊べます。
Translation pending
GamesTypeScript · CSSGitHub @fukicycleOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
上から降ってくるひらがな文字をタップして集め、制限時間内に単語を作ってスコアを競うWebゲーム。 バックエンドサーバーを持たず、React(フロントエンド)+ GitHub Pages(静的ホスティング)+ Firebase Realtime Database(Anonymous Auth + 任意のGoogleログイン)のみで完結する構成のPoC実装です。 詳細な仕様は CLAUDE.md / mojifuru-design-doc.md を参照してください。 判定用辞書(public/dict.dawg)と単語一覧(public/wordlist.json)はリポジトリに含まれていません。 ビルド前に一度だけ生成してください(Mozc辞書・JMdictのダウンロードにネットワーク接続が必要です)。 src/game/ 以下の純粋関数(文字の降下ロジック・DAWG判定・得点計算)を中心にユニットテストしています。 対戦モード・全体ランキングを有効にするには Firebase プロジェクトが必要です。Read the full README ↗
上から降ってくるひらがな文字をタップして集め、制限時間内に単語を作ってスコアを競うWebゲーム。 バックエンドサーバーを持たず、React(フロントエンド)+ GitHub Pages(静的ホスティング)+ Firebase Realtime Database(Anonymous Auth + 任意のGoogleログイン)のみで完結する構成のPoC実装です。
詳細な仕様は CLAUDE.md / mojifuru-design-doc.md を参照してください。
npm install
判定用辞書(public/dict.dawg)と単語一覧(public/wordlist.json)はリポジトリに含まれていません。
ビルド前に一度だけ生成してください(Mozc辞書・JMdictのダウンロードにネットワーク接続が必要です)。
npm run fetch-dict # scripts/.cache/ にソースデータをダウンロード(初回のみ)
npm run build-dict # public/dict.dawg, public/wordlist.json を生成
npm run dev
npm run test
src/game/ 以下の純粋関数(文字の降下ロジック・DAWG判定・得点計算)を中心にユニットテストしています。
npm run build
対戦モード・全体ランキングを有効にするには Firebase プロジェクトが必要です。
<user>.github.io、Cloudflare Pagesのドメインなど)を追加
(Googleログインはポップアップ方式。未追加のドメインでは auth/unauthorized-domain になる)firebase.rules.json をルールとしてデプロイ
(firebase deploy --only database、または Firebase CLI 未導入ならコンソールから手動で貼り付け).env.example を .env.local にコピーし、Firebaseの設定値を入力Firebaseを設定しない場合でも「ひとりで遊ぶ」モードは通常どおり動作します。
Firebaseプロジェクトで Google Analytics を有効化している場合、.env.local の
VITE_FIREBASE_MEASUREMENT_ID(Firebaseコンソール > プロジェクトの設定 > 全般 の測定ID、G-から始まる値)
を設定するとGA4計測が有効になります。GitHub Pagesへのデプロイ時は VITE_FIREBASE_MEASUREMENT_ID
をリポジトリのActions Secretsにも登録してください。未設定の場合はAnalyticsが無効化されるだけで、
他の機能には影響しません。react-router-dom によるSPA内遷移も page_view として個別に送信されます
(src/App.tsx の AnalyticsTracker)。
vite-plugin-pwa(generateSWモード)によりオフライン起動・ホーム画面追加に対応しています。
public/pwa-192.png / pwa-512.png / apple-touch-icon.png / favicon-96.png)は
ブランドカラー(マゼンタ→オレンジ→アクアのグラデーション)+「も」の白抜き文字で、public/favicon.svg
と同じデザインコンセプト。maskableアイコン(Androidの各種形状マスク)のセーフゾーンに収まるよう調整済みnpm run build 時に dist/sw.js が生成され、JS/CSS/HTMLに加えて辞書データ(dict.dawg /
wordlist.json)も事前キャッシュされるため、初回読み込み後はオフラインでも起動・プレイできますstart_url / scope はビルド時に vite.config.ts の base(/mojifuru/)へ
自動的に合わせて解決されますvite.config.ts の base はリポジトリ名 mojifuru を前提に /mojifuru/ を設定しています。
npm run build で生成される dist/ を GitHub Pages(gh-pagesブランチ、または Actions
によるPagesデプロイ)で配信してください。
src/
├── game/ 文字の降下・DAWG判定・得点計算(純粋関数)
├── firebase/ Firebase設定・ルーム同期・ランキング・戦績・未登録語収集
├── hooks/ useGameSession(上記の純粋関数をReactに配線するフック)
├── context/ 辞書読み込み状態・プレイヤー名などのグローバル状態
└── components/ 各画面(タイトル/ゲーム/結果/一覧/ランキング/ライセンス/対戦ルーム)
scripts/
├── fetchDictSources.ts Mozc辞書・JMdictのダウンロード
├── buildDict.ts フィルタ・クロスチェック・DAWG変換
└── dawgBuilder.ts DAWG(Directed Acyclic Word Graph)構築アルゴリズム