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,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Moksha Patam: the old Indian game of snakes and ladders, in the browser
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗The old Indian game of snakes and ladders, played as one life, in English and Hindi, in a single HTML file. Every square tells part of a story from the Panchatantra or the Upanishads, in the order a life would meet them.
Play: https://codebpr.com/moksha-patam/ (add ?lang=hi to open in Hindi)
| Squares | Stage | Stories from |
|---|---|---|
| 1–20 | Childhood | Panchatantra fables |
| 21–40 | Brahmacharya (student) | Taittiriya, Chandogya, Katha, Mundaka; Aruni from the Mahabharata |
| 41–60 | Grihastha (householder) | Brihadaranyaka, Isha, Taittiriya, Mahabharata |
| 61–80 | Vanaprastha (forest-dweller) | Brihadaranyaka, Kena, Chandogya |
| 81–100 | Sannyasa (renunciate) | Mundaka, Mandukya, the four Mahavakyas |
| 101–110 | Divine realms, with Moksha at 105 partway along them | Bhagavad Gita 9.21 on the fall past 110 |
Nothing on squares 1–5. A newborn can't climb by virtue or fall by vice.
Childhood vices are small slips (chatter, fibbing, laziness) with short falls. Adult enemies like anger, craving and greed only appear in the householder years. Ahankara (ego) waits at 99 and is the longest fall of all.
Ladders are biggest in the middle of life (truth, resolve, giving, duty) and short near the end. No ladder reaches heaven, so the divine row is reached on foot.
Moksha is an exit, not a summit. It sits at 105, partway along the divine row, as Vaikuṇṭha sat a few steps before the end of the old boards. Landing exactly on it is liberation. Passing it carries you into the higher heavens (Lakshmi, Saraswati, Brahma, Vishnu, Shiva), which are still the wheel.
Heaven runs out. Nothing above Moksha turns back. A player who passes 105 walks the heavens, 106 to 110, and the throw that would carry them past 110 is the fall: the merit is spent and the life ends there: kṣīṇe puṇye martya-lokaṃ viśanti, when merit is spent you return to the world of mortals (Gītā 9.21), and every world up to Brahma's returns (8.16). Most of the surviving rules texts send the overreacher back to the world in the same way. Shiva's card at 110 shows the fall after his own.
No exact roll, and a way back down. A roll that would pass 110 walks up to it and back down by the remainder, so no roll is ever wasted. It is also how you reach the exit again once you have overshot it: from 110 a 5 comes back down onto Moksha, and so does a 6 from 109.
Fall, then the remedy: five snakes drop you one square before the ladder of the virtue that heals them:
The tail's card says the ladder is one step above.
14 snakes to 11 ladders, on purpose. The documented historical boards are balanced or ladder-heavy: the Jaina board 15 ladders to 9 snakes, the Vaiṣṇava board 10 to 10, the Mughal board 17 to 13 (docs/BOARDCRAFT.md). The popular claim that snakes outnumbered ladders two to one is folklore. This board is more punishing than any of them as a deliberate thesis, that the good path is the harder one, not as a restoration.
| Ladder | Virtue | Story |
|---|---|---|
| 6→15 | Maitri · Friendship | Crow, mouse, tortoise and deer (Panchatantra) |
| 12→24 | Buddhi · Wit | The lion and the clever hare (Panchatantra) |
| 23→37 | Guru-bhakti | Aruni holds back the flood (Mahabharata) |
| 28→45 | Satya · Truth | Satyakama Jabala (Chandogya 4.4) |
| 34→53 | Shraddha · Resolve | Nachiketa at Death's door (Katha) |
| 44→63 | Dana · Giving | "Datta" from the thunder (Brihadaranyaka 5.2) |
| 51→67 | Daya · Compassion | "Dayadhvam" from the thunder (Brihadaranyaka 5.2) |
| 57→75 | Dharma · Duty | King Janaka |
| 65→83 | Vairagya · Detachment | Maitreyi's question (Brihadaranyaka 2.4) |
| 72→89 | Tapas · Austerity | Bhrigu and Varuna (Taittiriya 3) |
| 85→94 | Viveka · Discernment | Two birds on one tree (Mundaka 3.1.1) |
| Snake | Vice | Story |
|---|---|---|
| 14→8 | Vachalata · Chatter | The tortoise and the geese |
| 19→11 | Asatya · Fibbing | The blue jackal |
| 29→17 | Alasya · Laziness | Subhashita |
| 39→22 | Vidya-mada · Pride of learning | The lion-makers |
| 47→31 | Kama · Craving | Yayati |
| 55→43 | Lobha · Greed | The greedy jackal and the bowstring |
| 59→50 | Krodha · Anger | The brahmin and the mongoose |
| 62→46 | Moha · Attachment | Dhritarashtra |
| 69→52 | Matsarya · Envy | Duryodhana at Indraprastha |
| 77→58 | Mada · Pride | The gods and the Yaksha (Kena 3) |
| 88→71 | Dambha · Hypocrisy | The cat who played ascetic |
| 93→64 | Asakti · Clinging | Jada Bharata and the fawn (Bhagavata 5.8) |
| 99→61 | Ahankara · Ego | Virochana and the reflection (Chandogya 8.8) |
| past 110 | Kshina-punya · Merit spent | The fall, which ends the life: when merit is spent, back down into the world (Gita 9.21) |
A 20,000-game simulation (npm run sim) puts a single life at a median of 28 turns, with one game in twenty taking 49 or more and none over 100. About half of lives reach Moksha (47.6%); nearly all the rest pass it and fall from the heavens (49.2%), and a few run out of years (3.2%). The distribution has a long tail, so the sim reports the median and the 95th percentile rather than the mean.
#sq/36 opens square 36.#codex/nyaya.To play locally, open index.html. Add ?seed=N to replay the same dice (the current seed is shown under Players & rules). ?depth=scholar sets the reading depth. Add ?debug to get console helpers: mp.jump(n), mp.roll(v), mp.seed() / mp.seed(n), mp.open(n), mp.entry(id), mp.close(), mp.setLang("hi"), mp.age() (the lens the board is aged through), mp.audio(), mp.quality("low"), mp.sheet() (the card's state: its sheet height, whether it is opened further, whether it was rolled from) and mp.rollFromCard(v).
index.html is built, so don't edit it by hand. The sources are:
src/: the game as ES modules (engine/ holds the rules, render/ the drawing, and rng.js the only randomness)content/*.json: the squares and stories (squares.json), the school lines and scholar notes for each square (readings.json), the Codex (codex.json), the UI strings (strings.json), and the names a lead line can carry (names.json, for the lint)assets/sprites.svg: one Basohli symbol per square and a seal per school, inlined by the build (delete it and the board shows emoji)src/sw.js, manifest.webmanifest, icons/: the installable app (node tools/icons.mjs redraws the icons)src/styles.css and src/index.html: the page shellnpm install
npm run build # inline src/ and content/ into index.html (refuses any Math.random outside rng.js)
npm test # rules, RNG and content tests (the build also refuses content missing Hindi or pointing nowhere)
npm run lint # the content lint alone: Hindi, two voices per square, a name in every lead, the sprite palette
npm run smoke # every phase's behaviour in a real browser, including offline, install, the emoji fallback and the drone
npm run perf # frame times of a walk, a climb and a swallow on a throttled phone-sized page (reports, never fails)
npm run sim # 20,000 headless lives; `node tools/sim.mjs 20000 2` for two-player races
npm run golden # replays seeds through the pre-split game, the build and the sim, and checks the logs match
Commit the rebuilt index.html with your changes. GitHub Pages serves it straight from main. See REDESIGN.md for the phased plan.
?quality=low to force it).