Godot Game Basis · Game 2

3D RPG.Online. Yours.

Build the foundation of a co-op 3D RPG: a world that loads the same on every machine, characters that are data files rather than code, a first/third-person camera rig that behaves, and real ENet networking — host or join, pick a character, and run around a shared world together. Every lesson is one step of a project that already runs.

24 lessons
24 hours
7 stages
7 written

Before you start

Prerequisite: Core Level 3 for the 3D half, and Level 4 §A–D before the networking chapters (16–21).

Every lesson is one step of a project that runs at the end of it. Each one has Basic — the guided build — then asks for it back in Challenge 1, 2 and 3, with an open-ended Extra for anyone who wants to push further. Where a lesson needs the bigger picture first, an Introduction comes before Basic, with videos and sites to explore.

Lesson 1 plans the whole RPG — accounts, stats, skills, inventory, upgrades, mobs and bosses. Lessons 2–24 then build the foundation underneath it: the world, the characters, the camera, the screens and the connection. The hooks for the rest are already here — CharacterData carries max_health and attack_damage, the attack action is bound, and physics layer 3 is reserved for enemies. Plan the whole thing; build it in order.

Game Basis · Game 2

3D RPG — Online Multiplayer

Build the foundation of a co-op 3D RPG: a world that loads the same on every machine, characters that are data files rather than code, a first/third-person camera rig that behaves, and real ENet networking — host or join, pick a character, and run around a shared world together. Every lesson is one step of a project that already runs.

24 lessons24 hoursAges 12–16
A · The shape of a multiplayer RPG
GD-G2-01

What You Are Building: The 3D RPG Plan

What an online multiplayer RPG is, with videos and sites to explore — then the full game plan, and your first character and mob models.

GD-G2-02

Project Setup: Godot 4.4, Folders & the Input Map

A clean project, the folder layout every later lesson expects, and the eight input actions the game reads.

GD-G2-03

The Root Scene That Never Unloads

Build main.tscn — World, MapRoot, Players, the MultiplayerSpawner and a CanvasLayer for the UI.

B · Characters are data
GD-G2-04

CharacterData: A Character Is a Resource

A custom Resource with class_name, export groups, and the one field that travels over the wire.

GD-G2-05

GameState: Finding Characters by Scanning a Folder

An autoload that reads the character folder at runtime — sorted, and safe in an exported build.

GD-G2-06

Importing Your Own Character Model

glTF into the project, the Advanced Import dialog, and pointing a character resource at your model.

GD-G2-07

Scale, Footing & Facing the Right Way

model_scale, model_offset, head_height — and the two different reasons a model faces backwards.

C · The player and the camera rig
GD-G2-08

CharacterBody3D, the Capsule & Collision Layers

The player scene: a 1.8 m capsule, layer 2, and why players do not collide with each other.

GD-G2-09

The Camera Rig That Never Swings

top_level = true, placed by hand every frame — the one trick that stops a third-person camera turning your stomach.

GD-G2-10

First Person, Third Person & the Shadow Trick

One rig, two modes, and hiding your own model as shadows-only so you still cast a shadow.

GD-G2-11

Camera-Relative Movement, Sprint & Jump

Input.get_vector, a yaw basis, acceleration, gravity and move_and_slide.

GD-G2-12

Animations from the Model's AnimationPlayer

An animation state enum, a defensive name lookup, and why a wrong clip name must never crash.

D · The three screens
GD-G2-13

The Main Menu: Name, Address & Signals

Containers, scene-unique % names, and a screen that raises signals instead of knowing about networking.

GD-G2-14

Character Select with Live 3D Preview Cards

A SubViewport per card with own_world_3d, its own light, and a pivot that spins the chosen character faster.

GD-G2-15

The HUD, the Pause Menu & the Captured Mouse

Finding the local player by group, a crosshair, and the Esc/click pair that captures and releases the mouse.

E · Going online
GD-G2-16

ENet, Peers & the NetworkManager

An autoload that owns the peer and the roster, knows nothing about the 3D world, and only emits signals.

GD-G2-17

The Handshake: Registering & the Roster

@rpc("any_peer") versus @rpc("authority"), validating everything a client sends, and the order that must not change.

GD-G2-18

MultiplayerSpawner & the Spawn Function

One spawn function that runs on every peer, deterministic node names, and plain data only.

GD-G2-19

Authority, the Synchronizer & Smoothing Remote Players

Who simulates whom, what the synchronizer replicates, and chasing a target instead of snapping to it.

GD-G2-20

Testing Two Players on One Machine

Multi-run, the quick-connect command-line flags, and a headless server you can read like a log.

GD-G2-21

Playing with a Friend: LAN, Ports & a Headless Server

LAN addresses, UDP 7777, the firewall prompt, and what to do instead of touching the router.

F · Your own world
GD-G2-22

Designing Your Own Map

Seeded generation versus a hand-built scene, three ways to build geometry, and the one-method map contract.

GD-G2-23

Map Selection: The Host Chooses

A MapData resource, carrying the choice in the handshake, and making the client wait for it.

Showcase
GD-G2-24

Showcase: Your Online RPG

Two players, your own characters, your own map — recorded, written up and shown.