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
작은 강아지와 넓은 뒷마당, 매 게임마다 새로 생성되는 5가지 플랫폼 어드벤처와 더블 점프·숨은 뼈·안식처
A little dog. A big backyard. Five platforming adventures, freshly generated for every game, with double jumps, hidden bones, and a place to call home.
게임JavaScript · CSSGitHub @jonbiro온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Puppy Quest 1989 — a neon Canvas platformer with procedural levels, expressive movement, and touch controls.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Meet Biscuit: a brave little golden dog with a red scarf and five handcrafted trails to explore. Reach the doghouse to finish each trail. Bones are optional; elevated routes reward exploration. Hop on beetles, duck under vines, and ride the moving platforms. Checkpoint flags save your place, and retries are unlimited.README 전문 보기 ↗Meet Biscuit: a brave little golden dog with a red scarf and five handcrafted trails to explore. Reach the doghouse to finish each trail. Bones are optional; elevated routes reward exploration. Hop on beetles, duck under vines, and ride the moving platforms. Checkpoint flags save your place, and retries are unlimited.
The runner now explores six visual destinations within its three mastery regions, plus a snowy Frostpeak downhill chapter: Sunleaf Woods, Bamboo Sanctuary, Redrock Pass, Palm Oasis, Crystal Reach, and Mooncap Grove. Rounded 3D bones, articulated dogs, sculpted ridgelines, flowing river highlights, and a portrait-first expedition interface keep the trail readable. Each destination also has a distinct rhythm—roots and canopy, bamboo zigzags, broken ridges, oasis stepping stones, crystal slaloms, or low moonlit canopy—with its own safe-lane cadence and pickup emphasis. Area changes preserve existing seeds, upgrades, and passport progress.
Run challenges: Complete a distance, bone-collection, or clean-clear goal in one run to earn additional upgrade points. Goals rotate and grow after each completion. Rewards are credited once when the run ends. A compact strip above the controls shows one useful item at a time: an action cue, route choice, important notice or unfinished goal. No center-screen banners or repeated run tutorials. Every ten consecutive bones grants +100 points; each successful jump/slide over an obstacle grants +20 points. A last-second lane dodge earns a small near-miss bonus and a warm spark, so brave steering is rewarded even when there is no jump or slide to clear.
The run HUD now keeps a small clean flow meter alongside the bone streak. It appears after two clean moves and counts turns, obstacle clears and course weaves toward the next +50, +100, +150 or +200 bonus, so the reward loop is visible without interrupting play.
Movement uses interpolated rendering, momentum-aware lane changes, smooth camera follow and accelerated airborne dives. A jump pressed just before landing is buffered for the next takeoff; diving preserves the full ground-slide duration. Velocity-driven leaning and a brief landing compression add weight without changing obstacle clearance. Decorative weight effects respect reduced-motion mode. Magnet bones curve toward Mochi from all three lanes within 16 meters ahead; points are credited on arrival, once per bone. Already-attracted bones finish their trip if the magnet expires. Magnetic field rings, pickup halos, collection sparkles, and timer bars make power-up states visible.
Jumps return to the ground in 0.72 seconds at every upgrade level; Spring paws adds 10% height per level instead of longer airtime. Standard slides last 0.58 seconds, rising to 0.86 seconds at the fourth level. Action hints anticipate the puppy's physical lane and disappear when the current move already covers the obstacle. Touch input uses a simple rule: one swipe equals one move. Pause briefly before another same-direction drag if you keep your finger down; lifting is always okay. Natural thumb diagonals, reversals and cross-axis moves remain supported, while overlong swipes are bounded so one stroke cannot skip across the trail.
A separate mobile-first endless runner through jungle ruins, a sunlit canyon and a moonlit crystal glade. Puppy Quest is still available unchanged at the main address.
Choose Biscuit, Mochi, Pepper or Luna in Puppies & outfits. Six visible outfits include an explorer hat/backpack, superhero cape, raincoat and prize-only crown/party hat. Puppies and outfits are cosmetic; upgrades work with every puppy.
Mochi has a dedicated, photo-inspired model: soft silver-and-charcoal curls, long dark ears, warm brown eyes and a cream beard, eyebrows and paws. The animated coat is generated locally; no reference photograph is included or downloaded.
Earn four permanent prizes by reaching distance and bone goals or banking presents. The prize cabinet shows exact progress. The crown unlocks at 1,000 meters in one run; three banked gifts unlock the party hat. No reward is granted twice.
Cross wooden bridges, jump broken trail sections, and choose gentler Scenic or tougher Challenge sections. Challenge clears pay 60 points. Jump into a turquoise Sky Paws handle to ride a 140-meter zipline, steer for airborne bones and land for a 250-point bonus. Longer current trails also open into a deliberate Frostpeak ski descent: carve lanes, hop moguls and rolling snowballs, dodge blue ice, crossing yetis and snowmen, follow open gates, and finish for +360 points.
Regional courses now play differently: Root scramble alternates jumps and ducks, Canyon crossings links two gap jumps with a log, and Crystal slalom rewards left/right/center lane changes around crystal clusters. Follow all three beats for +180 points, then collect the gift in a clear recovery stretch. At most one course appears per region visit, away from marked corners, route decisions and ziplines; Scenic excludes them. Ordinary jump/slide timing is unchanged.
Destination rhythms add a lighter layer between courses: Sunleaf favors roots and canopy, Bamboo shifts safe lanes in a zigzag, Redrock and Oasis mix stone-and-log beats, Crystal leans into slalom spacing, and Mooncap alternates low canopy cues. Full-width action beats keep one familiar jump/slide language so delayed mobile inputs remain fair.
Frostpeak is a dedicated downhill rhythm layered into the regular trail chapters. Skiing increases pace for a short, focused burst, uses a forgiving hop instead of a long jump, and places bright bone ribbons, a magnet, and a finish gift on the open line. Rolling snowballs are hop-able, yetis patrol across lanes, and snowmen mark the carve-around lane. Blue ice and ski gates are explained by the action cue and colored flags; slide returns when the descent ends.
The on-screen buttons are the simplest touch controls: tap LEFT or RIGHT for one lane, JUMP for logs and gaps, and SLIDE under arches. One swipe equals one move. To keep your finger down, stop your thumb briefly, then drag again; lifting is always okay. Quick over-swipes stop at one lane and oversized browser samples are rebased so one stroke cannot skip across the trail. A clear swipe can switch between steering and jump/slide without lifting. On touch screens, tapping a left or right edge is a one-lane fallback and a center tap jumps. Swipe up to jump logs and down to slide under arches.
Requires WebGL2. If 3D is unavailable, the page explains the requirement and links back to Puppy Quest. No accounts, real-money purchases, analytics, or remote artwork/font requests.
Click Let’s go outside or press Enter with the start button focused.
Hop on beetles from above. Each trail awards one star for reaching home, one for finding at least 65% of bones, and one for finishing without retries. Best times and star counts are saved locally in this browser. No account is needed.
Runner ability: Fetch charges from hand-collected bones (+2%), clean obstacle clears (+12%) and correct marked turns (+20%). At 100%, tap the Fetch button or press F for four seconds of magnet collection. Charge stays banked until used, cannot be spent over another magnet, and resets on retry. The burst does not recharge itself. It collects aerial bones only while riding a zipline.
The clubhouse Trail passport tracks 21 permanent collectibles: three bond milestones for each of four dogs (10/40/100 clean clears plus correct turns), and bronze/silver/gold stamps for each region (3/10/25 clean regional courses). Progress banks at run end; each milestone awards upgrade points once. Old saves retain their existing progress and begin this new tracking at zero; no historical mastery is invented. No daily resets, new currency, or dog-specific stat advantage.
After 800 meters, some ordinary and Challenge action rows become split decisions: one lane has an overhead gate, the other two have jumpable logs. Choose a lane and use the matching move; the quiet action cue follows your approach. Scenic excludes these rows. Existing action-row recovery spacing, gap rows, course sequences and protected turn/zipline approaches are preserved.
Requires Node.js 20.19+ and npm.
npm ci
npm run check
npm start
Open http://127.0.0.1:3000. Run npm run build again after changes; the server serves the static dist directory. The game uses native ES modules and must be served over HTTP.
src/rebuild/world.js: handcrafted course data and deterministic fixed-step physics.src/rebuild/render.js: original Canvas artwork, puppy animation, scenery, and camera.src/rebuild/app.js: input, audio, UI states, progression, and persistence.index.html, css.css: responsive game shell and accessible HTML controls.test/rebuild.test.js: movement, checkpoints, completion, and collision regression checks.src/runner/world.js: seeded endless-track generation and fixed-step runner simulation.src/runner/render.js: original articulated 3D dog, instanced scenery, and recycled obstacle meshes.src/runner/turns.js, route.js, terrain.js: shared corner schedule/input windows, cached world-space centerline, and bounded hill profiles.src/runner/app.js, src/runner/ui.css, runner/index.html: runner controls, states, saved records, and mobile interface.test/runner.test.js: route fairness, bounded object counts, movement, power-ups, collision, and a two-minute survival simulation.Both simulations advance at 120 Hz independently of display refresh rate. Audio is generated locally and enabled by a user gesture. No external fonts or artwork are requested. Puppy Run uses Three.js bundled locally by esbuild; the original game does not load this bundle. The retired neon engine remains recoverable through Git history. Three.js attribution is retained in the generated bundle's linked legal notices, with its full MIT license in runner/THREE-LICENSE.txt in the built output.
npm run check builds, verifies the distribution, runs ESLint, and executes the simulation tests. GitHub Actions deploys master to GitHub Pages. Browser testing should cover startup, movement, double jump, death/retry, pause, completion, and a mobile viewport. The local device QA harness defaults to the smallest supported iPhone SE portrait viewport (375×667 CSS pixels) so tight wrapping and control collisions are caught first. Canvas gameplay remains a primarily visual experience; HTML menus support keyboard navigation and important events are announced through a live region.
MIT license. Copyright © 2026 Jonathan Biro. See LICENSE, CONTRIBUTING.md, and SECURITY.md.
Arrow keys or WASD do the same on desktop; Space jumps and Escape pauses. On-screen buttons support touch and keyboard activation.
The trail has real 90° corners, gentle climbs and descents. At lime chevron signs, swipe in the displayed direction during the turn cue; one swipe commits the corner for +100 points. A wrong swipe can be corrected before the corner. Missing it costs one heart (or a shield) and recovers safely. Swipes switch lanes between marked turns; ordinary winding bends remain automatic. Turn approaches and recovery stretches stay free of hazards.
The finish screen shows clean turns, obstacle clears and best bone streak, with a brief tip explaining the final mistake. Retry remains one tap away.
Jump logs and low stone blocks; slide under arches, branches, and gates. Most rows leave an open lane, but occasional full-width log/gate rows demand a jump/slide. Bone trails can lead into hazards, so they are no longer a safe-lane guide.
Three hearts per run. A shield absorbs one hit; collecting another while protected awards 100 points instead of stacking protection. Magnets collect nearby bones for ten seconds.
Purple gems award 250 points; gold tokens double bone points for ten seconds; pink hearts restore one heart (up to three), or award 100 points at full health. Magnets and shields still appear along the trail.
Tennis balls trigger six seconds of Zoomies: faster running, protected obstacle smashes and automatic gap jumps. Presents give 100 points and count toward the party outfit when the run ends.
Score is distance in meters plus bone points and treasure bonuses. Bones start at 25 points. Completed runs bank their full score as upgrade points; spend them in Paw upgrades at camp. Four permanent upgrades improve jump lift, slide duration, magnet duration, and bone value. Each has four levels costing 500, 1,000, 1,800, and 3,000 points. Purchases apply to the next run and save in this browser. No real money is involved.
Personal best, lifetime bones, points, and upgrades save locally after completed runs or purchases. Existing records are preserved; upgrade points begin accruing with this update. Leaving an unfinished run does not bank its bones or score.
The pace starts at 20 meters/second and reaches 36 at full stride, with earlier hazards, more two-lane blockages, and denser ordinary rows. Full-width action rows have extra space afterward for recovery. Backgrounding the page pauses the run. Sound is opt-in; reduced-motion mode removes decorative movement, though running remains a visual motion-based game.