A 3D Mario Kart-inspired car racing game built in Unity with C#. Features AI opponents, combat mechanics, an open-world exploration mode, dynamic weather, a coin economy, player profiles, car selection, and map selection — all packed into one project.
- Create and manage multiple player profiles
- Each profile tracks its own coins, unlocks, and progress independently
- Switch between profiles from the main menu
- Choose from a roster of cars before each race
- Each car has unique stats (speed, acceleration, handling)
- Cars can be unlocked through the coin economy
- Selected car is saved per profile
- Pick from multiple race tracks and environments before racing
- Each map has a distinct layout, difficulty, and visual style
- Some maps may be unlockable via coins or exploration progress
- Compete against AI-controlled cars that race alongside you
- AI follows the track using waypoint/pathfinding logic
- Provides a real challenge — opponents adapt to the track layout
- Players can fire projectiles at rival cars mid-race
- Hit opponents to slow them down or knock them off course
- Ammo and power-ups are collected around the track
- Adds a Mario Kart-style combat layer on top of traditional racing
- Collect coins scattered across the race track during gameplay
- Coins are earned through racing, placing well, and exploring
- Accumulated coins unlock new cars, maps, or cosmetics
- Once you've collected enough coins, an open exploration mode unlocks
- Drive freely around open environments without racing pressure
- Discover hidden areas, collectibles, and secrets in the world
- Real-time weather system that affects racing conditions
- Weather types include: clear, rain, fog, and storm
- Rain and fog affect car handling and visibility
- Weather can shift during a race or be selected beforehand
| Technology | Role |
|---|---|
| Unity | Game engine |
| C# | All game logic — cars, AI, combat, UI, coins, weather (71.6%) |
| ShaderLab | Custom visual shaders for environment and effects (20.8%) |
| HLSL | GPU-level shader programming for weather and lighting (3.6%) |
unity-game/
├── Assets/
│ ├── Scripts/ # All C# game logic
│ │ ├── CarController.cs # Player car physics & input
│ │ ├── AICarController.cs # AI opponent waypoint racing
│ │ ├── ShootingSystem.cs # Projectile / combat system
│ │ ├── CoinManager.cs # Coin collection & economy
│ │ ├── WeatherSystem.cs # Dynamic weather control
│ │ ├── ProfileManager.cs # Player profile management
│ │ ├── CarSelector.cs # Car selection UI logic
│ │ ├── MapSelector.cs # Map/track selection logic
│ │ └── ExplorationManager.cs # Open-world exploration mode
│ ├── Scenes/ # Unity scenes (menu, car select, tracks, exploration)
│ ├── Prefabs/ # Car, projectile, coin, and environment prefabs
│ ├── Materials/ # Shaders and materials (weather effects, car skins)
│ └── ...
├── Packages/ # Unity package dependencies
├── ProjectSettings/ # Unity project configuration
├── .gitignore
└── README.md
Note: Script filenames above are illustrative — check
Assets/Scripts/for the exact names.
- Unity Hub installed
- Unity Editor — check
ProjectSettings/ProjectVersion.txtfor the exact version used - Git
-
Clone the repo:
git clone https://github.com/0marii/unity-game.git
-
Open in Unity Hub:
- Launch Unity Hub → click Add → select the
unity-gamefolder - Open with the correct Unity version
- Launch Unity Hub → click Add → select the
-
Load the Main Menu scene:
- In the Editor, go to
Assets/Scenes/ - Open the Main Menu scene and press
▶️ Play
- In the Editor, go to
- Select or create a player profile
- Choose your car from the garage
- Pick a map and optionally set the weather
- Hit Race!
| Key | Action |
|---|---|
W / ↑ |
Accelerate |
S / ↓ |
Brake / Reverse |
A / ← |
Steer Left |
D / → |
Steer Right |
Space |
Shoot projectile at opponents |
ESC |
Pause Menu |
- Collect 🪙 coins on the track
- Shoot rivals to disrupt them
- Outrace AI opponents to finish first
- Earn coins based on finishing position
- Unlock Exploration Mode and roam freely
- Spend coins to unlock new cars and maps
| Weather | Effect on Gameplay |
|---|---|
| ☀️ Clear | Normal visibility and full traction |
| 🌧️ Rain | Reduced grip, slippery corners |
| 🌫️ Fog | Low visibility, harder to read the track ahead |
| ⛈️ Storm | Combined rain + severely reduced visibility |
Built with Unity · Inspired by Mario Kart 🍄 · Race. Shoot. Explore. 🏁