尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Browser RC racing game in the spirit of RC Pro-Am (TypeScript, Vite, Three.js)
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗A browser racing game in the spirit of RC Pro-Am: low-poly RC cars on a track seen from a fixed 3/4 camera. TypeScript + Vite + Three.js, no backend yet.
Play it at racer.folkes.dev, or run it yourself below.
cd client
npm install
npm run dev
The game opens on a title screen with Continue, New season, Records, Settings (sound, volume, reset progress) and How to play. New season asks you to pick a circuit, then a Buggy or a Monster Truck, and everyone on the track drives the same one. All four circuits are open from the start and run four rounds: the Classic Cup (meadow, desert, lakeside, snow); the Space Cup, which races over the Moon (Tranquility Run), Mars (Olympus Rally), Io (Pele Loop) and Europa (Conamara Run), each with its own scenery and weather, and meteors that now and then crash in beside the track and leave craters; the Toybox Cup, round the house at an RC car's scale (Bedroom Floor, Kitchen Dash, Sandbox Scramble, Garage Grand Prix); and the City Cup, raced at night by neon and street light (Neon Downtown, Rooftop Run, and Harbour Docks and Midnight Freeway in the rain). The buggy is quicker and sharper; the truck is a few percent slower and softer to steer, but its big tires shrug off oil and puddles. Easy mode, a switch on the same screen, starts you 2nd (instead of 4th) and makes the opponents a little slower. Reverse, a switch on the circuit screen, drives every track the other way round. Every circuit, vehicle and direction has its own records. Oil and puddles are drawn at random within set stretches of road, so each race has them in different spots.
npm test runs the unit tests (handling, track maths, collisions, race rules, AI, items, season
rules, and full four-car races on every track). npm run build type-checks and builds to client/dist.
Keyboard, gamepad and touch all work, and you can switch between them mid-race.
| Action | Keys |
|---|---|
| Gas / brake and reverse | Up / Down, or W / S |
| Steer | Left / Right, or A / D |
| Handbrake (slide) | Space |
| Use item | X or Shift |
| Reset onto the track | R |
| Restart race | N (or Enter on the results screen) |
| Pause | Esc or P |
| Mute | M (or the speaker button under your race position) |
| Menus | Arrow keys to move, Enter to select |
Any controller with the browser's "standard" layout works, which covers Xbox, PlayStation and most others. It rumbles when you're hit.
| Action | Xbox | PlayStation |
|---|---|---|
| Steer | Left stick or d-pad left / right | Left stick or d-pad left / right |
| Gas | RT or A | R2 or ✕ |
| Brake / reverse | LT or X | L2 or □ |
| Handbrake (slide) | LB or RB | L1 or R1 |
| Use item | B | ○ |
| Reset onto the track | Y | △ |
| Restart race | Back | Share / Create |
| Pause | Start | Options |
| Menus | D-pad or left stick to move, A to select | D-pad or left stick to move, ✕ to select |
On touch screens an on-screen joystick sits under your left thumb (the further you push it, the harder you steer), with gas, brake, drift and item buttons under your right, and small reset and pause buttons in the top-right corner.
Pushes to main run CI (.github/workflows/ci.yml: unit tests and build) and deploy to Vercel,
which builds client/ as a static site (vercel.json). Pull requests get preview deployments.
client/src/main.ts: renderer, lights, fixed-timestep game loop, HUD.client/src/game/carPhysics.ts: arcade handling. All the feel lives in DEFAULT_TUNING.client/src/game/trackPath.ts: track centreline, projection onto it, the demo layout.client/src/game/collision.ts: walls and car-to-car bumps.client/src/game/race.ts: race rules: countdown, checkpoints, laps, standings.client/src/game/world.ts: the whole race simulation (cars, AI, collisions, rules) without rendering.client/src/game/racingLine.ts, aiDriver.ts, racers.ts: AI racing line, driving, opponents and grid.client/src/game/items.ts: pickups, missiles, bombs, boost pads, oil and puddles (placed at random within each track's hazard zones), and the demo layout.client/src/game/jumps.ts: ramps, car height and jumping. Airborne cars can't steer and pass over
pickups, hazards, bombs and other cars.client/src/game/tracks.ts, spaceTracks.ts: the circuits and their tracks, each with its layout and
theme, and the reversed copy of each. tracks.test.ts checks every track both ways round (corner radii,
spacing, hazard placement, a full AI race).client/src/game/season.ts, seasonStorage.ts: season rules (prize money, upgrades, difficulty per
round, top three or game over) and saving progress in the browser.client/src/game/vehicles.ts: the buggy and the monster truck: names, blurbs and handling. The truck is the
buggy's DEFAULT_TUNING with a few numbers changed.client/src/game/controls.ts, input.ts, gamepad.ts, touch.ts: keyboard, gamepad and touch input,
merged into one set of controls.client/src/game/audio.ts: engine notes and sound effects, synthesized with the Web Audio API (no
sound files).client/src/game/minimapLayout.ts, client/src/ui/minimap.ts: the mini map of the track and cars, shown on wide screens with a mouse.client/src/game/carModel.ts, trackScene.ts, itemScene.ts, weatherScene.ts, meteorScene.ts, followCamera.ts:
visuals.Contributions are welcome, from bug fixes to new tracks. See CONTRIBUTING.md for how to get started, and please follow the Code of Conduct. The title screen's "Contribute on GitHub" link brings you here.
Later: a Roblox version. The plan, and a first spike to size it up, are in docs/roblox-port.md.