Maps
Two fields: Speedball, 34 × 50 m of turf and inflatables, and Woodland, a 64 × 96 m woodsball field with a fort, an abandoned outpost, a watchtower, a creek and forest trails. Both run on the same collision, bots and multiplayer server, and both open in the map editor.
01Woodland
Overview
Fort
Tower
Outpost
Creek| Size | 64 × 96 m inside a 4.5 m net, about 3.6× Speedball's area. Spawn to spawn is 88 m; 20–25 s at a run down any of the three trails. |
|---|---|
| Lanes | Centre: through the woods to the fort clearing. West: past the outpost (close range). East: the watchtower meadow and the creek (long sightlines from the tower, cover in the creek). Cross trails join the fort to the outpost and the tower. |
| Ranges | Close: inside the fort, the outpost, containers and shacks. Medium: the clearing around the fort, the woods. Long: from the tower over the meadow, along the trails. |
| Spawns | Each team starts behind two berms and a plank screen, with exits west, centre and east. Checked from every standing spot on the far half, the fort windows and the tower deck: nothing sees into a spawn. |
| Balance | Every object on blue's half is mirrored onto red's (z → −z), so both teams get the same distances (spawn → fort 44 m, → tower 46.6 m, → truck 49.9 m), cover and sightlines. Features on the centre line (fort, tower, truck, creek) are symmetric themselves. |
| Stairs | The watchtower's (and any Stairs object's) steps stop paint and sight, but you and the bots walk an invisible ramp through them, so climbing and coming down are smooth rather than a hop per step. |
| Bots | Bots route over a walking grid built from the map's collision: trails are cheap to walk, so longer moves follow them; doorways and gaps between walls are open, so routes go through the fort and outpost; cells beside walls cost a little more, so they don't scrape along them. The watchtower deck is a cover spot they reach by its stairs. In a 4-minute 4v4 bot match bots spend about half their moving time on trails (one in five before), 72% in Search & Destroy. Same routes in practice and online (src/sim/nav.js). |
| Built from | tools/maps/build-woodland.mjs writes public/maps/woodland.json from a readable layout. After that it's an ordinary map file: open it in the map editor and change anything (re-running the script would overwrite those edits). |
02Training range
Range| What it is | What Practice opens first: a blank grid-floor field (the grid helps judge distance), 96 × 120 m, with 20 player-shaped targets. You start on the firing line at one end, facing down range. No bots, no clock. |
|---|---|
| Lanes | Distance: targets at 10, 20, 30, 40 and 50 m. Long range: 60, 75, 90 and 102 m (arcing shots, or the Sniper). Moving: targets sliding side to side at 12, 22 and 34 m, faster each time. Lean: two tall bunkers, each with a target you can only hit by leaning out (one left, one right). Aim: a fan of six targets at different angles and heights to swing between. Every label is a plaque on the floor, so nothing stands in the way of a shot, and the targets in a lane are staggered so the near ones don't hide the far ones. |
| Targets | A map editor object (Gameplay › Training target): the size of a player's hitbox, on a hinge so it drops when hit and stands up again after 2.2 s; with Travel it slides on a rail at its Speed. Any map with targets is a training map: practice plays it without bots, and it stays out of online play (public rotation and private lobbies). Signs (Props › Sign: small, large or a floor plaque) label areas. |
| Built from | tools/maps/build-range.mjs writes public/maps/range.json; or open it in the map editor. |
03Choosing a map
Practice
Editor| Practice | Main menu › Play › Practice › pick a map. Direct link: /?practice=1&map=woodland. |
|---|---|
| Online | Private lobby › Map (host). Public matchmaking still plays Speedball. |
| Editor | File › Open › woodland. Hills, trails, ground patches, clearings and forests are ordinary objects in the asset browser. |
04Woodland's building blocks
Terrain
Hill objects (radius, height, flat top; scale for ridges, negative height for hollows) shape one heightfield. Players, bots, paint, sight checks and the server all use it.
Ground
Trail and Ground patch (mud, leaves, dirt, gravel) paint the ground material: grass, dirt, leaf litter and mud blended by a shader, plus thousands of instanced grass tufts. All four are photo-scanned PolyHaven textures with normal and roughness maps.
Forest
Forest scatters trees and bushes over an area from a seed, keeping off trails, clearings, buildings and spawns. It's the same on every computer and on the server, so trunks collide the same everywhere.
Structures
Plank walls (solid, window, doorway, half), posts, decks, stairs, the watchtower, shacks and shipping containers. Doorways and lintels collide correctly: you walk under a lintel, not through a wall.
Props & landmarks
Rocks, logs, stumps, barrels, crates, pallets, sandbags, the abandoned truck and the broken bridge.
Speedball untouched
Maps without terrain keep the old flat-ground physics exactly; a comparison of 20,000 random shots and moves found no differences.
05Performance
| Instancing | Every tree, bush, grass tuft and sandbag is one instanced draw per kind. The trees are Blender models with three levels of detail: full detail within 24 m of the camera, a 2k-triangle version further away and past the net, 0.8k in the deep woods (no shadows). Shadows are cast by the next level down. |
|---|---|
| Batching | Static map pieces sharing a material are merged per 24 m cell (one draw each, still culled by cell). The originals stay as invisible hit shapes, so paint lands exactly. |
| Shared materials | Bark, metal and sandbag textures are generated once and shared by every object. Rocks, fallen logs, stumps, bushes and grass are Blender models (tools/blender/nature.py) with baked textures. The planks and beams use weathered-wood PBR textures made in Blender (tools/blender/planks.py; see Models). |
| Result | About the same number of draw calls per frame as Speedball (≈530 vs ≈590) at ≈350k triangles. Fog hides the distance. |
06Next
Playtest feel
Tune the tower's strength, the creek route and the fort's windows after real matches (the checks so far are automated).
Golden hour
The art target's low warm sun and haze; Woodland currently uses midday light.
Public matches
Matchmaking plays Speedball only; map rotation or voting would bring Woodland online without a private lobby.