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
Answer 10 correct questions to get your g=kids to school on time
Translation pending
GamesJavaScript · CSSGitHub @jgotti1OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
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
Loading the full README. The saved excerpt is shown below.
A cheerful learning game for ages 5–9, created by MargottiCode — margotticode.com.
Open index.html in a browser. No installation, build step, or backend is required. To play on an iPad or another device, publish this folder to a static web host and open its URL in the browser.Read the full README ↗A cheerful learning game for ages 5–9, created by MargottiCode — margotticode.com — and designed together with my 5-year-old granddaughter, who directed the gameplay and rules as we went.
Open index.html in a browser. No installation, build step, or backend is required. To play on an iPad or another device, publish this folder to a static web host and open its URL in the browser.
Children unload one at a time. The outside group animation lasts four seconds; if the bus is empty, the game skips that group delay. Answers advance automatically after spoken feedback and a short pause. Restart returns to the welcome screen; tap Start to choose an age group for the next trip.
The ages 5–6 bank covers picture words, letter matching, first sounds, counting, number recognition, colors, and shapes. The bank also includes patterns, adding, taking away, rhyming, sorting, comparisons, everyday life, and nature questions. Each trip rotates through the selected bank’s shuffled categories without repeating questions, so large letter banks do not dominate the ride. Tap Listen to hear the current question again.
A soft instrumental Wheels on the Bus melody plays during gameplay. Engine rumble and road noise overlap the music while the bus drives. The Sound button controls music, engine sounds, and speech together. Music and engine audio stop at the ending and mute while the tab is hidden.
Music and engine sounds are synthesized locally using Web Audio, with no audio downloads or recorded vocals. Speech uses the browser’s available voices. Audio support and pronunciation vary by device.
Artwork uses inline SVG, CSS, and emoji. Optional Google Fonts fall back to system fonts offline. There are no accounts, tracking, or stored personal data.
| File | Purpose |
|---|---|
index.html | Screens, controls, and dialogs |
style.css | Responsive visuals and animations |
questions-5-6.js | 315 questions for ages 5–6 |
questions-7-9.js | 315 questions for ages 7–9 |
audio.js | Synthesized melody and driving sounds |
game.js | Scoring, speech, passengers, and game transitions |
AGENTS.md | Project handoff and instructions for future coding sessions |
The game uses two equally sized banks: QUESTIONS_5_6 in questions-5-6.js and QUESTIONS_7_9 in questions-7-9.js, with 315 questions each. The selected bank supplies every question for the current trip, including the opening question. Ages 5–6 add small-number math, animal families and features, plants, and simple science. Ages 7–9 cover reading meaning, grammar, arithmetic, time, US coin values, fractions, geometry, animal and plant science, Earth and space, and experiments.
Add questions directly to the array in the appropriate age file, keeping each ID unique and including ageGroup, type, picture, prompt, three choices, and correct. Both age files load before game.js in index.html. Keep audio.js loaded before game.js.
node --check game.js
node --check questions-5-6.js
node --check questions-7-9.js
node --check audio.js
npx --yes [email protected] --check index.html style.css questions-5-6.js questions-7-9.js game.js audio.js README.md AGENTS.md
Use --write instead of --check to format files. Prettier is only a development tool; it is not needed to play.
Ad hoc Node checks have covered question validity, game progression, both endings, passenger identity, restart, and audio controls using browser mocks. These checks are not committed tests. Real browser rendering, iPad layout, and listening checks still need device verification.
The game is a static site, so any static host works. It is deployed on Vercel (project kids-bus-game) and served at https://busgame.margotticode.com, whose DNS record stays at Bluehost (an A record for busgame pointing to 76.76.21.21). Deploy with npx vercel@latest deploy --prod --scope john-74e3. vercel.json sets the same cache headers as .htaccess.
The block below is machine-readable project info for a portfolio site (invisible on GitHub). Keep it in sync when the project, URL or tech changes. To build a card: read this JSON and use title, tagline/description, thumbnail, tech, and link to liveUrl and repoUrl.