A fast-paced multiplayer competitive runner built in Unity, inspired by Fun Run.
Players race through obstacle-filled levels while using offensive and defensive powerups to sabotage opponents and secure first place. Every match is designed to be short, chaotic, and highly replayable.
Rival Rush is a production-focused multiplayer game project built with:
- Unity 6
- Netcode for GameObjects (NGO)
- Unity Transport (UTP)
- ScriptableObject-driven gameplay systems
- Event-driven architecture
- AI fallback players
- Object pooling for gameplay performance
The goal is to create a highly replayable competitive racing experience where movement skill, timing, and powerup usage determine the winner.
- 2โ4 players per match
- Host-client networking architecture
- Lobby system with ready checks
- Scene synchronization handshake
- Race countdown synchronization
- Finish order tracking
- AI fills empty player slots
Players continuously auto-run forward and control:
- Jump
- Double Jump
- Slide
- Wall Cling
- Wall Jump
- Air Dive
Movement includes:
- Tick-based timing
- Jump buffering
- Coyote time
- Ground grace periods
- Physics-driven traversal
Combat is entirely powerup-driven.
Current powerups include:
| Powerup | Type | Description |
|---|---|---|
| ๐ Rocket | Offensive | Homing missile with AoE explosion |
| ๐ซ Revolver | Offensive | Bullet rain attack |
| ๐ช Sawblade | Offensive | Bouncing projectile |
| โก Shocker | Offensive | Area-of-effect electrical pulse |
| ๐ชค Trap | Offensive | Ground trap placed behind player |
| ๐ก Shield | Defensive | Temporary invincibility |
| ๐จ Speed Boost | Utility | Temporary speed increase |
Design goals:
- Instant readability
- Chaotic interactions
- Fair targeting rules
- Server-authoritative kill validation
- Shared kill feed across players
Rival Rush includes AI players that can replace empty lobby slots.
- Balanced
- Aggressive
- Defensive
- Risky
Perception โ Context โ Strategy โ Action
AI uses:
- Hazard raycasts
- Wall detection
- Slide obstacle detection
- Powerup decision scoring
- Personality-driven behaviors
The AI shares the exact same input pipeline as human players through a common input interface.
Networking is built using Unity Netcode for GameObjects.
- Server-authoritative race state
- Server-authoritative finish order
- Server-authoritative combat validation
- Owner-driven player input
- NetworkVariables for replicated state
- RPCs for gameplay synchronization
- LobbyManager
- MultiplayerManager
- RaceManager
- NetworkPlayerSpawner
- TickManager
- Scene-ready handshake system
- Countdown synchronization
- Finish state replication
- Lobby player replication
- Networked race lifecycle
The project follows a hybrid architecture combining several patterns.
GameEvents act as the central event bus.
Examples:
- Race Started
- Race Finished
- Player Killed
- Powerup Picked
- Powerup Activated
Player logic is split into:
- PlayerController
- PlayerModel
- PlayerView
This keeps gameplay logic separate from state and presentation.
AI personalities are implemented using strategy classes:
- AggressiveStrategy
- DefensiveStrategy
- BalancedStrategy
- RiskyStrategy
Powerups are created using:
PowerUpDefinition -> CreateEffect()Each powerup defines its own effect implementation.
No runtime Instantiate/Destroy during gameplay.
Pools include:
- ProjectilePool
- VFXPool
- KillFeed Pool
- Lobby UI Pool
State Flow:
Waiting
โ
Countdown
โ
Race
โ
Finished
Managed by:
- RaceManager
- TickManager
Built using:
PowerUpController
โ
PowerUpDefinition
โ
IPowerUpEffect
Benefits:
- Easy expansion
- Designer-friendly
- ScriptableObject workflow
Custom audio architecture includes:
Supports:
- Local sounds
- World-space sounds
- Attached looping sounds
- Audio pooling
Current SFX:
- Jump
- Landing
- Explosion
- Rocket Launch
- Rocket Loop
- Rocket Hit
- Gunshot
- Trap Place
- Trap Hit
- Sawblade Throw
- Sawblade Hit
- Bullet Hit
- Shield Pop
- Countdown
- Race Start
- Finish
Supports:
- Persistent music playback
- Volume saving
- Runtime adjustment
- Settings menu integration
Pooled visual effects include:
- Death Smoke
- Shield Effects
- Explosion Effects
Features:
- Pre-warmed pools
- Automatic recycling
- Zero-allocation runtime usage
- Object pooling throughout gameplay
- Cached AI raycasts
- Tick-based gameplay timing
- No gameplay coroutines in critical systems
- Minimal runtime allocations
Systems are designed to support:
- Additional powerups
- Additional AI personalities
- Multiple race maps
- Cosmetics
- Ranked progression
- Future matchmaking
- Client-side prediction
- Server reconciliation
- Lobby code sharing
- Matchmaking queue
- Cosmetic shop
- Character skins
- Trails
- Emotes
- Additional maps
- Tournament mode
- Global leaderboards
- Mobile version
This project has been my primary sandbox for learning and applying:
- Multiplayer architecture
- Unity Netcode for GameObjects
- Network synchronization
- Server authority models
- AI architecture
- Design patterns
- Object pooling
- Production-level code organization
- Game system architecture
The goal was not simply to make a playable game, but to build systems that are scalable, maintainable, and representative of real-world game development practices.
- Unity 6
- C#
- Netcode for GameObjects
- Unity Transport
- ScriptableObjects
- Unity Input System
- TextMeshPro
Yash Londhe
Unity Game Developer
- Multiplayer Systems
- Gameplay Programming
- AI Systems
- Tools & Architecture
Portfolio: https://13augyash.wixsite.com/gamedevportfolio
Current Status:
Prototype / Vertical Slice
Core gameplay, multiplayer, AI, powerups, audio systems, VFX systems, and race flow are implemented and actively being expanded.