
Kick off your game dev journey! Learn what Unity is, why it's a great engine for beginners, and what you'll be building in this course.
Don’t have Unity installed yet? No problem — this step-by-step walkthrough will show you exactly how to download Unity Hub, install the editor, and get set up for success. Unity can be downloaded from the Unity3D website.
A fast, beginner-friendly tour of the Unity interface. You'll learn about the Scene view, Hierarchy, Inspector, Project window, Console, and more — just enough to feel confident moving forward.
The Unity interface is split up into a series of windows that can be docked, closed and opened in a variety of ways. In this lesson we'll learn:
The most important Unity windows
How to change and save your layout
How to open new windows
How to setup the editor for play testing inside of Unity
Start writing your first lines of C#! This lesson introduces the fundamentals of C# scripting inside Unity. We’ll cover variables, methods, and how to hook up your code to GameObjects using MonoBehaviours—no prior coding experience required.
Learn how Unity’s powerful component-based architecture works. You’ll see how every GameObject in your scene is built from modular parts like Transforms, Colliders, and Scripts—and how this flexible system makes Unity so beginner-friendly and powerful.
Discover what happens under the hood every frame in Unity. We’ll break down how Unity processes player input, applies physics, runs your game logic, plays animations and audio, and finally renders everything to the screen—nearly 60 times per second! Understanding this cycle is key to writing responsive, bug-free code.
In this lesson, you’ll create the Tiny Rumble Unity project using the 3D URP template and set up a clean folder structure to keep your files organized. You’ll also save your first scene and prepare your project for development.
In this lesson, you created your first Input Actions asset using Unity’s new Input System. You defined a `Player` action map with `Move` and `Jump` actions and set up default keyboard bindings.
In this lesson, you learned what the `PlayerInputManager` is and how it allows multiple players to join and play with separate input devices. This system handles input detection, player spawning, and device assignment automatically — making it perfect for local multiplayer games like Tiny Rumble.
In this lesson, you added a PlayerInputManager to your scene, created a simple Player prefab, and tested spawning multiple players using both keyboard and controllers. Unity handled device assignment automatically. In the next lesson, we’ll create a split-screen camera system to support multiple player views.
In this lesson, you added a camera to the Player prefab and used a script to automatically assign screen space based on the number of players. Your game now supports 2–4 player split-screen camera layouts.
In this lesson, you created a `PlayerController` script that connects your input actions to character movement and jumping using Unity’s CharacterController. You tested it with both keyboard and controller input to verify everything works per player.
Add responsive jumping and reliable ground detection to your player controller!
In this lesson, you’ll use a raycast to check if the player is grounded — a more accurate alternative to Unity’s built-in method. You’ll also tune your jump height, apply custom gravity, and add “coyote time” for more forgiving platforming.
By the end of this lesson, your player will jump and land with precision — a key foundation for any great multiplayer platformer.
In this lesson, you'll build a flexible player join system that supports any mix of input devices — including multiple controllers and multiple players sharing one keyboard using separate control schemes (like WASD and Arrow Keys).
You'll learn how to:
Disable Unity’s default auto-join system
Set up multiple keyboard control schemes in the Input System
Manually spawn players based on key or button input
Combine keyboard and gamepad input for true couch multiplayer
By the end of this lesson, your game will support 2–4 local players using any combination of controllers and keyboard layouts — perfect for testing or party-style gameplay.
Let’s simplify our camera system! Now that we’ve tested split-screen multiplayer, it’s time to refactor to a single dynamic camera that automatically keeps all players in frame. This approach makes local co-op gameplay easier to follow, more cinematic, and less complex under the hood.
In this lesson, you’ll replace the per-player cameras with a single Cinemachine Target Group Camera, register new players to it at runtime, and polish the zoom and framing to feel great with 2–4 players on screen.
What You’ll Learn
How to replace multiple cameras with one shared dynamic camera
How to use Cinemachine TargetGroup to track multiple players
How to register players to the camera system as they join
How to test and polish camera behavior for local co-op
By the end of this lesson, you’ll have a clean, scalable camera setup that keeps gameplay focused and cohesive — perfect for fast-paced local multiplayer games.
In this lesson, you added a Dash mechanic that lets players burst forward briefly. You created a new input action, connected it to the PlayerController, and tested it using both keyboard and controller input.
In this lesson, you created a hitbox trigger and used it to detect collisions between dashing players and others. You added a knockback effect by applying a velocity force to the target on impact, completing the dash attack mechanic.
In this lesson, you added a Punch input action and created a punch hitbox with a short active window. When the punch connects with another player, it applies knockback, giving players a second attack option alongside the dash.
In this lesson, you added stun and cooldown systems to control the flow of combat. Players are briefly frozen when hit, and dash and punch abilities can only be used after a short delay. This helps balance the pacing and make hits feel impactful.
In this lesson, you added camera shake and visual effects to amplify feedback when players are hit. These touches add polish and help communicate impact clearly during chaotic multiplayer matches.
In this lesson, you’ll learn how to build a fully functional and visually polished multiplayer arena using Unity’s ProBuilder tool. Step-by-step, we’ll create the arena mat, posts, ropes, and frame — complete with beveled edges and colorful materials. You’ll also learn how to organize your scene and create reusable prefabs for future levels.
By the end of this lesson, you’ll have a complete, stylized battleground ready for players to join the fight — and a powerful new modeling tool under your belt.
In this lesson, you created a SpawnManager to assign unique spawn points to each player when they join. Your game now starts with clean, organized positioning for all players.
In this lesson, you added a complete health and lives system. Punches and dashes now damage other players, apply knockback, and trigger death. If a player runs out of lives, they’re eliminated. Respawning is handled by the SpawnManager using the player’s index.
In this lesson, you created a `TargetGroupManager` that listens to global player events. When a player spawns or is eliminated, it adds or removes them from the Cinemachine Target Group — keeping your camera focused only on active players.
In this lesson, you created a GameManager that tracks player health and checks who’s still alive. Once only one player remains, the game declares them the winner. This sets the stage for adding a win screen and restart flow in the next lesson.
In this lesson, you created a win screen that displays when one player remains and added a restart button to reload the scene. This completes the core game loop for your local multiplayer battle.
You’ve completed the full gameplay loop in this module — including lives, respawns, win detection, and a restart screen. From here, we’ll begin adding polish, features, and UI to make the game production-ready.
In this lesson, you created a Main Menu with a Play button that works with mouse, keyboard (Enter/Space), and gamepad (A/Start) using Unity’s new Input System. Pressing Play transitions to the Join Screen scene.
In this lesson, we’ll set up our Join Menu from scratch using some placeholder graphics I’ve provided, then wire it so pressing keys or gamepad buttons will activate player slots.
By the end of this lesson, you’ll have a fully functional lobby UI where each slot lights up as players join — ready for us to hook up the Start button in the next lesson.
In this lesson we’ll make it actionable: when two players join, we’ll enable and focus the Start button, allow confirm from any joined device, show a 5‑second countdown, and load the next scene.
In this lesson we’ll carry those joined devices into the arena automatically—no one has to press join again. I’ll show you the changes as small, surgical edits so you can see exactly what’s happening and test after each step.
Stop learning "theory" and start building the chaos.
Most Unity courses spend hours on boring basics before you ever see a game. This course is different. We dive straight into the fun part: building Tiny Rumble, a chaotic, physics-based local multiplayer brawler (inspired by games like Smash Bros, Gang Beasts, and TowerFall).
Whether you are a complete beginner or a developer looking to finally master Unity’s complex New Input System, this course will guide you through building a polished, playable, 4-player party game from start to finish.
Why this course? Building a local multiplayer game is usually hard. It requires managing multiple controllers, complex state machines, and dynamic cameras. We break it all down into simple, actionable steps using Unity 6.
What you will build: You won’t just be scripting a capsule to move. You will architect a complete combat loop, including:
Dynamic Split-Screen & Zoom: Create a "Smash-style" camera that tracks multiple players using Cinemachine.
The New Input System: Learn the right way to handle multiple gamepads and keyboards without spaghetti code.
Juicy Combat Physics: Program satisfying knockback, hit stun, dashes, and punch impacts.
Game Loop Logic: Build round timers, respawn systems, "Last Player Standing" detection, and win screens.
Level Design: Greybox your own arenas instantly using ProBuilder.
What You Will Learn:
Unity 6 Workflow: Navigate the modern interface and tools.
C# Architecture: Write clean, modular code for Player Controllers and Game Managers.
Combat Design: How to use Raycasts and Gizmos to create precise hit detection.
Visual Polish: Add screen shake, particle effects, and "game feel" so your hits land hard.
UI Systems: Build main menus, player join screens, and health bars.
Who is this for?
Ambitious Beginners: You’ve never coded, but you don’t want to waste time on boring "Hello World" apps. You want to make a game you can actually play with friends on the couch.
Unity Developers: You know the basics, but the New Input System confuses you, or you’ve struggled to get local multiplayer working correctly.
By the end of this course, you won’t just have a certificate—you’ll have a finished executable file. You can plug in 4 controllers, invite your friends over, and battle it out in a game you built.
Enroll today and let's get ready to rumble.