Racing Car Game — 3D Multiplayer Racing Game
A 3D multiplayer vehicle racing game built in Unity during the COVID-19 lockdown. Features a custom-modelled circuit with loops, ramps, and obstacles, five driveable vehicle types, Photon-powered multiplayer, and a handful of hidden easter eggs including a confetti cannon and slow-motion mode.
A self-contained 3D racing game built for fun in Unity during the COVID-19 lockdown. Everything from the track geometry to the camera behaviour was built from scratch, with Photon PUN providing the online multiplayer layer.
The Track
The race circuit was modelled in FBX and imported directly into Unity. The layout includes:
- A looping circuit with a primary jump ramp launching cars into the air
- Multiple mini-ramps and an elevated ramp leading outside the track boundary
- Pillars, walls, and obstacles to navigate around
- A finish line with two upright poles as the timing marker
- Tree-lined terrain surrounding the course
Vehicles
Five vehicle types are playable, each with their own physics model and dedicated audio mixer:
- Car — the primary racing vehicle, chased by a stabilised follow-camera
- Jet plane (2-axis) — simplified aircraft flight model with two control axes
- Propeller plane (4-axis) — full flight controls including roll and yaw
- RollerBall — physics sphere mode for chaotic fun
- First/Third person character — on-foot traversal of the track
The CameraStable script keeps the chase camera smooth: it copies the car's Y-rotation (heading direction) but strips the X and Z components, so the camera never flips or tilts when the car goes over a ramp or spins out.
Easter Eggs
- Confetti cannon — a particle system fires bursts of coloured confetti. The ParticleSceneControls system supports three trigger modes: Instantiate (one-shot burst), Trail (continuous stream while held), and Activate (looping ambient). The ParticleClouds material renders the confetti in vibrant colours.
- Slow-motion toggle — a button drops Time.timeScale to 0.3×, with a UI icon swap to indicate the mode. Time is correctly restored on component destroy, preventing a permanently-frozen game state.
- Laser bolt — a custom-modelled projectile (LaserBolt.fbx) hidden in the scene as an unlockable weapon.
- Smash boxes — physics rigidbody boxes and box-piles scattered around the track that explode on impact.
UI and Menus
- Main menu with scene loader (selects race scene or network lobby)
- Pause menu that simultaneously freezes Time.timeScale to 0 and mutes AudioListener.volume — and correctly restores both values on resume
- Network game lobby and live score bar UI for multiplayer race positions
- Camera-switch UI for toggling between vehicle views mid-race
- Level reset button that reloads the entire scene from scratch
Multiplayer
Online multiplayer is powered by Photon PUN, handling room creation, player synchronisation, and network events across players.
Tech Stack
Unity 2019 · C# · Photon PUN · FBX custom models · Unity Standard Assets (vehicles, cameras, particles)
Technologies & Skills
Interested in working together?
I'm available for new engagements. Let's talk about your project.
Book a call on the homepage