Tutorial: Building a Multiplayer FPS in Unity 3d

Heya Folks!

I’m publishing a tutorial on how to build a multiplayer first-person shooter in Unity 3d. 10 episodes are already live, and several more should be available by the end of this week.

Watch the first episode here: http://youtu.be/AIgwZK151-A

What is covered:

  • Building a level in Blender 3d
  • Texturing and UV Mapping
  • First-person character controller
  • Photon Unity Networking, Cloud-based servers
  • Matchmaking, room-creation, and joining
  • Syncing character positions across the network
  • Mecanim-based character animation (Running, Strafing, Jumping)
  • Shooting, Taking Damage, and Dying
  • Using RPC calls to broadcast events across the network

Coming soon:

  • Health Armor Pickups
  • Moving platforms and elevators
  • Teleporters
  • Three basic weapon types: Sniper Rifle, Machine Gun, Rocket Launcher
  • Multiple game modes: Deathmatch, Team Deathmatch, Capture the Flag
  • AI bot programming basics (Pathfind around the map, grab pickups, shoot enemies.)
  • Sounds (Including techniques for generating good sound effects using free tools)
  • Explosions! Projectiles! Particle effects!

You can download all the project files from this site:

http://quill18.com/unity_tutorials/

If you have any questions, you can post here, comment on the videos, or email me at quill18@quill18.com

– quill18

1 Like

Sweet, thanks man! I see lots of your tutorial videos that I want to check out already. :wink:

Ever since I discovered twitch and Quill18 at LD26, “Heya Folks” has become my favourite sentence, it’s tutorial time!

The FPS-GOTY (Shoot!) and Multiplayer Space tutorial taught me enough to make my own coop shooter (with my own rigidbody character controller), so thank you once again Quill18.

Currently watching video 4, I thought I would bring to your attention a problem I found when using offline mode. One cannot use hashtables (which again was awesome to learn about). Now, I code in uJS, so maybe the problem is only there for me (as well as having to specifically reconfigure my PUN folders locations) but I thought it was worth bringing to your attention.

Thanks for all the great videos and knowledge, you have really helped me a lot (as a mentor and inspiration). All the Best, Jay.

Edit : Video 5, this is the issue I have using uJS and C# in the same project (I know, just use C# man! I can read both so one day…) : Special Folders and Script Compilation Order ; though I thought your method of finding uJS scripts was genius. Groovy!

Nice one! The Unity networking is severely lacking from good tutorials.

As far as I can see, they are using PUN and not Unity’s networking

If that can be mixed up, we accomplished our mission for sure :slight_smile:

quill18: Cool to see you continue your tutorial sessions. Nice work as always!

I was soooo excited until the thing “we will use photon” I know you don’t have to but, I really want to use what unity gives, nothing else,is there any way you can show us how to use regular networking with the unity stuff and build a masterserver on windows (or what ever you use), then connect to master server, and make it so external peeps connect to me?

Otherwise, great tutorials

True :smile:

Hi applejuices,
If you want to use only what Unity gives, this maybe will help you. But it’s about Linux masterserver only.

@quill18,

This is such a great series, thanks very much for putting it out there. Highly recommended to anyone just because it’s enjoyable to watch, but I do like how it’s tailored to the beginner.

@Siddown – Thanks!

Plus I sucked so badly at that map in the original UT. :slight_smile:

@Nasta,
WHat the videos? anyways That will help, but what about using normal unities stuff then hooking it up to master server that I have on my own comp?

@Quill18,

I assume using a Terrain instead of the model and the Third Person Controller instead of the FPS Controller will work just the same, right? (Well, probably not the shooting since that might be a bit different anyway, but the movement, passing animations, etc.)

Yup! It should be almost exactly the same.

hi

@quill18,

Hey Quill, I just wanted your take on something.

So I took your tutorial and changed it up a bit to use a third party controller, and so far that is working pretty well (I’m having a few problems with the mouse turn not working when there are two players, but nothing I can’t figure out).

I want to keep the game peer to peer for now (so no server), because it’s just a fun little game at the moment. What I want to do down the road is spawn some NPCs, simplified bots for example (that move and attack players). I would assume that in this case we’d want to run those on the Master Client, right? I just can’t see it working otherwise, especially when it comes to what client figures out the AI/Movement.

But what about if a player has a minion/pet/companion/nuclear powered were-Llama? In that case, wouldn’t I want the individual player to be “in charge” of that, or would you also do that from the master client?

Thanks in advance.

hey quill when do you think you will finish the tutorials?

good stuff, keep em coming.

was wondering how you managing this part:
–Matchmaking, room-creation, and joining –

have you already covered this spec of the tut?

are you going to base the matchmaking in relation of the players advancement ie: level or skills etc… to keep an even battle?

any plans for when releasing this video tut. i am interested how you going to tackle this feature.

regards

hell yeea i am waiting new modes thanks for tutorials