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,即可驗證所有權並自行管理介紹。
一分鐘完成驗證A Core War-inspired programming game: warriors battle in a simulated memory array. ICWS'94 VM verified against pMARS, Redcode/JS/Python, encyclopedia, post-mortems, CLI for AI agents.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Experimental structural evolution: the warrior block catalog maps local and public source sections, composes checked '88/'94 recipes, and connects them to evolution and parameter tuning. See the experiment journal. The current hill leader breakdowns include source sections, compatibility checks and small playable reference extractions. An original Lifeboat 94x recipe adds a tested stone/watchdog/clear family. The family history traces dated source changes and the constraints useful for future generators.
A browser-based programming game inspired by Core War (1984). Players write small programs, called warriors, that compete inside a simulated circular memory array run by a virtual machine. Warriors can read and overwrite any cell, so they bomb, copy, scan and trap each other. The last warrior with a running process wins.
# $ @ < > { } and common opcodes). On phones the arena switches to Arena / Code / Details tabs with icon controls.battle --report and trace.warriors/javascript/ and warriors/python/, and any original can be converted on demand: zorewars convert classic:thermite --to py, or the arena's Convert buttons./web/docs.html..red file onto the editor. In the CLI, use classic:thermite or any URL. Nothing is copied into the project.--json output, reproducible from a seed. See AGENTS.md.[0,1]. Code flows along rows, and fixed strides can't cover the plane, so the strategies that win change. Classic battles are unaffected, and a plane one row high is proven identical to the ring. See design/3d-battlefield.md.zorewars hill (benchmark with loss diagnosis), species (behaviour map), tune (constant search), evolve (seeded MAP-Elites or a population genetic algorithm with Red Queen opponents), and train (separate validated versions for each ruleset). See warrior training for the library strategy map, search controls and validation workflow. MAP-Elites follows Digital Red Queen.Play it: zorewar.app (full version on Cloudflare) · bstag.github.io/zorewars (static mirror on GitHub Pages: everything except importing originals by URL)
No runtime dependencies; Node.js 18+ (Wrangler, for Cloudflare deploys, needs Node 22).
npm start
Then open http://localhost:8080. Pick warriors with the Library button (search and filter the whole library), press Run, and hover over the core to read memory.
Hosting: there's no build step; the repository root is the website. Deploy it to Cloudflare (Workers + Static Assets, with a tiny Worker that proxies archive downloads) or to GitHub Pages (fully static). See DEPLOY.md.
node cli/zorewars.js list
node cli/zorewars.js battle @mice @dwarf --rounds 100
node cli/zorewars.js tournament warriors --rounds 20
node cli/zorewars.js battle warriors/carpet.js @scanner --json
node cli/zorewars.js hill warriors/gatekeeper.js --classics
node cli/zorewars.js evolve --generations 6
node cli/zorewars.js train --profiles 94nop,88,lp,94x --seed 4242
| Path | What it is |
|---|---|
index.html | Redirects to web/, so the repository root can be served as-is. |
worker/index.js, wrangler.jsonc, .assetsignore | Cloudflare deployment: static site plus the /api/fetch archive proxy. |
.github/workflows/ | CI (tests, Cloudflare dry run) and an optional GitHub Pages deploy. |
design/ | Design proposals, starting with rulesets and the 3D battlefield. |
src/engine/ | The VM, assembler, JS generator and match runner. Shared by the browser and Node. |
web/ | The arena (index.html, app.js, arena.js) and the tutorial (docs.html). |
cli/zorewars.js | Command-line battles, tournaments, compiler, and the static server with its archive proxy. |
cli/devtools.js, tools/ | Developer tools: the parallel benchmark (hill.js, worker.js), tuner (tune.js), evolver (evolve.js, genes.js). |
cli/remote.js | Fetches warriors from the public archives (allow-listed hosts for the proxy; Redcode only). |
warriors/ | Built-in warriors and index.json, the library manifest. |
lang/python/zorewars.py | Python generator library. |
lang/cpp/zorewars.hpp | C++17 generator library (header only). |
warriors/encyclopedia.json | History and analysis behind the encyclopedia page. The line-by-line breakdown comes from each warrior's own comments. |
scripts/pmars-compare.js | Differential test against a pMARS binary (npm run compare). |
src/engine/topology.js | Battlefield shapes: addressing, distance and placement (the classic ring today; the seam for 3D). |
src/engine/species.js | Behaviour measurement for the species map, the evolver's archive and . |
The core holds 8000 instructions by default. Each warrior has a queue of processes; warriors alternate, running one instruction from the front of their queue each turn. DAT (or dividing by zero) kills the process that runs it, and SPL adds a process. A round ends when one warrior is left, or as a tie after 80,000 cycles.
The engine implements the ICWS'94 opcode set (DAT MOV ADD SUB MUL DIV MOD JMP JMZ JMN DJN SPL SLT SEQ/CMP SNE NOP), all eight addressing modes (# $ * @ { < } >) and all seven modifiers (.A .B .AB .BA .F .X .I) with the standard defaults. It also supports P-space (LDP/STP), FOR/ROF macro loops, pMARS expression registers and ;assert, enough for 34 of the 35 Hall of Fame originals to load unchanged. Read/write limits and PIN are not implemented.
Tested against pMARS, the reference simulator: identical assembly for 53 warriors and identical results for 2,550 fixed-position rounds and 142 multi-round matches, including P-space. The CLI accepts pMARS's command-line options and uses the same placement for two-warrior matches, so those can be replayed in pMARS exactly. See COMPLIANCE.md to rerun the comparison (npm run compare -- --pmars path/to/pmars).
As a further check, a round robin of those 34 originals ranks the modern hill champions (Tolypeutes, Myrmidon, Son of Vain, Azathoth, Arvon) at the top and the 1984 classics at the bottom.
| Language | Arena | CLI |
|---|---|---|
Redcode (.red) | yes | yes |
JavaScript (.js) | yes | yes |
Python (.py) | yes, through Pyodide (about 10 MB, downloaded on first use) | yes, with local python |
C++ (.cpp) | no | yes, with g++ or clang++ |
The evolver and push-off are built from published methods (MAP-Elites, CVT-MAP-Elites, lexicase and epsilon-lexicase selection, Digital Red Queen, AlphaStar's league, Astolfi's diversity hills and the SD-score). docs/references.md lists each with its authors and a link. Core War's own history is credited on the history page.
Contributions are welcome: sign your commits with git commit -s (Developer Certificate of Origin). See CONTRIBUTING.md.
zorewars speciesweb/ladder.js | The arena's Ladder and Species map cards. |
web/avatar-model.js | What the Avatars views show (bodies, damage, captives, conversion, hits), read from the VM; tested in test/avatar-model.test.js. |
web/avatars3d.js, web/avatars.js | The Avatars view in WebGL (three.js, bundled in web/vendor/three.js by npm run build:three), and its flat canvas fallback. |
src/engine/geometry.js | Torus geometry: numbers as points, per-axis arithmetic (the plane and, later, 3D). |
scripts/plane-reference.js, scripts/plane-fuzz.js | An independent interpreter for torus battlefields and the differential fuzzer that checks the VM against it (npm run fuzz). |
src/engine/convert.js | The Redcode → JavaScript / Python converter, with verification. |
scripts/convert-library.js | Regenerates and verifies warriors/javascript/ and warriors/python/. |
scripts/benchmark.js | Round robin of the library; writes warriors/benchmarks.json (npm run bench). |
examples/ | Example warriors in each language. |
test/ | Engine, converter and tool tests: npm test. |