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,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Learning and testing resource for students of Quantum Computing in WebGL
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗[!IMPORTANT] The lectures are your primary learning resource. This game is only a supplement and is likely to contain errors — please verify everything you learn in it against the lecture materials.
Double-click index.html (Chrome, Edge or Firefox). No server, build or install is needed — WebGL2 (OpenGL ES 3.0) with no libraries.
Progress, settings, the Codex and the Journal are saved in the browser (localStorage), so after a reload the game continues exactly where you left off; for a few seconds a 🗑 Start over button is offered as well.
On the first start (and after a reset) a two-step welcome screen appears:
Defaults: Normal difficulty, historic scrolls on, dialogue on, all levels unlocked. The gameplay style (Selection menu / Classic / Nordic / MMO) is not offered on the welcome screen — it starts as the Selection menu and can be changed in the settings (⚙).
Everything can be changed later in the settings (⚙).
| Welcome screen — gameplay style, difficulty, history, equations, levels | 🔑 Key — glyph dictionary first, mnemonic rules second |
| Nordic style — snowy island and the dragon's peak | MMO style — spells, quests, a vendor and dungeons |
| MMO dungeon — the level boss loses health with every step and correct answer | Hall of Symbols — 17 animated 3D exhibits of the equation symbols |
You play Little Psi, the quantum state ψ — not a little ball with a position, but a rule for predictions. Your guide Spark (✨ a spark of light, deliberately unlike any amplitude symbol) waits in the middle of Hilbert Island. All portals stand in one ring around the centre; behind each one a mentor teaches one topic of lectures 1–3 through small experiments, dialogues and quizzes. Every level ends with language traps — a quiz about correct wording, because many mistakes in quantum physics are made with words, not with calculations.
Real machines next to the Bloch sphere. The Bloch sphere is only a picture of the state, not a device, so the levels also show the hardware where the same qubit actually lives, with its axes lined up with the sphere:
They can be switched off in the settings (⚙ → 🔬 real machine).
Correct answers snap into place: once an input is accepted (an arrow on its target, a π pulse, the optimal CHSH angles…), the slider and the 3D picture glide exactly onto the correct value.
Finishing a level should mean you have learned it, not just clicked through it (docs/LEARNER_EXPERIENCE.md explains the reasoning; the code is in js/learn.js):
node tools/build-lang.js checks that the correct option is not the conspicuously longest one in more than 35 % of the questions in any language.| Style | |
|---|---|
| Classic (default) | the original blue grid island with 8 portals — nothing distracts from the physics, runs on weaker computers |
| 🐉 Nordic | a snowy island with pines and standing stones, Nordic lettering and detailed procedural textures; every mentor teaches a Word of Power and level 9 is a turn-based battle with the quantum dragon Ketvarr |
| ⚔ MMO | plays like an online RPG: a quantum mage with levels, a spell bar (X and H gates, the Born blade = measurement…), classical misconceptions as neutral enemies whose shields are qubits, quests, a vendor (Max Planck), bags and loot; levels are dungeons with bosses, and the dragon is a raid |
Can be changed at any time from the selector in the top-right corner — the open dialogue, quiz and task text update immediately.
Layman and Easy skip the fill-in quizzes entirely.
The fill-in quizzes cover every expression from the lecture PDFs and blackboards (about 300, lectures 1–5). Each quiz shows where its relation comes from (📄 L4, L1 · board) so you can check it in the lecture. After a task at most 2 (Normal) or 3 (Hard) are asked, picked in this order:
Relations that the game does not show at work (differential equations, series, Hermite polynomials, continuous bases, relativistic equations, algorithms…) are not asked after tasks. All of them, grouped by lecture, are in Codex → 📄 Lecture drill — ungraded practice.
📜 Historic scrolls (on by default): before level steps a scroll unrolls with the history of the discoveries — years, authors, their conversations and famous words — and every level ends with one history question. Collected scrolls stay in the Codex.
💬 Dialogue (on by default) or ⏭ Skip all dialogue — skipping leaves only the tasks, quizzes, equation cards and scrolls; conversations are still written to the Journal (L).
Unlock everything (default — all portals open right away) or Step by step (the next portal opens after the previous level). Unlocking and resetting are also available at the bottom of the help (H) and settings (⚙) panels.
In the Equation Language every symbol becomes an SVG glyph that carries its meaning: colour = who it is, a pictogram behind the letter = what it does, and the frame shape = what kind of object it is. Hover a glyph for its name, a memory phrase and the pictogram on its own; the 🔑 key (top right, key K) holds the full glyph dictionary and the mnemonic rules. The files below are exported from the game (docs/glyphs/).
| Glyph | Meaning | Memory phrase |
|---|---|---|
| α, β | amplitudes of |0⟩ (blue) and |1⟩ (red) | Alpha points Above, Beta goes Below |
| |ψ⟩, |0⟩, |1⟩ | kets — states; the frame ⟩ points forward | the tick shows the pole |
| ⟨a| | bra — a question; the mirrored frame | ⟨a|ψ⟩ is one number |
| θ, φ, γ | tilt (pink), relative phase (green), global phase (gold) | Tilt from the Top, the Fan's turn, the Gold Gear |
| H, X, … | operators — 3D boxes acting to the right | X marks the flip, H = Halfway swap |
| P, |α|² | probability — a white pillar; the frame freezes the phase | frame it and freeze it |
| # | Level | Mentor | Topic |
|---|---|---|---|
| 0 | Hall of Symbols (Equation Language only) | Spark | what every symbol in the equations means |
| 1 | Complex Harbour | Leonhard Euler | amplitude as a clock hand, phase, i² = −1, interference |
| 2 | Stern–Gerlach Furnace | Otto Stern & Walther Gerlach | two spots, ±ħ/2, sequential measurements Z → X → Z, cos²(θ/2) |
| 3 | Bloch Observatory | Felix Bloch | gates X, Y, Z, H, S, T as rotations, relative vs. global phase, measurement, geometry lab |
| 4 | Temple of Interference | Richard Feynman | H·H vs. H·measurement·H, density matrix ρ, coherences, decoherence |
| 5 | Dirac's Library | Paul Dirac | bra-ket grammar: state, question, number, operator, probability |
| 6 | Rabi's Resonator (NMR) | I. I. Rabi | precession, rotating frame, π and π/2 pulses, resonance, T₂ |
| 7 | Bell's Bridge | John Bell | Bell state, reduced states, no-signalling, the CHSH game |
| 8 | Hall of Interpretations | Niels Bohr (+ Kant, Wittgenstein, Stodola, Bohm, Heisenberg, Noether) | collapse, complementarity, interpretations |
| 9 | Pauli's Rotation Workshop (lecture 4) | Wolfgang Pauli | θ, φ as coordinates, rotations Rn(ϑ) = exp(−iϑ n·σ/2), measurement as the direction of a question (φ = atan2(ry, rx)), unitary vs. decoherence, Bell state limits |
| 10 | Von Neumann's Purity Refinery (lecture 5) | John von Neumann | ρ′ = UρU† keeps |r|, purification by measurement or cooling, NMR pseudo-pure state (r = εn), ⟨A⟩ = Tr(ρA), time evolution e−iHt/ħ |
| 11 | Born's Readout Hall (lecture 5) | Max Born | phase → interference → probability, mid-circuit measurement, measure → decide → continue, Bell state vs. classical mixture, decoherence ≠ readout |
| 12 | NMR Workshop (hands-on, unlocked from the start) | Edward Purcell | tuning the transmitter to ν₀ = γB₀/2π, current pulses in the transverse RF coil (θ = γB₁τ, phase = axis), measurement sequences and the FID, pulse calibration from the signal null, shimming and the spin echo |
Each portal shows a small animated preview of its level, and its tooltip lists the level's tasks. Stars depend on the number of mistakes (fill-in-the-equation mistakes count too); 📖 = done in review mode, 🎓 = all goals mastered. New Codex cards (symbols, people, concepts, scrolls and every task's ∑ equation) unlock as you play.
| Key | Action |
|---|---|
| WASD / arrows | move around the island (Shift = faster) |
| mouse drag, wheel | camera |
| E | enter a portal / talk |
| Enter, Space · ← / Backspace | next / back in a dialogue |
| L | Journal — every conversation, task equation (∑) and quiz explanation; read or replay |
| C | Codex — symbols, people, concepts, scrolls, equations |
| K | 🔑 key — glyph dictionary and mnemonic rules (Equation Language; unavailable during conversations) |
| V | 👁 views — the same state as clock hands, Bloch cuts, bases and the ρ matrix |
| M · H · O · Esc | map (click a portal to travel) · help · settings · close windows |
| 1 – = | spells (MMO style) · B bags · Tab target · Space jump |
| F9 | unlock all levels |
Hover anything (button, symbol, 3D object, underlined term) for a short explanation. Controls that do nothing at the moment (e.g. spells or panel buttons while a dialogue is open) are shown greyed out.
The game is in Slovak, English and Ukrainian. Without a saved choice, Czech and Slovak browsers get SK, browsers with Ukrainian, Russian or Belarusian among their languages get UA, and everyone else EN. Switch with the selector in the top-right corner or on the welcome screen.
All dialogue text — conversations, quizzes, language traps, "in plain words" cards, theory, scrolls and quests — lives in lang/sk.csv, lang/en.csv and lang/uk.csv (columns key,text; a missing translation falls back to English). The code reads them with DL('key', values…).
[[P = |α|²]] inside a sentence becomes an inline chip, [[…]] on a line of its own becomes an equation block. Matrices are written [0, 1; 1, 0] so they don't clash with the brackets.{0}, {1} … are values filled in by the game (counts, percentages, names); a translation may move them.node tools/build-lang.js. It regenerates lang/*.js (browsers refuse to read CSV files when the game is opened from disk) and checks the [[ ]] brackets and {n} placeholders. When served over http(s) the game reads the CSV files directly.tr('slovensky', 'English', 'українською').| Path | Contents |
|---|---|
index.html, style.css | page, help, themes, welcome screen |
js/main.js | game loop, island (hub), portals, base Level class, saving |
js/levels/*.js | levels 0–13; registry.js sets their order |
js/eqblanks.js | ∑ fill-in-the-equation items for every level step (correct option first), the lecture-only set for the 📄 Lecture drill |
js/learn.js | learning: level goals, transfer-question generators, spaced review (Leitner boxes), second chance, confidence, step-by-step hints, before/after tests, progress export |
js/ui.js | dialogues, quizzes, Journal, Codex, settings, tooltips |
js/gl.js · js/math.js · js/quantum.js | WebGL2 renderer and procedural meshes · vectors, matrices, complex numbers · 1- and 2-qubit simulator |
js/eqglyphs.js · js/eqmnemo.js | SVG equation glyphs and [[…]] rendering · live equation and the 🔑 key |
js/i18n.js · lang/ · tools/build-lang.js | language choice, tr() and DL() · dialogue CSV files · CSV → JS generator and checker |
js/knowledge.js · js/content.js · js/scrolls.js · js/layman.js | theory and equations · Codex and language traps · historic scrolls · layman cards and glossary |
js/machine.js | 3D models of the real machines next to the Bloch sphere (NMR processor, Mach–Zehnder interferometer, entangled-photon source) |
js/views.js · js/tips.js · js/audio.js · js/wow.js · js/welcome.js · js/settings.js | 👁 views · tooltips · generative music and sound effects · MMO style · welcome screen · settings |
assets/ · docs/ | icons, theme pictures · README screenshots and exported glyph SVGs |
MIT © 2026 Ondrej Špánik
Built from the commit history (newest first).
tools/build-lang.js checks it732fa4f Easy is the default difficulty and Equation Language the default game type; task equations in the Codex; fixed the selection border of the game-type cards; temporary "Start over" button when continuing a gameef294fa Unlock all levels and Reset game at the bottom of the settings as well039a4b7 Welcome-screen notice: the lectures are the primary learning resource8abfe1c Task equations in the Journal in both game types; two-slide welcome screen with an "Unlock everything" choice422fc9a Updates93b1c02 History (historic scrolls) separate from difficulty; welcome screen updatea099a7f Improvementsc40f099 Correct inputs snap into the exact statec81f684 Updated welcome-screen visuals for the game typebc51d08 Renamed the game types; dialogue adjustments4868b79 Adjusted the glyph and key approach6da6dc7 Improvements to the mnemonic version835ad3b Improved equation backgrounds and coloursaca7afd Bigger equation display with mnemonicscfa7fa5 More equation mnemonicsb0bb51b Live equationsf0ce1d6 Ukrainian translationf557568 Welcome setup wizarddc72d04 Fast-changing numbers are easier to read3e9b5e6 Larger panel text7f18729 "Ask Google AI" button in dialoguesfccb2c0 Removed dialogue keysbb20ed8 Custom cursor, hidden while rotating the camera75a8efb MMO-style gameplay8848080 Music volume off is truly silent (reverb routed through the volume); quieter 15 % default2d3f005 Theme selector: Classic (8 levels) and Nordic (Skyrim look + dragon level 9); music and sound effects in bothc756187 Music, sound effects, better textures depending on computer performanceb67baed Nordic (Skyrim-style) lookd3ddc94 Teleport mid-dialogue; Layman as the default difficultycfe7805 Hotfix: labels per difficulty| 13 | Dragon's Peak (Nordic and MMO styles) | Erwin Schrödinger | turn-based battle: the dragon's ward is a qubit, a strike is a measurement with P = ½(1 + r·n) |
9795bdb41a41cd Glyph tooltips show the pictogram separatelycd46e7e Dialogue moved to CSV translation files with generated JS88a22be4387991 WASD hint and teleport through the mapd535264 Banner, favicon and metadata425fe1c Update55bc677 Difficulty updates; "ancient" difficulty with scrolls of knowledge2b968b3 Difficulties, localStorage save, reset button830d16e Slovak and English (i18n); unlock the whole game from the help section4c941e1 v1: lectures 1–3 as a game world