
Create a dedicated server multiplayer shooter in Godot 4 with 4v4 matches, pistol, SMG, shotgun, grenades, and pickups, and learn semi-static typing in Gdscript to boost autocompletion.
Discover how to set up Godot 4, import a starter project, and explore a basic multiplayer shooter framework with a main menu, 3D map, server setup, and player controls.
Create a dedicated server project in Godot 4, enable autoload, and configure port 7777 and max 64 clients; then connect the client to the server and verify connections.
Implement lobbies on a godot 4 server by creating lobby nodes under the server, each with maps and players. Manage idle and non-full lobbies; connect clients to lobbies via rpc.
Expose and synchronize lobby status in Godot 4 by implementing server RPCs, client signals, and a main menu quick play UI that shows connection state, lobby occupancy, and cancellation.
Learn to implement a cancel quick play search feature in a Godot 4 dedicated server multiplayer shooter, including UI cancel button, RPC call, and lobby management.
Fix overlapping lobbies by stacking lobby nodes every 100 meters along the y-axis on a Godot 4 server, using a spots array of nulls to assign and free positions.
Coordinate a server-driven lobby and client lobbies to start a map-loaded multiplayer match simultaneously in Godot 4, including status management, rpc calls, and ready syncing.
Create a local game scene manager in the client to load the main menu first, then switch to the main game, clearing scenes and syncing map loading with the lobby.
Coordinate a synchronized match start in Godot 4 by signaling map readiness via RPC, freezing players until all clients are ready, then unfreezing and beginning the match.
Create client-side spawn points with a visible arrow, then duplicate to the server, batch rename with blue and red prefixes for teams.
Migrate a dedicated server map in Godot 4, keep collisions and spawn points, remove meshes and scripts, group spawn points, and update lobby to load and instantiate the server map.
Create a remote player from the local player scene, then spawn server and client players at blue and red spawn points with randomized team assignment using RPC.
Synchronize remote player movement by sharing each client’s position and rotation with the server, updating a world state dictionary, and rendering other players in real time.
Synchronize remote player animations across clients in a Godot 4 dedicated server multiplayer shooter, animating idle, jump idle, walk shoot, and run shoot with smooth blending and state-driven playback.
Assign remote player colors by team in Godot 4, using blue or red materials on helmet and body surfaces, and randomize skin tones from a preloaded material array, non-networked.
Implement remote player look controls in a Godot 4 dedicated server multiplayer shooter by rotating neck, torso, abdomen, and upper arm through animation overrides and a reset animation.
Master movement interpolation in a Godot 4 multiplayer shooter by learning to buffer world states, interpolate between frames, and offset rendering to smooth out latency.
Sync server and client clocks every second using a clock sync timer and RPCs to compute a clock deviation, then smooth with lerp to keep interpolation stable.
Add a name input in the main menu, save and send the display name to the server. Display remote names with a label 3d name tag.
Create a weapon selection UI in a Godot 4 multiplayer shooter, enabling pistol, shotgun, and SMG, syncing choices via lobby RPCs and auto-selecting after five seconds.
Create a weapon template with muzzle flash and light, instantiate pistol, SMG, and shotgun for remote and local players, and adjust weapon holder scale and camera distance for first-person view.
Implement local and remote weapon shooting in a dedicated server multiplayer shooter in Godot 4, including rate of fire, cooldowns, shading effects, and local and remote shoot visuals.
Register hits by sending a timestamp to the server and moving real and dummy players to their positions at that moment. Check whether the shot hits hitboxes via raycast.
The server computes shot results and broadcasts bullet hit effects to clients, using environment decals and red particles for player hits, with a coordinate fix for multi-lobby spawns.
Define a weapon config in a Godot 4 server project for pistol, SMG, and shotgun data. Implement a static get_weapon_data and a hit-accuracy loop using random rotations.
Implement a server-side health system that tracks max and current health, updates health across clients via RPCs, triggers death at zero, and displays per-player health bars with a gradient.
Implement distance-based damage falloff in the server project by calculating a multiplier from 10 to 20 meters, capping at 0.4 beyond 20 meters, and applying it to base damage.
Create health and grenade pickups in a Godot 4 multiplayer shooter using an area 3D, a cooldown timer, and lobby-based spawn. Synchronize with RPC and update player health on pickup.
Implement player death and respawning in a dedicated Godot 4 server shooter. Manage death handling, respawn timing, spawn points, and client-server RPCs with camera transitions.
Track kills and deaths in Godot 4, update blue and red team scores via RPC, and display them in the match info UI for all clients.
Implement a 5-minute match timer on a Godot 4 dedicated server, updating clients via RPC and displaying minutes and seconds in a dynamic in-game UI.
End the match when the timer ends or a team reaches the win score, update the lobby to finished, notify players via RPC, and return to the main menu.
Implement grenades in a dedicated server multiplayer shooter: each player starts with two, can throw them with Q, displayed in the HUD, with explosions and damage handling.
Develop a grenade explosion effect in Godot 4 by building a 3d explosion scene with gpu particles, dust and spark particles, and color and alpha animations.
Create grenade warning prompts in the hud that display a red grenade icon near you and show its rotation using a grenade detection area 3D to track nearby grenades.
Rename grenade scripts to pickup variants, implement server and client logic for grenade pickups, update player grenades left via rpc, and spawn grenade pickups to test gameplay.
implement a camera shake component in Godot 4 to produce screen shake on damage and shooting using impulse, noise, and max strength.
Add a health-change mask in the HUD that turns red as damage increases, driven by a health scalar and the update_mask function.
Implement local audio in the Godot 4 multiplayer shooter by creating an audio manager, setting up music and sfx buses, and playing ui clicks and pickups with dynamic sfx objects.
Implement spatial audio in a Godot 4 multiplayer shooter, adding 3D sound for pistol, SMG, shotgun, footsteps, jumps, grenade throw and explode with positional data and pitch variation.
Implement a global settings manager and a pause menu in Godot 4, enabling audio mute and full screen, with a settings widget integrated into the main menu and pause screen.
Implement elimination texts in the Godot 4 shooter, showing who killed whom in the top-right HUD and in the center screen, with color-coded names and a timed vanish.
Implement robust exit handling in a Godot 4 dedicated server multiplayer shooter by removing quitting players from the server and all clients, updating lobby state, and notifying remaining players.
Refactor the Godot 4 server lobby to handle client exits during readiness by caching callbacks and a waiting flag, then end the match when a team empties.
In the final touches, disable grenade friendly fire on the server by checking thrower and target teams, preventing self and teammate damage, and prepare eliminated death effects.
Learn how to set up port forwarding on your router to run a Godot server on a local machine and connect from anywhere using the server's public IP.
Master the basics of networking in Godot to build a multiplayer first-person shooter with a dedicated server. Develop further and share progress for courses like open-world RPG or horror games.
Upd: Works in Godot 4.5!
Welcome to the Dedicated Server Multiplayer First Person Shooter course.
In this course, you'll learn how to build your very own multiplayer game using a dedicated server and client architecture, focusing on a casual 4v4 first-person shooter format.
This is an intermediate-level course, so while I recommend you have a basic understanding of Godot, nodes, and GDScript, I'll guide you step-by-step through everything else you need to know.
Here's what you’ll master by the end:
-Setting up a dedicated server and connecting clients
-Creating efficient communication between server and clients
-Hosting servers and configuring port forwarding
-Implementing matchmaking and multiple lobbies per server
-Applying networked interpolation, lag compensation for smoother gameplay
-Building a weapon system, including pistol, SMG, and shotgun, with raycasts
-Adding throwable grenades and explosions
-Health and damage systems
-Enhancing the experience with dynamic visual effects
-Designing a scoreboard
-Integrating 2D elements within a 3D environment
-Creating networked audio
-And much more!
By the end of this course, you’ll be equipped to either create your own multiplayer game or expand on the project we develop together. I'm excited to publish a new course with a new topic. If you're interested in singleplayer survival games, check my other course!
See you in the course!