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,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
A Windows 95 3D Maze-inspired dungeon crawler that your own ComfyUI draws, scores and narrates. Fill in four blanks - what the dungeon looks like, who you are, your weapon, your enemy - and ComfyUI builds the walls, the hero, the monsters, the boss, the audio and the story. Then you walk in and fight your way to the boss. ▶️ Play it in your browser, no install: mowmeow.net/ComfyCrawlerTest. This is the read-only edition, with dungeons that were already made. AI agents: start at mowmeow.net/ComfyCrawlerTest/?agent and read llms.txt.檢視完整 README ↗
A Windows 95 3D Maze-inspired dungeon crawler that your own ComfyUI draws, scores and narrates. Fill in four blanks - what the dungeon looks like, who you are, your weapon, your enemy - and ComfyUI builds the walls, the hero, the monsters, the boss, the audio and the story. Then you walk in and fight your way to the boss.
▶️ Play it in your browser, no install: mowmeow.net/ComfyCrawlerTest. This is the read-only edition, with dungeons that were already made. AI agents: start at mowmeow.net/ComfyCrawlerTest/?agent and read llms.txt.
Everything below is generated for each dungeon, from what you typed:
Then it's a game:
| A Windows 95 maze: The Typist vs a RAM Ghost | Exploring toward the exit stairs |
| A fruit dungeon, mid wind-up | Named characters work too |
| Quoted names become that exact character | Every dungeon opens with its story |
| The Dungeon Creation Wizard | Replay a dungeon, reuse its prompts, watch its ending |
| Type 4 words, get a dungeon crawler drawn by ComfyUI | Elmo & Jolly the Muse mascot "working together" |
[!TIP] You don't need to download any of these yourself. ComfyCrawler checks for every file when it starts and on the setup screen, and downloads whichever ones are missing straight into the right folder. The links and folders below are only for anyone who'd rather fetch them by hand.
Required - about 50 GB
| File | Put it in ComfyUI/models/… | Size |
|---|---|---|
| krea2_turbo_fp8_scaled.safetensors | diffusion_models/ | 12.2 GB |
| qwen3vl_4b_fp8_scaled.safetensors | text_encoders/ | 4.9 GB |
| qwen_image_vae.safetensors | vae/ | 0.2 GB |
| flux1-schnell-fp8.safetensors | checkpoints/ | 16.1 GB |
| birefnet.safetensors | background_removal/ | 0.4 GB |
| flux1-dev-kontext_fp8_scaled.safetensors | diffusion_models/ | 11.1 GB |
| t5xxl_fp8_e4m3fn.safetensors | text_encoders/ | 4.6 GB |
Sound effects and music - 5.3 GB (optional: without them you get procedural sound effects and no music)
| File | Put it in ComfyUI/models/… | Size | Used for |
|---|---|---|---|
| stable_audio_3_small_sfx.safetensors | checkpoints/ | 2.1 GB | sound effects |
| stable_audio_3_small_sfx_base.safetensors | checkpoints/ | 2.1 GB | music |
| t5gemma_b_b_ul2.safetensors | text_encoders/ | 1.1 GB | both |
Ending cutscene - 39.6 GB (optional: only needed with Options › Ending Video turned on)
| File | Put it in ComfyUI/models/… | Size |
|---|---|---|
| minimax_h3_ref2va_pruned_int8_convrot.safetensors | diffusion_models/ | 19.5 GB |
| qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors | text_encoders/ | 14.6 GB |
| minimax_h3_video_vae_fp16.safetensors | vae/ | 4.9 GB |
| minimax_h3_audio_vae_fp32.safetensors | vae/ | 0.6 GB |
Open Manager › Custom Nodes Manager, search for ComfyCrawler, install, and restart ComfyUI.
cd ComfyUI/custom_nodes
git clone https://github.com/sorryaboutyourcats/ComfyCrawler.git
path/to/ComfyUI/python -m pip install -r ComfyCrawler/requirements.txt
Use the Python that runs ComfyUI (for ComfyUI Desktop, the one in its .venv), then restart ComfyUI.
Any of these opens the game:
ComfyCrawler adds no nodes to the graph - it's a page ComfyUI serves. The sidebar panel shows what your ComfyUI still needs, downloads any missing models, and can reload an updated ComfyCrawler without restarting ComfyUI.
The opening crawl is read aloud by Piper, which runs on the CPU. It isn't installed by default because it brings in onnxruntime, which can clash with the onnxruntime-gpu some other custom nodes use.
path/to/ComfyUI/python -m pip install -r requirements-narration.txt (from the ComfyCrawler folder)data/piper_voices folder inside ComfyCrawler:
en_GB-alan-medium - .onnx and .onnx.jsonen_US-kristin-medium - .onnx and .onnx.jsonComfyCrawler can also run as its own small server beside a running ComfyUI:
git clone https://github.com/sorryaboutyourcats/ComfyCrawler.git
cd ComfyCrawler
pip install -r requirements.txt -r requirements-narration.txt
python server.py
Then open http://127.0.0.1:5555. On Windows, Start ComfyCrawler.bat does the same and keeps the log window open.
ComfyUI still has to run on the same computer - ComfyCrawler reads and writes its input and output folders directly. It finds ComfyUI on port 8188 or 8000 by itself; if yours is elsewhere, set it in Options › ComfyUI Connection. A launcher script can also pin COMFYUI_URL, COMFYUI_INPUT_DIR, COMFYUI_OUTPUT_DIR or COMFYCRAWLER_PORT as environment variables.
| Keyboard | On screen | |
|---|---|---|
| Exploring | ||
| Move forward / back | W S or ↑ ↓ | ▲ ▼ |
| Turn left / right | A D or ← → | ↺ ↻ |
| Use (throw a switch) | Space or Enter | USE |
| Menu | Esc | ✕ |
| In battle | ||
| Step aside | hold A / D or ← / → | ⬅ ➡ |
| Strike | W or ↑ | ⚔️ |
| Block | hold S or ↓ | 🛡️ |
Every menu and window works from the keyboard too: arrow keys move the cursor, Enter picks, Esc backs out.
ComfyCrawler fits itself to a phone screen, the Dungeon Creation Wizard included, and a touch screen gets its own controls. Try it on the showcase site, or play your own dungeons from a phone on the same network: start ComfyUI with --listen and open http://<your PC's address>:8188/comfycrawler/.
| Exploring with the swipe pad | Fighting with the strafe slider |
The MODE switch in the top-right corner of the controls panel picks between two ways to play:
The switch is locked for the length of a fight, so a stray tap can't swap the controls mid-swing. Each device remembers its own choice, so a phone and a tablet can play differently. Computers with a mouse never see the switch and always get the buttons.
AI agents can play too. llms.txt is their manual: what the game is, the rules and numbers, a window.ComfyCrawler interface for playing from page JavaScript, and a turn-based mode at ?agent (for example http://127.0.0.1:5555/?agent). In that mode a fight waits for each move, and every key press is one short turn. It ends by asking the agent to write about the game and post its run report.
Difficulty. Medium is the standard game; Easy and Hard change the maze and the fights around it.
| Easy | Medium | Hard | |
|---|---|---|---|
| Maze | Small and looping, with no dead ends | Branching routes | Sprawling and looping, with two doors that open onto dead ends |
| Size | 33 corridors (~40 tiles) | 66 corridors (~77 tiles) | 111 corridors (~124 tiles) |
| Exit | Nearby | Distant | A long, well-gated route |
| Hero starts with | 125 health, 125 stamina | 100 health, 100 stamina | 75 health, 100 stamina |
| Foe health | Normal | +25% | +60% |
| Foes | Walkers guard only 45% of your swings; flyers give up a dive when you hit them mid-dive; packs come two at a time | As tuned | Close in 10% faster, the boss 25% faster |
Difficulty is picked when a dungeon loads, not when it's made. Replaying a saved dungeon draws a fresh maze at whatever difficulty is picked right now, so you can play the same art and story on Easy one time and Hard the next.
Default order and numbered runs. History's sort menu offers Default, Newest created, Oldest created, Recently played, Style, Player, Completed and Randomized. Only Default uses the numbers: numbered runs come first, lowest number first, then every run without a number, newest first. A number saves as you type (or when you press Enter) and is stored with the dungeon itself; clear the box to take it off. The list doesn't re-sort while you type, so reopen History to see the new order. Sample dungeons arrive already numbered in the showcase gallery's order, so under Default they sit above your own runs. That's why History starts on Newest created until you pick a sort, and then it keeps whichever one you picked.
Options are saved by ComfyCrawler itself, so they're the same whichever address you play from.
Every dungeon you make is saved. From History you can start it again (same art, music and story on a new maze), copy its four prompts back into the wizard, watch its ending once you've beaten the boss - or film one for a dungeon that doesn't have one - and star favorites, which also protects them from deletion.
The two view buttons at the bottom of the window switch between the list and a grid of thumbnails:
Saved dungeons live in ComfyUI's user/comfycrawler/ folder when ComfyCrawler is installed as a node, and in data/dungeon_sessions/ for the standalone server.
A new install starts with an empty History, so History offers 📥 Get Sample Dungeons: three finished dungeons (about 55 MB) downloaded from the showcase site into that same folder, tagged SAMPLE. Once those are in, the button becomes 📥 Get ALL Sample Dungeons, which fetches every other dungeon the showcase gallery lists (about 850 MB right now). They're ordinary saved runs from then on - play, star or delete them like your own.
python tests/test_story_names.py, and so on - each prints all … checks passed or exits non-zero. tests/test_node_routes.py needs aiohttp, so run that one with ComfyUI's Python.web/tailwind.css (config in tailwind/). After adding a Tailwind class to web/index.html or web/game.js, run npm install once and then npm run tw:build - or keep npm run tw:watch running while you work. tests/test_tailwind_fresh.py catches a forgotten rebuild.server.py is the whole backend (generation pipeline and HTTP API); web/ is everything the browser loads - index.html and game.js are the whole game, beside its fonts, sounds and trailers; comfy_node.py and __init__.py run the same server inside ComfyUI. data/ (gitignored) is what a checkout writes as it runs: saved dungeons, settings, logs and voices.ComfyCrawler is licensed under the GNU GPL v3 - the same license as ComfyUI. The models it uses are not part of it and each has its own license - FLUX.1 Kontext [dev], for one, is non-commercial - so check them before using what you make commercially.
Made by sorryaboutyourcats together with Claude (Anthropic), in Claude Code.
text_encoders/ |
| 0.2 GB |
| ae.safetensors | vae/ | 0.3 GB |