Introduction

This is a two-team deathmatch 3rd-person shooting game.

We are going to learn how to create this type of multiplayer game using Roblox Studio.

This is a intermediate/advance level project, so it will take some time for you to finish it!

 (Click here for the scripts!)

Let’s take a look at the following video gameplay:

 

Game Items (Visible)

These are the VISIBLE things in a game, something we can see visually:

1. Workspace: the place we put our physical objects, for example, walls, in-game lights, boxes, our scoreboard, spawnLocations etc.

2. Lighting: the environmental light that controls the whole game lighting.

3. StarterGui: the place we put our game UI. We are not using it in this tutorial.

4. StarterPack: the backpack that every new joining player will be given. As shown in this example on the left, one “Blaster” is under the StarterPack folder, meaning each new joining player will be given a blaster when the game, or when the player is respawned.

Game Settings/Scripts (Invisible)

These are the INVISIBLE things in a game, something we cannot see directly. These are usually represented as settings and scripts:

1. Player: Each joining player’s information, including their teams, their backpack inventory, etc.

2. ReplicatedStorage: A place to store events. We will talk about more in events later on.

3. ServerScriptService: A place to put our server scripts. We explain more below.

4. StarterPlayer: A place to put our client scripts. Again we will explain that in the following sections.

5. Teams: A place to have our team settings. In our game there will be 2 teams blue and red team.

STEP1: Create the Terrain

The size of the Terrain should be (600, 200, 400). Feel free to create your own terrain with a similar size:

STEP2: Create the SpawnLocations

Each team (Red and Blue) will have their own SpawnLocation. Create one for each of them:

Red team spawn location name: red

Size: (30, 20, 200)

Position: (-280, 30, 0)

Transparency: 0.8

BrickColor: Maroon

Anchored: true

CanCollide, CanQuery, CanTouch: false

TeamColor: Maroon

Blue team spawn location name: blue

Size: (30, 20, 200)

Position: (280, 30, 0)

Transparency: 0.8

BrickColor: Navy blue

Anchored: true

CanCollide, CanQuery, CanTouch: false

TeamColor: Navy blue

STEP3: Create Walls

We need two walls for each team:

Each wall size: (4, 50, 70)

BrickColor: Maroon/Navy blue

Anchored: true

Walls file location: game.Workspace.Objects.Walls

STEP4: Create base lights

Each base light size: (4, 1, 2)

BrickColor: Institutional white

Material: Neon

Anchored: true

baseLight file location: game.Workspace.Objects.Light

STEP5: Create Score Board (surfaceGUI)

Let’s talk about what a GUI is!

GUI stands for Graphic User Interface.

We see many GUI example in our daily life:

A GUI helps us to use our devices much easier! We can control the program more visually.

Without any GUI, the example above would look similar to this:

That’s why we need GUI in our lives, to control program in a more visual way.

In this game we have one GUI: the Score board. It will show each team’s point as the game goes:

And here are the properties of the score board:

Part (ScoreBoard)

SurfaceGUI (ScoreboardGui)

Text (blueScore)

Text (redScore)

STEP6: Create the Blaster

Next we will create the gun for players!

We have taken care a big part of the visible items in game! Let’s move on to Part II for the fun part – scripting!