Overview
Arcade-style top-down drifting with surprisingly deep physics, punchy audio, and effortless multiplayer. Drift Race is a Python/pygame-CE game where you slide, link corners, and trade paint with friends or AI on lightweight, stylized tracks.
What it is
- A fast, drifty driving game with physically grounded handling tuned for fun
- Local play, host/join multiplayer via relay, and optional AI opponents
- Clean visuals with camera tracking, light cones, tire marks, and car-type sprites
- A "developer-friendly" build with live FPS, debug overlays, and quick toggles
Highlights
Real drift feel
- Tire forces with slip; smooth transitions and recoveries
- Tire marks that evolve from smoke to rubber on the ground
- Collision handling that feels snappy without killing flow
Multiplayer that just works
- Host a room, share a short join code, and drive together through a relay
- Client→server updates at 60 Hz for responsive sync
AI drivers
- Spawn AI with a keypress (host only)
- Path-finding and per-frame control logic with optional debug visuals
Punchy engine audio
- Layered intake/engine/exhaust, gear-shift SFX, turbo blow-off
- Threaded mixer for smooth, low-latency sound
Car types and sprites
- Switch between AE86 and M5 in-game
- Shadow/diffuse/headlight sprite layers with dynamic caching
Built-in tools
- FPS display in the top-right
- Debug mode (per-wheel forces, overlays) via button or F3
- Light toggle, reset, and quick AI spawn
Gameplay
Quick pick-up-and-play drift handling—feels good on keyboard. Track borders, camera follow, and focused field-of-view light cones. Tire marks tell your story: smoke when you break loose, rubber when you dial it in.
Controls
- Drive: Arrow keys or ZQSD
- Brake: Space
- Reset car: R (on error screen)
- Lights on/off: L
- Change car type: C
- Toggle debug: F3
- Host/Join room: H / J
- Spawn AI: N
- Escape/Quit: Esc
Tech notes
- Python 3.12 + pygame-ce
- SAT-style collision checks; camera with clamped subsurfaces
- Threaded audio engine with dynamic mixing and gear events
- Asset system with per-car sprite stacks (shadow/diffuse/headlight)
- Network: lightweight state sync with relay keepalive and rate caps
Status and roadmap
            Current: Playable with local, AI, and online rooms; two car models; multiple maps
            Next ideas: More map and car types, game modes, customizable key binds, mod support
        
Want to try it or contribute? The project is open, lightweight, and easy to run.