
Explore how to set up Unity for an online multiplayer game and connect with a learning community on Discord, access a completed game project for reference, and find additional tutorials.
Set up the Unity display and layouts, import the assets package, and create a simple test scene with a ground plane and a capsule player for movement testing.
Configure a first-person look by placing the camera inside the player, using a viewpoint to rotate the view, and creating a script with no spaces in its name.
Learn to implement camera movement in Unity by linking a viewpoint transform to the player, reading mouse input, and applying it with Euler angles to rotate camera horizontally and vertically.
rotate the viewpoint to enable look up and down in unity, store vertical rotation, clamp between -60 and 60 degrees, and use debug logs to trace euler angles.
Learn to invert vertical rotation with an optional invert look toggle and manage the cursor with Unity cursor lock modes to keep the mouse inside the game view.
Learn to move the player in Unity by reading horizontal and vertical input with get axis raw, applying movement with move speed via transform.forward and transform.right, normalizing for consistent speed.
Learn to move a player with Unity's character controller, replacing transform.position with character controller move, enabling collisions, handling slopes, and preparing for gravity and jumping.
Learn to implement variable player speed in Unity by toggling between move and run speeds with the left shift key, using an active move speed for movement.
Decouple the camera from the player and move the main camera to the viewpoint each frame via late update, ensuring smooth position and rotation during gameplay and respawns.
Apply Unity's default gravity to the player by updating vertical movement with physics.gravity.y and time.deltaTime. Store the y velocity and reset it when grounded using the character controller.
Implement a jump mechanic by adding a jump force and using input.getButtonDown for the jump button, then tune gravity with a gravity mod to achieve snappier, realistic jumps in Unity.
Limit jumping to when the character is grounded by using a raycast ground check from a ground check point, checking against a ground layers mask and updating the grounded flag.
Build the game as a Windows app, configuring build settings, adding scenes (first scene loaded), and using a 854 by 480 windowed resolution for testing and sharing game data files.
Learn to manage the cursor in a Unity online multiplayer game by unlocking with escape, recapturing with a left click, and testing the behavior in a built version.
Implement shooting in a Unity online multiplayer game by wiring a private shoot function to the left mouse button, using a camera raycast to detect hits and log results.
Learn to create an online multiplayer game in Unity, implementing a bullet impact effect with a quad, fade material, and particle system, then package it as a prefab.
Instantiate a bullet impact at the hit point, oriented by the hit normal with quaternion look rotation and world up, offset slightly to prevent flicker, then destroy after 10 seconds.
Explore building a shared weapon overheating system in unity: manage heat buildup, cooldown rates, and overheating state, preventing firing when full, with code-first implementation and player display.
Configure a full hd canvas with scale to screen size, display an overheated gun warning using TextMeshPro, and manage it via a singleton UI controller that toggles the message.
Learn to visualize weapon heat in unity using a non-interactable ui slider. Set max heat, update the slider with current heat, and display a weapon temperature label to indicate overheating.
Create a crosshair UI in Unity by adding a crosshairs image to the canvas, centering it, sizing it, adjusting color, and aligning shots with the player's aim.
Learn to implement a three-weapon system in Unity, wiring pistol, machine gun, and rifle alongside a gun script storing isAutomatic, timeBetweenShots, and heatPerShot.
Switch between multiple guns by maintaining an all guns array and a selected gun index, using the mouse scroll wheel to wrap around and activate the chosen weapon.
Learn to make weapons function in Unity by using gun data for time between shots and heat per shot from the selected gun, and enforce automatic fire when applicable.
Add a muzzle flash to the end of each weapon in Unity and control its brief appearance with a muzzle display time and counter using time.deltaTime, deactivating on weapon switch.
Set up a playable arena in Unity by importing a city model, deactivating the extra camera and lights, and adding mesh colliders for proper collision. Adjust scale to 0.5.
Create a spawn manager in Unity, define 12 spawn point transforms, deactivate them at game start, and assign the player's position and rotation from these points via a static instance.
Learn to switch weapons with number keys using a for loop, map keys one to three to each gun, and handle input with get key down to select correct gun.
Move into the online multiplayer phase by implementing matches and enabling player interactions in your base first-person shooter, preparing for future features like seeing other players.
Learn to set up Photon in Unity using the Photon Unity Networking asset, create an app ID, and configure an EU region for testing with up to 20 concurrent users.
Create a main menu in Unity to connect to game rooms on the server, using a UI canvas, title, vertical layout group for buttons, and a loading panel.
Learn to connect to the Photon network in Unity by building a launcher with a singleton instance, showing a loading screen, and joining a lobby to access rooms.
Learn to set up a create room UI in Unity, with a room name input and create button, wiring the launcher script to open and manage the room creation screen.
Wire a create room function to the create room button, validate the room name with string.isNullOrEmpty, and call Photon Network.createRoom with the name and max players eight.
Photon automatically joins the created room, then update the room name text to the current room name when the room screen is shown.
Handle room creation errors in Unity by showing a red error panel with the Photon message and returning players to the main menu.
Enable a leave room flow in a Unity multiplayer game using Photon network: trigger leave room, display loading screen with leaving room text, and return to the lobby after leaving.
Learn to build a dynamic room browser in Unity with Photon real time, displaying rooms via room buttons, updating on room list changes, and instantiating buttons for available rooms.
Join rooms in a Unity online multiplayer game by wiring a launcher script to connect via Photon Network, using room info, updating loading text, and testing across builds.
Create a public quitGame method that calls application.quit to close the built game, while the Unity editor remains open for testing, and wire it to the quick game button.
Learn to display a live list of players in a Unity online multiplayer room by updating the room panel with player name labels using Photon Network nicknames.
Learn to dynamically update the multiplayer player list in Unity by handling on player entered room and on player left room events, using nicknames and relisting to reflect changes.
Learn to set and persist player nicknames in Unity multiplayer by using a name input panel, set nickname button, Photon network nickname, and PlayerPrefs to save between sessions.
Set up a start game workflow that syncs scenes across players with photon network, making the master client control when all players load into the chosen level.
Discover how to handle master client switching in a Unity multiplayer game with Photon, enabling a new master to start the game when the current master leaves.
Implement an editor-only test button in Unity to auto-create a test room via photon network, speeding iteration by avoiding repeated room name entry.
Set up multiplayer in Unity with Photon by turning the player into a prefab, placing it in the Resources folder, and using a Photon View to sync position and rotation.
Create a player spawner in Unity to spawn players over the network using Photon, placing them at a spawn point and instantiating the player prefab, with death and respawn management.
Learn to ensure players control only their own avatars by using photon view isMine, and update the camera only for the controlled player, enabling synchronized multiplayer movement.
Implement a match manager script that auto-loads the main menu (scene zero) when photon network isn't connected, using scene management for editor testing and build startup.
Implement networked player hit effects in a Unity multiplayer game by raycasting hits, tagging players, and Photon instantiation of a timed hit impact.
Implement networked shooting by using PunRPC to call a deal damage function on all clients. Transmit the attacker's nickname and display 'I've been hit' across the network.
Demonstrate implementing a take damage function in a Unity multiplayer setup, handling damage via RPC and notifying the photon view owner of hits, then deactivating the affected player.
Learn how to despawn and respawn players in a networked Unity game by using a spawn manager, Photon Network destroy/instantiate, and a synchronized death effect particle system.
Implement delayed respawn and display who killed you by showing a death screen with the killer's name, using Unity UI and coroutines.
Add per-gun shot damage values and apply those damage amounts to a player's health, tracking max and current health to determine death in Unity.
Display a health bar on the player UI by duplicating the existing temp UI, anchoring left, and wiring a health slider and label to update with current health.
Create an invisible wall in Unity to prevent players from leaving the map by placing and scaling a 3D cube, then turning off its mesh renderer.
Replace the basic capsule with a player model from the Kenny Animated Character assets using a prefab in the scene, and apply overrides for proper animation.
Drive a Unity character's animations using an animator with grounded and speed parameters to transition idle, run, and jump, and sync them over the network with a Photon Animator View.
Hide the local player model in a first-person Unity multiplayer game by deactivating the visible 3D body for the local player using photon view checks, so others still see it.
Position weapons by using a gun point and an adjuster; parent guns to the hand and reset local position and rotation when the model is not under the photon view.
Synchronize weapon changes in a Unity multiplayer game using a set gun RPC to update all players' weapon models.
Implement Photon networking events in a Unity match manager to start and finish matches, and handle new matches by sending and receiving event data via on event callbacks.
Create a serializable player info class to track name, actor id, kills, and deaths; maintain a public players list and an event codes enum for network events.
Create a robust event framework in Unity to send and receive new player, list players, and update stats using photon event codes and a switch-based handler.
Send new player information to the master client when a player joins, packaging username and actor number into an object array and raising a reliable photon network event.
Receive new player data, build a player info object with correctly typed fields, add the player to the all players list, and broadcast to others via the master client.
Share the full player list with all clients by packaging each player's name, actor, kills, and deaths into a multi-piece object array and sending it over photon network.
The lecture shows updating player stats across the network using a match manager, by sending an actor id, a stat type, and an amount to change for kills or deaths.
Display kills and deaths on screen by updating UI labels in the canvas and wiring them to the UI controller. Use the all players list and index for accurate updates.
Learn how to create and program your very own online multiplayer game using Unity, an industry-standard game development program used by many large gaming studios and indie developers across the world.
In this course you won’t just be learning programming concepts, but tying these concepts to real game development uses. You will have access to a course forum where you can discuss the topics covered in the course as well as the next steps to take once the course is complete.
This course has been designed to be easily understandable to everyone, so whether you’re a complete beginner, an artist looking to expand their game development range or a programmer interested in understanding game design, this course will help you gain a greater understanding of development.
In the course we’ll create an online first-person competitive multiplayer game but the networking principles you learn will be applicable to any kind of online game you wish!
At the end of this course you will have developed the ability to understand such game elements as:
Full First Person character movement
Connecting to and managing networked games
Tracking networked players
Managing Multiple Multiplayer Maps
Creating a Leaderboard System
full audio systems
Interactive Menus
and much more...
Start learning today and let me help you become a game developer!