
We outline the decisions to make before you start coding in this quick introduction to the section, noting you can skip ahead if you prefer.
Draft the design brief for Godot Getaway, outline early decisions and multiplayer goals: 2–4 players, teams (cops and robbers), one host with clients via IP, Windows, Mac, Linux, single-player mode.
Define the core player experience with player experience design and ensure every choice from fast stylish cops and robbers action to an electro swing soundtrack reinforces that feeling.
Explore file formats and standards for Blender projects, weighing fbx, obj, and espn options. Use png for static images, ogg for sound effects, and wav for music, avoiding mp3.
Explore assets in a multiplayer-first Godot project, review 2D graphics, hdr skies, textures, fonts, music, SFX, and models, and organize folders by single concepts for scalable development.
Design and implement a multiplayer lobby in Godot with a host and join flow. Create a lobby form with name, IP address, loopback, and port, plus a waiting room.
Learn to create a network in Godot by running host and client instances that connect to server and exchange data, using a networked multiplayer node, the remote keyword, and APC.
Explore remote procedure calls in Godot, compare reliable and unreliable RPCs, and learn to target specific peers using remote, sync, and peer I.D. examples.
Create a save file in the Godot user folder by storing a player dictionary (name, car color, audio settings) as JSON, with a singleton for cross-scene access.
Populate the waiting room by saving player names and syncing a player list in Godot, using waiting lists and signals for hosting or joining with IP and port.
Learn how the Godot vehicle body extends rigid body to simulate ground vehicles, applying engine forces, braking, and steering, while coordinating with vehicle wheel nodes for suspension, traction, and drift.
Create a playable vehicle prototype in Godot, building a white-box level with CSG geometry and implementing an input-driven drive system using keyboard and controller.
Master vehicle wheel parameters and speed control to improve car handling in the Godot course. Tune suspension, radius, friction, and damping to balance grip, stability, and response.
This lecture demonstrates adding a remote player to a local game instance, spawning multiple cars, and handling lobby-to-world transitions with host-only start and IPC load world.
Demonstrates driving locally and remotely in a Godot scene by syncing host and client inputs, updating server state, and handling cameras, physics, and latency for a shared world.
Import blender-made measures into Godot, assemble the vehicle body with wheels, and set a simple collision shape while tuning suspension and wheel radius for testing in play.
Explore procedural generation to build a grid-based city layout with a recursive tree algorithm, placing tiles, walls, and clutter like traffic cones, cars, and billboards.
Set up the Godot grid map by importing Blender road pieces into a mesh library and arranging tiles on a 20 by 20 grid to enable collisions.
Learn to manipulate a grid map as a single object of x, y, z cells, fill it with tiles, and randomly populate the map at runtime—without procedural generation.
generate a perfect maze using a recursive backtracking algorithm in Godot, turning tiles into a grid map with walls removed to connect cells.
Implement a fill gaps function to close gaps in a grid-based road. It selects the correct tile (east-west or north-south) based on direction, creating a cleaner maze.
Erase walls to convert a maze-like grid map into a city-like layout by randomly removing a fraction of walls, constraining edge bounds, and tweaking spacing.
Import buildings and fix collision shapes, align pavement materials, and update the mesh library. Randomly place and rotate buildings on the grid, preserving road connections.
Rotate city buildings in the Godot course by randomizing each building's y-axis orientation from a set of rotations (0, 10, 16, 22).
Control skyscraper spawn by assigning a per-tile percentage in the grid map script. Rename tiles and update the mesh library to align the order with intended buildings.
Coordinate networked city generation by letting the host control map creation while clients generate identical maps using IPC calls and synchronized placement of map cells.
Pause the Godot game until all players are ready, track ready players locally on the host, and broadcast via a game state group with remote procedure calls to start together.
Design and implement a map border by building a surrounding CSG box wall, resizable to tile size and count, with collision enabled and synchronized across hosts.
Prepare props for the city by building a parked cars scene in Godot, including mesh instances, collision shapes, physics setup, unique materials, and placement for map generation.
Place parked cars on road tiles by building a road tile list from the grid map, selecting random positions, and spawning them with correct rotations.
Learn to create billboards in Godot using CSG combine, build a billboard system that randomly selects materials from a textures folder, and spawn multiple props with simple collision.
Learn to add traffic cone props to a city in Godot, decide on network tracking, spawn cones 10 seconds after hits, optimize collisions, and integrate 3D audio for immersive gameplay.
Explore how to create interactive fire hydrants in Godot by spawning water particles, detecting player contact, and applying a hydraulic push to the car for dramatic physics.
Add street lamps as separate objects in a grid map, configure omni lights with sodium-like color, range, and shadows, balancing performance by limiting lights and tweaking shadows.
Learn to add dumpsters as static props with collision, spawn logic, and ramp placement in Godot, and manage overlaps with cars, hydrants, and lamps on city tiles.
Create a modular scaffolding prop in Godot using rigid bodies and cylinder collisions. Implement multiple pipe sound effects with random playback on collision to avoid repetition.
Prepare neighborhoods by duplicating and recoloring existing building meshes, assign unique materials, and assemble them into a new mesh library and grid map to generate a colorful, procedurally varied city.
Split the city into four neighborhoods in Godot by assigning buildings to quadrants based on x and z coordinates, featuring factory, shops, and unique buildings.
Prepare the cafe scene in Godot by turning cafe table and cafe chair props into reusable objects, wiring 3d audio and timer signals, and adjusting origin and collision.
Track plaza tiles and building rotations to place cafes on designated tiles, then spawn cafe props with correct position and rotation in the grid map.
Drift a zeppelin across a procedural city by building a simple mesh prop, animating its movement with keyframes, and adding flashing red and green lights via emission spatial material.
Learn to implement team-based gameplay in Godot, with cops and robbers, asymmetrical roles, different cars, and networked lobby integration using collision layers.
Create a minimap using a second camera rendered through a viewport container, allowing multiple cameras and a zoom that scales with player speed, while handling layering and GUI layout.
Learn to implement grid references on a Godot mini map by updating a label with x and z coordinates using stepify to snap values for readable display.
Create beacons in godot to mark money pickups visible to criminals but hidden from cops; use a yellow csg cylinder that shrinks with a timer.
Create a currency system in Godot by modeling money pickups at beacons, updating a networked wallet, and displaying currency with a pulsing money label.
Develop a money delivery system in Godot by turning beacons into goals for a host–client gameplay loop. Enable networked money transfer, update cash, and spawn goals with an object spawner.
Spawn money on contact, letting either team pick it up to add to their current total. Cops cannot drop money and keep what they grab, while criminals may drop cash.
Learn to build an in-game announcements system in Godot that displays who delivered money and how much, with a fade-in label synchronized across all players.
Track crimes by announcing crime in progress and spawning a 3D arrow over the cop's head to mark the beacon location.
Create a cop siren mechanic in Godot Getaway. Build a siren node with red and blue lights, 3D doppler audio, and an input toggle for cops only to enable arrests.
Explore networking sirens in Godot by synchronizing siren state across players using remote procedure calls. Build a host-driven toggle and networked car horn playback for cops and criminals.
Build a floating player billboard in Godot that always faces the camera, showing the player's name and arrest meter using a separate viewport texture and 2D labels.
Set up a criminal detection area around the cop car, display arrest progress on a texture billboard, and allow arrests only when the siren is on, up to 750.
Implement win conditions for cops and criminals: criminals win by delivering money, cops win by arresting criminals or recovering money, update stash and recovered, and announce the winner.
Learn to spawn cops and criminals in a Godot game, coordinating arrests with frame-safe checks and separating spawn points using signals in the world script.
enable player customization with car color options and persistent audio and graphics settings, while building a 2d-3d lobby using godot's viewport, pivot, and art deco 3d elements.
Enhance the lobby by redesigning team selection with an item list UI, a pivot-tween animation, and signals to synchronize cop and criminal modes, plus theme and sound polish.
Create and apply a new spatial material for the lobby cars, control the albedo color in code, and add a color picker button to repaint cop and criminal cars.
Learn how to apply a brand new spatial material to a car in Godot, update its color from lobby choices, and sync that color across the network for all players.
Persist the selected paint color across play sessions in Godot by updating the save data, setting a default color, and applying the color through the color picker.
Add variable city sizes to the lobby with a themed option menu to resize the city. Host synchronizes city size to set the grid map width and height via network.
The video demonstrates how to repopulate city props in Godot by adding a prop multiplier variable in the network script and applying it to the object spawner.
Learn to implement map seeds in Godot, letting players enter a phrase to generate a deterministic map via string-to-integer hashing, with options for random maps or replaying a seed.
Import music assets, enable looping, and build a layered bassline that cycles four neighborhood tunes. Route each piece to its own music bus and auto-load the singleton scene.
Learn how to assign three music tracks to create four neighborhood soundscapes in Godot, enable auto play, and apply a phaser and other effects for distinct audio.
Define neighborhoods and switch music in real time by scripting camera-based position checks and using audio buses to mute or unmute in response to the player's location.
Learn to build a Godot volume control singleton that saves master, music, and SFX volumes and applies them across lobby and gameplay using audio buses.
Create a centered audio options popup in Godot with master, SFX, and music volume sliders configured to decibel ranges, toggled by Escape, and wired to update settings via signals.
Including code adapted from Bastiaan Olij's Youtube channel - https://www.youtube.com/channel/UCrbLJYzJjDf2p-vJC011lYw
Create a nighttime environment in Godot by adding a new environment with a panorama sky, importing textures, and adjusting ambient lighting and shadows; plan a daytime version with host selection.
Set up a day environment in Godot by configuring a panorama sky, ambient light, sun, and sky contribution, then manage group lights for day and night.
Host selects an environment in the lobby, propagates the choice to all players, and synchronizes time of day and lighting for a unified view.
Create a car exhaust particle system in Godot that reacts to speed, adjusting lifetime and emission via a speed-driven script, using a sphere mesh, transparent material, and simplex noise texture.
Explore how to apply distance fade to textures in Godot to reduce flickering on railings by tweaking the material's distance fade settings, using the minimum and maximum distance values.
Design a general in-game options menu in Godot, then build audio and video submenus using vbox, hbox, and center containers, texture rects, and a gooey default theme.
Place and connect options and video menus in lobby and world, wire button signals, and save and apply settings like reflections, fog, depth of field, and far distance in Godot.
Enhance the Godot Getaway lobby by implementing host vs client UI, neon player name, dynamic fonts, and environment presets, updating city name and color while wiring join and ready controls.
Explore Godot getaway, featuring Mikey's blender assets, a new 3-D city with glowing windows, cop and criminal cars, basic networking, and playful stunts.
Learn intermediate Godot techniques as we make an online multiplayer car game in a procedurally generated 3D city! We'll use GDScript to make a cops-and-robbers game set to a bouncy electro-swing soundtrack using custom made assets from Blender and Ardour.
In this course, we'll be focusing on making a single, large project rather than a bunch of smaller ones. Our focus will be as much on that game development pipeline as the techniques we'll be using, and we'll simulate what it takes to make a small scale indie game from scratch.
Some of the things we'll cover include;
Fast 3D gameplay
Online multiplayer using direct connection over IP
Team play (cops vs robbers)
A procedurally generated city
Creating city neighbourhoods
Procedurally placed props (like lamp posts, traffic cones, parked cars, etc)
VehicleBody physics
Beacons that respond to the music
Simple player customisation that’s persistent between plays
A 1930's inspired aesthetic
What's Godot?
Godot is a Free and Open Source game engine that we absolutely love. Yann has already taught a popular and well reviewed course on it on Udemy and both of us really enjoy working with it. It's available on Windows, Mac and Linux, has separate 2D and 3D pipelines and is generally awesome.
The course will be written in Godot's native GDScript, which is based on python. GDScript is a dynamic language that's powerful, versatile and quick to work in.