A fun, top-down arcade racing game built using React, Vite, and TypeScript. Race around the track, pass all checkpoints, and try to beat your best time over 3 laps!
This game is designed to be played either as a standalone experience or integrated with the Tivoli API from the Yrgo Web Development Class of 2024.
- 🏎️ Top-down go-kart driving with responsive controls
- ⏱️ Live timer and best time tracking
- ✅ Checkpoint validation to ensure fair laps
- 🏁 3-lap racing logic with finish detection
- 🏆 Leaderboard integration (via Tivoli API)
- 🧠 Adaptive scaling for mobile and desktop
- 📱 On-screen mobile controls
- 🔐 Optional JWT authentication for secure gameplay via Tivoli
- 🌍 Multi-platform: works in browser on desktop and mobile
- React (with Hooks)
- Vite
- TypeScript
- Tailwind CSS
- Tivoli API (JWT authentication, transaction handling, score submission)
- Lucide Icons
- Players start by authenticating (via Tivoli) or launching standalone.
- A €3 spin fee is reported to the API to start the game.
- Players complete 3 laps, hitting all checkpoints before crossing the finish line.
- Upon completing all laps, the player's time is recorded.
- Players may submit their score to the leaderboard or skip submission.
- A stamp and potential winnings are reported to the Tivoli system.
| Key | Action |
|---|---|
| ↑ | Accelerate |
| ↓ | Reverse |
| ← | Turn left |
| → | Turn right |
Touch controls appear when using mobile view.
git clone https://github.com/YOUR_USERNAME/go-kart-race.git
cd go-kart-race
npm install
npm run dev
npm run build
src/
├── api/ # Tivoli API service layer
├── components/ # Reusable UI and game components
├── context/ # Game config
├── assets/ # Game images, audio, etc
├── App.tsx # Main entry point
└── main.tsx # Vite bootstrap
MIT License
Made by Mahtias Jebrand, Filip Lyrheden and Jack Svensson. Special thanks to the creators of the Tivoli API.