Skip to content

AkshayKappala/Tumble-Guys

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

33 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽฎ Tumble Guys

Multiplayer Party Game Inspired by Fall Guys

MADE WITHunity3d
compatible withandroidwindows

MIT License Stars

Download Game โ€ข Report Bug โ€ข Request Feature


๐ŸŽฏ What is Tumble Guys?

Tumble Guys is a physics-based multiplayer party game where players compete in chaotic obstacle courses, racing against each other to reach the finish line. Inspired by the popular Fall Guys, this Unity3D project features ragdoll physics, networked multiplayer gameplay, and smooth third-person controls.

Built with Unity Netcode for GameObjects and Unity Relay, Tumble Guys provides a seamless multiplayer experience without requiring dedicated serversโ€”perfect for quick matches with friends on both Windows and Android platforms.


โœจ Features

๐ŸŽฎ Core Gameplay

  • Third-Person Character Controller with smooth movement and camera controls
  • Physics-Based Ragdoll System for hilarious tumbles and collisions
  • Double Jump Mechanic for enhanced platforming gameplay
  • Ground Detection System using sphere casting for accurate collision

๐ŸŒ Multiplayer Networking

  • Unity Relay Integration for easy lobby creation and joining
  • Client-Authoritative Animation with OwnerNetworkAnimator
  • Up to 4 Players per lobby with automatic session management
  • Anonymous Authentication for quick player sign-in
  • Lobby Code System for easy friend matchmaking

๐ŸŽจ Visual & Performance

  • Universal Render Pipeline (URP) for optimized graphics
  • Cinemachine Camera System for dynamic third-person follow
  • FPS Counter for performance monitoring
  • Skybox and Lighting with customizable environments

๐Ÿ› ๏ธ Tech Stack

Technology Purpose
Unity 3D Game Engine
C# Programming Language
Netcode for GameObjects Multiplayer Networking Framework
Unity Relay P2P Connection Service
Unity Transport (UTP) Low-level Network Transport
Unity Input System Modern Input Handling
Cinemachine Camera System
Universal Render Pipeline Rendering Pipeline
TextMesh Pro UI Text Rendering

๐Ÿš€ Quick Start

Prerequisites

  • Unity 2021.3 or later
  • Unity account (for Relay services)
  • Windows PC or Android device

Installation

  1. Clone the repository
git clone https://github.com/AkshayKappala/Tumble-Guys.git
cd Tumble-Guys
  1. Open in Unity

    • Launch Unity Hub
    • Click "Add" and select the cloned project folder
    • Open the project (Unity will import all dependencies)
  2. Configure Unity Services

    • Open Window > General > Services
    • Link your Unity project ID
    • Enable Relay service in Unity Dashboard
  3. Open the Main Scene

    • Navigate to Assets/Scenes/_Multiplayer Demo. unity
    • Press Play to test locally

Building for Platforms

Windows Build

File > Build Settings
Select "PC, Mac & Linux Standalone"
Click "Build" and choose output folder

Android Build

File > Build Settings
Select "Android"
Switch Platform
Configure Player Settings (minimum API level 21)
Click "Build"

๐Ÿ“ Project Structure

Tumble-Guys/
โ”œโ”€โ”€ Assets/
โ”‚   โ”œโ”€โ”€ Scenes/                    # Game scenes
โ”‚   โ”‚   โ”œโ”€โ”€ _Multiplayer Demo.unity  # Main multiplayer scene
โ”‚   โ”‚   โ””โ”€โ”€ Map_01.unity            # Game level
โ”‚   โ”œโ”€โ”€ Scripts/                   # C# game scripts
โ”‚   โ”‚   โ”œโ”€โ”€ ThirdPersonController.cs  # Player movement
โ”‚   โ”‚   โ”œโ”€โ”€ RelayManager.cs         # Multiplayer networking
โ”‚   โ”‚   โ””โ”€โ”€ OwnerNetworkAnimator.cs # Animation sync
โ”‚   โ”œโ”€โ”€ Prefabs/                   # Reusable game objects
โ”‚   โ”œโ”€โ”€ Models/                    # 3D models and meshes
โ”‚   โ”œโ”€โ”€ Materials/                 # Textures and materials
โ”‚   โ”œโ”€โ”€ Animation/                 # Animation controllers
โ”‚   โ”œโ”€โ”€ Input Settings/            # New Input System config
โ”‚   โ””โ”€โ”€ Settings/                  # URP and quality settings
โ”œโ”€โ”€ Packages/                      # Unity package dependencies
โ””โ”€โ”€ ProjectSettings/               # Unity project configuration

๐ŸŽฎ How to Play

Creating a Lobby

  1. Launch the game
  2. Click "Host Game" button
  3. Share the generated Lobby Code with friends
  4. Wait for players to join
  5. Start the match!

Joining a Lobby

  1. Launch the game
  2. Enter the Lobby Code in the input field
  3. Click "Join Game"
  4. Wait for the host to start

Controls

Input Action
WASD / Arrow Keys Move Character
Space Jump / Double Jump
Hold Ctrl Free Cursor
Mouse Camera Control

๐Ÿ”ง Customization Guide

Modifying Player Movement

Edit the movement parameters in ThirdPersonController.cs:

[SerializeField]
private float movementForce = 1f;      // Movement acceleration
[SerializeField]
private float jumpForce = 5f;          // Jump strength
[SerializeField]
private float maxSpeed = 5f;           // Maximum horizontal speed
[SerializeField]
private float downwardGravityBias = 1f; // Falling speed multiplier

Changing Max Players

Modify the constant in RelayManager.cs:

const int m_MaxConnections = 4;  // Change to desired player count

Adjusting Network Settings

Configure Unity Transport in the NetworkManager:

  • Select NetworkManager GameObject in scene
  • Adjust UnityTransport component settings
  • Modify timeout and connection parameters

๐Ÿ› Troubleshooting

Relay Connection Failed

  • Solution: Ensure Unity Services are properly configured and you're connected to the internet
  • Verify your Unity project is linked in the Services window
  • Check firewall settings aren't blocking Unity connections

Players Can't Join Lobby

  • Solution: Verify the lobby code is entered correctly (case-sensitive)
  • Ensure the host hasn't reached max player capacity
  • Check both players have stable internet connections

Animation Not Syncing

  • Solution: Verify OwnerNetworkAnimator component is attached to player prefab
  • Ensure animator controller is properly configured
  • Check network object ownership settings

Input Not Working

  • Solution: Verify Input System package is installed
  • Check ThirdPersonActionsAsset is properly configured
  • Ensure player has ownership of NetworkObject

๐Ÿ“ฆ Dependencies

The project uses the following Unity packages:

  • Netcode for GameObjects (1.0+)
  • Unity Relay (1.0.3)
  • Unity Transport (1.0+)
  • Cinemachine
  • Input System
  • TextMesh Pro
  • Universal Render Pipeline

All dependencies are managed through Unity Package Manager.


๐Ÿ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.


๐Ÿ‘ค Contact

Akshay Kappala


๐Ÿ™ Acknowledgments

  • Mixamo - Character animations
  • FarlandSkies - Skybox assets
  • OmniSAR Technologies - FPS Counter utility
  • Lunar Console - In-game debug console
  • Unity Technologies - Netcode and Relay services

โญ Star this repo if you found it helpful!

Made with โค๏ธ using Unity3D

About

Multiplayer party game inspired by Fall Guys, built in Unity with real-time online networking.

Topics

Resources

License

Stars

Watchers

Forks

Contributors