Heat - Third Person Shooter Multiplayer

"The alarm goes off, we get filthy rich... in coding skills". Let's make a multiplayer third person shooter, partially inspired by Heat (1995) and of course Payday, with a twist.

This series is a "from scratch" series. We will develop the entire game and write all scripts together in the video.


For cosmetic purposes, the series uses the following assets:
Polygon - Heist
Polygon - City Pack
Grunge UI Kit

Helpful assets I used in this series

ProGrids 2

*No promoted assets are used, I use them because I like them, your mileage may vary

Course Lessons
Course contains 34 lessons.
Course introduction

In the first part we are going to create a basic third person controller.

In the second part we will add the "shooter" part in the third person.

In this part we will make up for not having aiming animations by creating a procedural aiming system with IK.

This part we will create a system that will allow us to easily make weapons for our arsenal.

This part we play dress up!

In this part we are going to utilize events and scriptable objects to eliminate dependencies.

Following with our non dependent structure we did on the last part, we are going to do some Division's style HUD.

Utilizing a few scripts we made previously (and adding a few more) we can create the logic for our menu with minimum effort.

Let's create a few functions that will allow us to change scenes using events.

With our new style of handling "non-dependencies", let's see how simple it is to pass data from one scene to another.

As mentioned on the previous video, you had an assignment. In this one I'll go over on how I did it so you can compare with yours. Plus we're going to add a few scripts here and there for ease of use, however we are still relying heavily on scriptable object events. I forgot to cover the ResourcesManager.cs in the video, so take a look here https://pastebin.com/jFbi7RWt

In this part we will wrap the UI as far as the inventory and menus are concerned.

Let's fix a few issues with our controller while adding a few extra features.

In this part we add simple ballistics to our weapons and utilize an object pooler to get feedback on the. We also do a few general tweaks in our controller and architecture.

With this part we will add bullet hit detection, create a base for our AI and make it react when being shot, while also adding hit detection per limb etc.

In this part we are going to tweak our NPC reactions to make them more realistic while utilize the weapon manager as well to instantiate their weapons. Bonus, audio scriptables for handling our audio.

In this part we are going to automate populating our scriptable objects lists.

In this part we are adding the setup for the multiplayer part of the game using Photon networking

Let's add both our character and any character from clients in our own version of a lobby scene.

On this part we are going to dive deep into networking architecture, only one foot, the other one on the next part.

In this one we are going to give control of the controller to the player when we are inside the actual multiplayer match. Also, a few changes on our main menu logic concerning Solo play.

For this part we are going to start syncing the controller when we are inside the game while filtering it out when we are inside the game lobby.

In this part we conclude syncing our match state across clients.

In this part we sync the entire controller over the network

In this part we stop being civil with our clients and start shooting.

So™... there is life after death!

In this lesson we are going to see how to sync a timer across everybody playing the same game.

In this part we are going to fix our multiplayer loop.

Let's see how to make a basic FOV for our enemy and some rudimentary shooting.

In this part we are going to see how to handle multiple AI agent behaviors and switching between them with a drop of the mouse.

In this part we are going to make a cowardly AI that goes to cover.

In this part we are going to make a rudimentary director for managing our AI.

Let's fix a few issues we had pending from our last couple of videos.