Stats quietly inverted: shitboxier IRL = better in game. Excel X3 is now the fastest car; TURDRUNNER is the slowest. tools/import_shitbox.py converts downloaded models (glb/gltf/fbx/obj/blend) to game GLBs -- normalizes scale, yaw, ride-height origin. First two imports: Corolla mk7 and Morris Mini. shitboxes/ stash gitignored + .gdignore'd (its .blend files broke Godot's headless import scan). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| cars | ||
| docs | ||
| levels/woolies_carpark | ||
| src | ||
| tests | ||
| tools | ||
| .gitignore | ||
| project.godot | ||
| README.md | ||
| shot_casserola_dx.png.import | ||
| shot_chaebol_x1.png.import | ||
| shot_chaebol_x2.png.import | ||
| shot_crash.png.import | ||
| shot_datto_120y.png.import | ||
| shot_floored_xd.png.import | ||
| shot_hardon_cmere.png.import | ||
| shot_hardon_shaggen.png.import | ||
| shot_maxi_merk.png.import | ||
| shot_mini_merk.png.import | ||
| shot_morry.png.import | ||
| shot_turdrunner_slur.png.import | ||
Burnout Infinity: Shitbox
Burnout 3-style arcade racer, Aussie shitboxes, Woolies carparks. Godot 4.6 + Blender, native Apple Silicon.
Run
/Applications/Godot.app/Contents/MacOS/Godot --path .
Controls: WASD/arrows drive, Shift drift, Space boost, R reset (or retry after Crash Mode), Esc menu.
Modes
- Cruise — free roam with traffic.
- Crash Mode — 60 seconds, rack up damage dollars ramming traffic and parked cars.
- Race — 3 laps vs 3 rubber-banded rivals on the level's
RacePath.
The boost loop is Burnout 3's: earn boost by drifting, near-missing traffic, and smashing things. Wrecking a rival near you = TAKEDOWN — refills the meter and grows it (up to 4x). Hard crashes shed body panels and trigger Impact Time slow-mo.
Cars
A car is a folder: cars/<id>/stats.tres + optional car.glb. Models are built
procedurally — specs live in tools/build_cars.py, one dict per car
(silhouette profile, dimensions, paint). Rebuild all GLBs with:
/Applications/Blender.app/Contents/MacOS/Blender -b -P tools/build_cars.py
Model convention (any GLB works, hand-modelled or generated):
- Nose faces +Y in Blender (imports as Godot -Z forward).
- Node origin 0.75 m above ground level (the controller's ride height).
- Objects named
det_*are detachable — the game rips them off on impact (doors, mirrors, bumpers, bonnet, boot). - Current fleet: Datto 120Y, Gemmy TX, Kingswood HQ, VL Terbo, XF Fungoon, Excel Hilton. Piss-take names on purpose: real model names and badges are trademarks.
To improve a silhouette: supply a side-on photo + front three-quarter photo, tweak the profile points in the spec, rebuild, screenshot.
Stats are low-key reversed: the shitboxier the car was in real life, the better it performs here. The Excel X3 is the fastest car in the game; the muscle cars are all bark.
Downloaded models (from shitboxes/, gitignored + .gdignore'd) convert via:
/Applications/Blender.app/Contents/MacOS/Blender -b -P tools/import_shitbox.py -- "<file>" <car_id> <length_m> [yaw_deg]
Imported cars don't shed det_* panels until someone cuts their doors out in Blender.
Add a level
Make a folder levels/<id>/ containing level.glb (or level.tscn). Blender convention:
- Solid objects: suffix the name with
-col(Godot generates collision on import). - An Empty named
Spawnwhere the car starts. - A curve/path named
RacePath(loop) enables Race mode and traffic. - Export glTF Binary to
levels/<id>/level.glb. It appears in the menu.
Tests
/Applications/Godot.app/Contents/MacOS/Godot --headless --path . --import
/Applications/Godot.app/Contents/MacOS/Godot --headless --path . --script tests/smoke.gd
Visual check (opens a window, saves a PNG):
/Applications/Godot.app/Contents/MacOS/Godot --path . --script tests/screenshot.gd -- car=datto_120y mode=crash frames=280 out=shot.png
Design doc
docs/BurnoutInfinityShitbox.pdf — research report on the original game. Still to come:
crash deformation (control-hull vertex displacement, equations in the PDF), oncoming-lane
boost, Road Rage mode, sound, real level GLBs from Blender.