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
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
軌道遷移、姿勢制御、時間加速、会合、射撃を一つのゲーム状態の上で扱う、WebGPU 製の 3D 軌道力学シューティングです。詳細なコードベースの読み方は 開発 WIKI、ゲームがどう振る舞うべきかは SPEC を参照してください。 GitHub Pages 版を WebGPU 対応ブラウザで開き、ステージを選択してください。ゲーム中は H で操作説明を表示できます。 戦闘ビューでは姿勢・推力・照準を直接操作し、マップビューでは軌道・マニューバーノード・時間加速を扱います。近距離戦と軌道遷移は別ゲームではなく、同じシミュレーションの異なる時間スケールです。 マニューバーノードは噴射後の状態と実行時刻を持ち、PRO / RET、NRM / ANM、IN / OUT の3軸で Δv を編集できます。L1〜L5 は二天体系の回転座標から ECI 状態へ変換され、航法やマップ表示の基準として使われます。 最適遷移を自動生成する方式ではなく、プレイヤーが予測軌道を見ながらノードを置いて軌道を組み立てます。 船体は ShipAssembly として、モジュール実体と接続辺からなるグラフで保持されます。cockpit、tank、thruster、RCS、weapon、dock、solar_panel、radiator、booster などが個別の状態を持ちます。README 전문 보기 ↗
軌道遷移、姿勢制御、時間加速、会合、射撃を一つのゲーム状態の上で扱う、WebGPU 製の 3D 軌道力学シューティングです。詳細なコードベースの読み方は 開発 WIKI、ゲームがどう振る舞うべきかは SPEC を参照してください。
| 項目 | 内容 |
|---|---|
| 実行環境 | ブラウザ / WebGPU |
| 描画 | Three.js WebGPU 描画器 + TSL |
| 言語 | TypeScript |
| 物理 | RK4、Kepler 軌道、2次重力場、大気抵抗、太陽放射圧、剛体姿勢 |
| 航法 | マニューバーノード、ラグランジュ点、慣性系 / 回転系 |
| 保存 | ブラウザの localStorage + エクスポート |
| 公開 | GitHub Pages |
[!TIP] GitHub Pages 版を WebGPU 対応ブラウザで開き、ステージを選択してください。ゲーム中は H で操作説明を表示できます。
戦闘ビューでは姿勢・推力・照準を直接操作し、マップビューでは軌道・マニューバーノード・時間加速を扱います。近距離戦と軌道遷移は別ゲームではなく、同じシミュレーションの異なる時間スケールです。
| モード | 内容 |
|---|---|
| stage 00 | 弾薬を回収してから始まる無限耐久サバイバル |
| stage 0 | 周囲 5 km の敵を相手にする 120 秒スコアアタック |
| stage 1 | 高度 420 km の地球低軌道で近傍軌道の敵 5 機を撃破 |
| stage 2 | 通常軌道と高楕円軌道が混在する戦域 |
| CREATIVE | 軌道要素・ラグランジュ点などを使って物体を配置するサンドボックス |
マニューバーノードは噴射後の状態と実行時刻を持ち、PRO / RET、NRM / ANM、IN / OUT の3軸で Δv を編集できます。L1〜L5 は二天体系の回転座標から ECI 状態へ変換され、航法やマップ表示の基準として使われます。
最適遷移を自動生成する方式ではなく、プレイヤーが予測軌道を見ながらノードを置いて軌道を組み立てます。
船体は ShipAssembly として、モジュール実体と接続辺からなるグラフで保持されます。cockpit、tank、thruster、RCS、weapon、dock、solar_panel、radiator、booster などが個別の状態を持ちます。
ドッキングした船体は一つの統合船体として扱われ、燃料・損傷・展開状態などもモジュール単位で保存されます。
敵との交戦では距離だけでなく相対速度が重要です。ターゲット運動と弾速から見越し点を求め、実体弾を発射します。射撃は高倍率の時間加速中には行えません。
地球は一枚の画像ではなく、地表タイル / 地形 / 大気 / 雲 / 大気光 / オーロラ / 照明を別系統として構成します。地表はタイル要求・常駐キャッシュ・ページテーブルを経て GPU 材質へ渡されます。
描画側には WebGPU / TSL、レイマーチング、ブルーノイズ、熱放射、複数の雲描画経路などの実装があります。
軌道伝播は単純な二体問題だけではありません。点質量重力に加えて J2 / C22 の2次重力場、多体重力、大気抵抗、太陽放射圧、日照・遮蔽を扱います。地球では主に J2、非軸対称性を持つ天体では C22 も評価できます。
大気圏では空力荷重・加熱・燃え尽きも計算します。物理計算は src/physics/ に分離され、Three.js に依存しません。
マップビューは表示原点と回転を分けて選択でき、慣性系、公転回転系、自転系を扱います。軌道線は各サンプル時刻で座標変換されるため、回転する基準系でも時間変化を保ったまま表示できます。
同じ画面上でラグランジュ点、予測軌道、マニューバーノード、Δv 操作を確認できます。
| キー | 操作 |
|---|---|
| W / S | 前進 / 後退 |
| A / D | 左 / 右並進 |
| Q / E | 上 / 下並進 |
| I / K | ピッチ |
| J / L | ヨー |
| U / O | ロール |
| P | RCS 回転制動 |
| F | プログレード方向へ向く |
| C | プログレード姿勢保持 |
| 1〜4 | 推力レベル |
| T | ターゲット選択 |
| Z | 照準ズーム |
| Space / 左クリック | 射撃 |
| 5 / 6 | ブースター分離 / 点火 |
| 7 / 8 | 太陽電池パドル |
| 9 / 0 | ラジエーター |
| キー | 操作 |
|---|---|
| , / . | 時間倍率を下げる / 上げる |
| N | 次のマニューバーノードまでワープ |
| M | 戦闘ビュー / マップビュー |
| W / S | Δv: PRO / RET |
| A / D | Δv: NRM / ANM |
| Q / E | Δv: IN / OUT |
| X | ノード / 軌道計画を削除 |
| キー / 操作 | 内容 |
|---|---|
| 矢印キー / ドラッグ | カメラ回転 |
| 二本指 / 中ボタンドラッグ | パン |
| ピンチ / ホイール | ズーム |
| ダブルタップ / ダブルクリック | 注視 |
| G | 機体姿勢へ追従 |
| H | 操作説明 |
| ESC | ポーズ / 設定 |
| F3 | デバッグ情報 |
| F5 | 手動セーブ |
| F9 | セーブ管理 |
物理・ゲーム状態を正本とし、HUD・軌道線・マーカーなどはそこから導出します。描画や DOM がゲーム状態の所有者にならないよう、フレーム処理は概ね 入力 → シミュレーション → 表示同期 → 描画 の順に進みます。
コードベースを詳しく読む場合は 開発 WIKI を参照してください。層・import・正本の規則は ARCHITECTURE、コードの書き方は CODING-RULE が正本です。
npm install
npm run dev
Node.js 20 以上、WebGPU 対応ブラウザを推奨します。
| コマンド | 用途 |
|---|---|
npm run typecheck | TypeScript 型検査 |
npm run test | 全テスト |
npm run test:physics | 物理テスト |
npm run test:game | ゲームテスト |
npm run test:render | 描画テスト |
npm run lint | ESLint |
npm run check:boundaries | アーキテクチャ境界検査 |
npm run render-lab | 描画実験環境 |
npm run cloud-lab | 雲の実験環境 |
npm run bgm-lab | BGM 試聴環境 |
npm run ci | 総合検証 |
より詳しい開発手順、ディレクトリ構造、テストの使い分けは 開発 WIKI にまとめています。
| データ | 出典 / 用途 |
|---|---|
| 惑星テクスチャ | Solar System Scope — CC BY 4.0 |
| 惑星全球モザイク | USGS Astrogeology Science Center |
| 地球表面 / 地形 / 気象 | NASA Earth Observatory、NOAA NCEI ETOPO、ERA5 |
| 海岸線 | Natural Earth |
| タンパク質構造 | RCSB Protein Data Bank |