尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Got tired of free-games ads, so I made my own to play & chill. 🤷♂️ A bus jam puzzle for mobile browsers with endless procedurally generated levels, always solvable and tuned by a simulated player. TypeScript + Three.js
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗A "bus jam" puzzle game for mobile browsers. Play it here.
Tap a bus and it leaves the parking lot following its arrow, if the road ahead is clear. Drag a bus and it slides one cell into a free space, like the tiles in a 15 puzzle: that's how you clear the way for the bus you need. Passengers wait in line and only get on the bus of their color. Buses that nobody can board wait in the stalls, and if the stalls fill up before the person at the front of the line finds a ride, you lose.
Ingorgo is Italian for traffic jam. I like this kind of game, but the free ones on the app stores are more ads than game: thirty seconds of puzzle, thirty seconds of video. So I made my own to play & chill, with no ads, ever. The part I cared about most was the levels: they should keep getting harder without ever becoming impossible.
This is the part I find most interesting. Every level is built backwards, the way you shuffle a 15 puzzle: start from an empty lot and apply reverse moves.
The difficulty curve rises quickly at first, with a sawtooth pattern on blocks of 10 levels: climb, a breather level, then a boss on the tenth. Past level 100 it goes into overdrive: more colors, fuller lots, and eventually only 3 stalls.
npm run check-levels generates a range of levels and replays each solution. scripts/calibrate.ts recalibrates the difficulty table and has to be run again whenever the generator changes.
src/game/) is completely separate from rendering (src/render/): the engine is instant and pure, and the renderer turns each event into an animation timelinesrc/game/
types.ts cells, buses, exit paths
engine.ts game rules: tap, slide, garages, boarding, win/lose, crane, extra stall
generator.ts level generator and difficulty curve
calibration.ts chosen variant for each calibrated level
solver.ts searches used for hints, level checks and calibration
rng.ts seeded random generator
src/render/
view3d.ts Three.js scene
timeline.ts turns game events into animations
themes.ts the six worlds
src/main.ts UI, input, overlays
scripts/check-levels.ts replays the solution of a range of levels
scripts/calibrate.ts difficulty calibration (plus write-calibration.ts)
npm install
npm run dev # dev server, reachable from your phone on the same Wi-Fi
npm run build # production build in dist/
npm run check-levels -- 200 # generate and verify levels 1 to 200
URL parameters:
?level=42 opens a specific level (tapping the level number at the top does the same)?debug=1 shows the level stats: difficulty, how full the lot is, how many buses start blockedEvery push to main is deployed to Vercel automatically.