A downloadable game for Windows

Dave the Driver

A Mario Kart-style kart racing game built in Godot 4.5, themed around the world of Dave the Diver. Race as Dave, Cobra, Bancho, and other characters from the world of Dave the Diver. 


Project Objectives

  1. FINISH A FUCKING PROJECT

For my past 2 projects I've gone really deep into how to make the most optimized and efficient systems to understand 3D camera and Character Creation workflow. And while I learnt a lot, all I had to show for it was a... a 3D camera system and a 3D character...

Perfect is the enemy of good. The main objective of Dave the Driver is to take one of the idea's from my head and make a barebones MVP game that has all of the basic components that make a game. No polishing or focusing on little details. Just a functional game that I can iterate on and polish. 


Core Systems Overview 

KartBase Inheritance System

Built a shared CharacterBody3D base class that both PlayerKart and AIKart extend:

  • KartBase holds identity (kart_id, character_stats), pickup state, stun system, and base movement values modified by CharacterStats resource multipliers
  • Checkpoints, finish lines, and pickups detect KartBase— one type check handles all kart types without knowing if a human or computer is driving
  • Character stats are Resource files editable in the Inspector: speed, handling, and acceleration multipliers applied at runtime to calculate effective movement values

Multi-Stage Drift System

Implemented a Mario Kart-style drift state machine on the PlayerKart with escalating boost rewards:

  • Stage 1: Sliding — no reward if released early
  • Stage 2: Mini boost earned after 1s of sustained drift (blue sparks)
  • Stage 3: Full boost earned after 2s of sustained drift (orange sparks)
  • Drift direction locks on entry — steering input adjusts the angle within the drift rather than changing direction
  • Visual feedback through kart body tilt, FOV shifts, and dedicated drift audio channels (start screech, looping screech, stage upgrade sounds)

AI Opponent System

Created competitive AI using a "carrot on a stick" path-following approach:

  • A PathFollow3D target rides ahead on a closed Path3D racing line; the AI kart faces it using lerp_angle() for smooth, wraparound-safe rotation
  • Rubber-banding: AI adjusts speed based on distance to the player — slows down when far ahead, speeds up when behind, keeping races competitive
  • Lane spreading: Each AI receives a permanent lateral offset so opponents spread across the track width rather than clustering on the racing line
  • Kart avoidance: Raycasting detects nearby karts and applies sideways steering to prevent rear-ending
  • Curvature braking: AI samples upcoming path curvature and reduces speed before sharp corners
  • Strategic item usage: AI collects pickups and uses them after a randomised delay — boosts on straights, missiles when in range, traps dropped behind

Pickup & Combat System

Three pickup types defined as Resource files, spawned from rotating pickup boxes on the track:

  • Speed Boost: Temporary speed multiplier reusing the drift-boost pipeline, with configurable strength and duration per resource
  • Homing Missile: Instantiated projectile scene that tracks the nearest opponent ahead, applying a configurable stun duration on impact
  • Trap: Hazard dropped behind the kart with a lifetime timer — stuns any kart that drives through it, then self-destructs

Both PlayerKart and AIKart handle pickup effects through their own implementations, while KartBase manages the shared collect/hold/use lifecycle and EventBus signal emission.


Project Outcome

A working, bare bones MVP. Is it pretty? Does it sound good? Is it exactly what I had in my head? No. But it works. 

I have something that is playable and that can be iterated on. For now I'm going to move on to other projects but in the future I do plan on revisiting this when I have developed my art, sound design and coding skills further. There are plenty of quality of life things I can add such as: 

  • Improved camera controls
  • AI and player fine tuning
  • Rigged 3D models with animations
  • Balanced audio

But that wasn't the objective. I wanted a barebones MVP of a silly idea I had in my head and now it exists.

Updated 14 days ago
StatusPrototype
PlatformsWindows
AuthorLewis Stephens
GenreRacing
ContentNo generative AI was used

Download

Download
Dave the Driver.zip 48 MB