Files
tactical-shooter/docs/mapmaking/01-getting-started.md
T
shawn 34507f9043 docs: community mapmaking documentation (7-file SDK guide)
- docs/mapmaking/00-index.md — SDK overview with workflow diagram
- docs/mapmaking/01-getting-started.md — template setup & first map
- docs/mapmaking/02-building-geometry.md — CSG guide & prefab reference
- docs/mapmaking/03-lighting-and-env.md — LightmapGI baking guide
- docs/mapmaking/04-validation.md — validator CLI & CI/CD usage
- docs/mapmaking/05-packaging-and-shipping.md — .pck pipeline
- docs/mapmaking/06-faq-and-troubleshooting.md — 30+ common issues
- README.md — add mapmaking SDK link to features list
2026-07-01 18:47:06 -04:00

4.8 KiB
Raw Blame History

Getting Started — Your First Map

This guide walks you through setting up the map template project and creating a basic playable map.

Prerequisites

  • Godot 4.0 or later (any 4.x stable)
  • The Tactical Shooter repository cloned
  • Familiarity with Godot's editor (scene tree, inspector, 3D viewport)

1. Copy the Template

The template project lives at client/map_template/. Copy it somewhere outside the main project (or keep it adjacent — it's a standalone Godot project):

# From the tactical-shooter repository root
cp -r client/map_template/ maps/my_first_map/
cd maps/my_first_map/
mv template_map.tscn de_dust2.tscn

2. Open in Godot

Launch Godot and click Import (not Open). Navigate to your copied directory and select project.godot. The map template project will open.

Why "Import"? Because template is a standalone project with its own project.godot. You're importing a new project into the Godot project list, not opening a scene within an existing project.

3. Explore the Demo Scene

Open de_dust2.tscn (the renamed template_map.tscn). You'll see:

  • Floor: A green CSGBox3D pad (16×20 units)
  • Walls: Orange CSGBox3D walls forming a rough box
  • Spawn pads: Green (CT) and red (T) Marker3D spawn points
  • Bomb sites: Semi-transparent orange floor panels
  • Buy zones: Semi-transparent yellow trigger areas
  • Lighting: DirectionalLight3D (sun), OmniLight3D fill, LightmapGI
  • Environment: WorldEnvironment with sky

The scene also contains a template_map.gd editor tool script. When you open this scene, the Output panel (bottom dock) shows auto-validation results for the map structure.

4. Build Your First Room

  1. Select the floor — Click Floor in the scene tree
  2. Scale it — With the scale tool (R), drag the red/green/blue handles to resize the floor to roughly 12×16 units
  3. Add walls — Select Walls → right-click → Instantiate Child Scene → select assets/prefabs/map_bounds.tscn. Size them to enclose the floor
  4. Add a ceiling — Duplicate (Ctrl+D) the floor, move it up 4 units, set Operation to Union (0) so it acts as a solid ceiling

Tip: Use View → Perspective and rotate around to check your geometry from all angles. Walls should overlap slightly to prevent light leaks.

5. Place Spawn Points

Spawn points tell the game where players appear at round start.

CT Spawns:

  • Drag assets/prefabs/ct_spawn.tscn from the FileSystem dock into the scene
  • Position it on the floor at one end of the map
  • The green pad's +Z arrow shows the direction players face on spawn
  • Duplicate for 5 players (competitive standard)

T Spawns:

  • Same process with assets/prefabs/t_spawn.tscn (red pads)
  • Place at the opposite end of the map

6. Define Bomb Sites

A competitive defuse map needs two bomb sites, A and B.

  1. Drag assets/prefabs/bomb_site.tscn into the scene
  2. Rename it to BombsiteA
  3. Resize the CollisionShape3D to cover the intended site area
  4. In the Node dock → Groups tab, ensure it has:
    • bomb_site (required — game logic finds sites by this group)
    • bombsite_a (informational — helps identify which site)
  5. Repeat for BombsiteB with group bombsite_b

7. Add Buy Zones

Buy zones mark areas where players can purchase equipment.

  1. Drag assets/prefabs/buy_zone.tscn into the scene
  2. Place one at the CT spawn area (group buy_zone stays)
  3. Resize the yellow CollisionShape3D to cover the spawn room
  4. Duplicate for T spawn — add subgroup ct_buy or t_buy on each

8. Check the Editor Validator

Open the Output (bottom dock). The template_map.gd script runs automatically. You should see something like:

=== Map Template: Validate Scene ===
  + CT Spawn points (5 found)
  + T Spawn points (5 found)
  + Buy zones (2 found)
  + Bomb sites (2 found)
  + Cubemap capture origins (1 found)
  + Map boundary walls (8 found)
  + CSG Floor geometry (1 nodes)
  + CSG Wall geometry (4 walls)
  + LightmapGI configured ✓
  + LightmapGI: NOT YET BAKED
  + ReflectionProbe present
  + WorldEnvironment present
  + DirectionalLight3D (sun) present

The "NOT YET BAKED" warning is expected — you'll bake lighting after geometry is finalised (see Lighting guide).

9. Save and Package

When your map is ready for testing:

  1. Save the scene (Ctrl+S)
  2. Read the Validation guide for headless CI checks
  3. Read the Packaging guide to ship it

Next Steps