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
Pixel reasoning game for Solana Seeker and the web.
GamesC# · TypeScriptGitHub @mewokuOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Solve to strike 👾
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Odlet (odlet.xyz) is a pixel-art reasoning game for Android / Solana Seeker and the browser. Walk an adventure map of voxel monsters you defeat with puzzles, play the three-trial DAILY (Pattern → Shadow → Link), raid weekly bosses, and collect MagicaVoxel-style voxel figures — bought with shards or devnet SOL and minted as Metaplex Core NFTs.Read the full README ↗Odlet (odlet.xyz) is a pixel-art reasoning game for Android / Solana Seeker and the browser. Walk an adventure map of voxel monsters you defeat with puzzles, play the three-trial DAILY (Pattern → Shadow → Link), raid weekly bosses, and collect MagicaVoxel-style voxel figures — bought with shards or devnet SOL and minted as Metaplex Core NFTs.
packages/core, a bit-for-bit TypeScript port of the C# domain (puzzles, figures, levels, shop, bosses).web/, Next.js site with the WebGL game, marketplace, leaderboards, friends and devnet SOL purchases.Status, verification and open items: docs/STATE.md. Architecture and contracts: docs/PLAN_V2.md. Risks: docs/RISKS.md.
Requirements: Unity 6000.6.5f1 with Android + WebGL modules, Node 24, pnpm 9, Docker Desktop.
pnpm install
pnpm build:core # web consumes @ronriku/core from dist/
# Backend (local)
cd backend
npx supabase start
npx supabase db reset
pnpm publish:content # answer keys, shop shelf, bosses — required after every reset
cd ..
# Website
cp web/.env.example web/.env.local # fill from `npx supabase status -o env` (in backend/)
pnpm --filter web create-mint-authority # server mint authority (needs no SOL) + payment recipient into web/.env.local
Unity (open client/):
web/public/unity/ (git-ignored).Builds/Android/ODLET.apk. Set RONRIKU_KEYSTORE, RONRIKU_KEYSTORE_PASS, RONRIKU_KEY_ALIAS, RONRIKU_KEY_PASS for a store-signed build; otherwise it is debug-signed.pnpm --filter web build && pnpm --filter web start # http://localhost:3000, game at /play
On a phone, adb reverse tcp:54321 tcp:54321 lets the APK reach the local backend.
Self-hosting (Docker: Next.js + Caddy + Supabase on one origin, local or a VPS): deploy/README.md.
SOL payments go to NEXT_PUBLIC_PAYMENT_RECIPIENT. Each purchase is one transaction the server prepares and partially signs (payment + memo + Metaplex Core mint); the buyer's wallet signs, pays all fees and rent, and sends it. pnpm --filter web devnet-dry-run exercises this on devnet.
pnpm test:core # 352 fixture tests vs C# exports
(cd backend && pnpm test && npx supabase test db) # integration + pgTAP
pnpm --filter web test # web unit tests
Unity (editor open, via the Unity CLI): unity command run_tests --mode EditMode; PlayMode categories Uncategorized, Online (needs local backend) and Capture (writes docs/evidence/).
Code: MIT (see LICENSE). Fonts: SIL OFL 1.1. Third-party notices: THIRD_PARTY_NOTICES.md.