Underground 2 Revived
Chrome과 Firefox에서 Need for Speed Underground 2를 WebGPU로 두고 팬 프로젝트입니다
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗ラグビーの ジャッカル(タックル後のボール奪取)をテーマにしたブラウザゲームです。 タックルで相手を倒し、こぼれたボールを奪い取れ! 全 20 プレーで何回ボールを奪えるかを競います。
画面は 味方選手の背中越しの3D視点。ナイター照明のスタジアムで、選手の動き・ボタン・花火・歓声・質感は techgymjp/center-fly(センターフライ)と同じ作りです。
index.html をブラウザで開くだけで遊べます(Web 版はビルド不要)。Android アプリ版と iOS アプリ版もあります(下記)。3D描画に同梱の three.js(vendor/three.min.js, MIT License)を使っています。
GitHub Pages などの静的ホスティングにそのまま置けます。
失敗(トライを許す・抜かれる・逃げ切られる・ボールを拾われる)すると次のプレーへ進みます。
| 操作 | タッチ / マウス | キーボード |
|---|---|---|
| 選手A・選手Bの移動 | 左下の 方角リング(16方位・中心から離すほど速い) | 矢印キー / WASD |
| ダッシュ | ダッシュボタン長押し(スタミナ消費) | Shift / Space |
| 前タックル(選手A) | 右側の「前」ボタン | I(または K) |
| 左タックル(選手A) | 右側の「左」ボタン | J |
| 右タックル(選手A) | 右側の「右」ボタン | L |
| 一時停止 | — | P / Esc |
| 音のオン/オフ | 画面上部のスピーカーボタン | M |
| ナビのオン/オフ | 画面上部の「ナビ」ボタン | N |
選手Bを操作している間は、前・左・右のタックルボタンは出ません(移動とダッシュだけ)。 方向は画面基準です(前 = 画面の奥)。
ナビ: タックルが届くタイミングで相手の足元に黄色い輪が出て、当たるボタンが点滅します。 こぼれ球の行き先には緑の輪が出ます。結果画面とシェア文にナビあり/なしが入ります。
音はすべて Web Audio API で合成しています(音声ファイルなし)。
日本語と英語に対応しています。端末の言語が日本語なら日本語、それ以外は英語で表示し、タイトル画面左下のボタンで切り替えられます。
文言は i18n.js にまとめています。
Capacitor でゲームのファイルをアプリに同梱し、Android アプリにしています(オフラインで遊べます)。
構成は techgymjp/jet-fighter の docs/ANDROID_PORTING.md、techgymjp/center-fly と同じです。
jp.techgym.jackalビルドは GitHub Actions(.github/workflows/android.yml)で行います。
npm ci → npm run build(www/ に Web ファイルをコピーし、ads-config.js と build-info.js を生成)→ npx cap sync android → ./gradlew assembleDebugandroid-latest の jackal.apk を差し替え(動作確認用・テスト広告)
https://github.com/techgymjp/jackal/releases/tag/android-latest(QR コード: docs/apk-qr.png)https://github.com/techgymjp/jackal/releases/latest/download/jackal.apkANDROID_KEYSTORE_BASE64 / ANDROID_KEYSTORE_PASSWORD / ANDROID_KEY_ALIAS / ANDROID_KEY_PASSWORD)があれば、本番広告で署名付き AAB を作り Artifact に上げるAdMob のアプリ ID は android/app/src/main/res/values/strings.xml の admob_app_id、本番の広告ユニット ID は ads.js の UNITS.production にあります。
動作確認用 APK はどれもテスト広告、Google Play 用の AAB は本番の広告です(広告ユニット ID が空の種類は出さない)。
手元で試すとき: npm install → npm run android:sync → npm run android:open(Android Studio が必要)。
アイコンと起動画面は assets/ の元画像から npx @capacitor/assets generate --android で生成しています。
Android 版と同じ Capacitor のプロジェクトに ios/ を足して作っています。構成は techgymjp/jet-fighter(JET STRIKE)と同じです。
jp.techgym.jackal(Android と同じ)、iPhone 専用・横画面固定・全画面・プレイ中は画面を消さないios/App/App/Info.plist(アプリ ID)と ads.js の UNITS.ios.production(広告ユニット).github/workflows/ios.yml で push のたびに Xcode でビルドできるかを確認(署名なし)、.github/workflows/ios-release.yml で本番広告の設定でビルドして TestFlight にアップロード(ビルド番号は実行回数 + 100)docs/IOS_BUILD.mddocs/store/ios/(スクリーンショット 2622×1206 日英各 4 枚、ヘッダ 3840×1646、検索結果 3840×2560)| ファイル | 内容 |
|---|---|
game.js | ゲームの進行・選手の動き・入力・2D の表示(HUD・ボタン・ミニマップ) |
scene3d.js | 3D 描画(スタジアム・選手・楕円球・花火・カメラ) |
sound.js | 音(Web Audio API で合成) |
i18n.js | 日本語 / 英語の文言 |
ads.js | 広告(Android アプリのときだけ動く) |
android/ | Android アプリのプロジェクト(Capacitor) |
ios/ | iOS アプリのプロジェクト(Capacitor) |
テスト用に window.Jackal(newGame(seed)、setBot(fn)、forceType など)を公開しています。
著作権はテックジム株式会社に帰属します(All rights reserved)。許可なく複製・改変・再配布すること、Web サイトやアプリとして公開・販売すること、名前・ロゴ・アイコン・画像を使うことを禁止します。 テックジムの受講生が学習目的で複製・改変することは許可しますが、アプリストアでの公開・広告の掲載・販売などの商用利用は禁止し、著作権表示を残してください。 同梱の three.js は MIT License です。詳しくは LICENSE を見てください。
Jackal — a 3D rugby browser game about winning the ball at the breakdown.
index.html in a browser to play. Android and iOS apps (Capacitor) are also included.