Zee's Hide n Seek Maps
Some maps for my Hide n Seek server.
The maps for game-hide-n-seek: a block of flats with a roof and a fire escape, a warehouse on the quay, a manor with a hedge maze, a village, a park, a school, a shopping mall, a ship, a castle, a summer camp and a museum. Eleven maps, plus the practice house built into the game.
Every map is a JSON document, not a scene. A server reads the documents in its map directory and sends the one it is playing to every client when the map changes, so players need no map files at all and a new map is one file dropped into a directory. maps/README.md is the format.
Using it
dot-bootstrap clones this repository next to game-hide-n-seek and links it into the game as maps/, so ./game.sh in game-hide-n-seek plays these maps with nothing else to do. On a server they are delivered as a pack of their own (hideseek_maps), which game-hide-n-seek's ./game.sh online and ./game.sh server build for you.
The maps
Every map has a way round (a chase that reaches a dead end is over), somewhere up, somewhere a seeker has to crouch to look into, and doors: every room, cupboard, stall, gate and container has one you open and shut with E, and somewhere on each map is a panel of wall that slides.
| Map | What it is |
|---|---|
hs_apartments (Larkspur Court) |
Three floors of flats joined by a switchback stairwell that goes on up to the roof, a fire escape down the west side into the alley, a back yard with a bike shelter, a corner shop with a back room, and a street of parked cars to crouch behind. A front door, a bedroom door and a bathroom door to every flat, fire doors onto the escape, and on the top floor a loose panel between two bedrooms |
hs_warehouse (Dockside Warehouse) |
Four rows of racks whose bottom shelves you can crawl into, a maze of crate stacks, a mezzanine office up a flight of stairs, and a container yard on the quay at dusk, where every open container has a pair of doors to shut yourself in with and one has steps to its roof. Roller shutters on the loading bays. The quay's edge is a fall into the harbour |
hs_manor (Hollowmere Manor) |
A two-storey house with a grand stair and a gallery round the hall, eight rooms with doors, a cupboard under the stair that only a sliding panel gets you into, a hedge maze to the west, and a garden with a greenhouse, a gazebo and a shed |
hs_village (Thistle Green) |
Six cottages round a square with a fountain and market stalls, each with a front door, a back door and a garden gate, a barn with a hayloft whose doors open over the drop, a meeting hall with a hollow stage you get under through a loose board, and a pond with a bridge you can crouch under |
hs_school (Brookside School) |
Two storeys of classrooms off one corridor lined with lockers, with a switchback stairwell at each end (so a chase on one floor goes round by the other), a cafeteria and kitchen, toilets with stall doors on both floors, a gym as tall as the building with hollow bleachers, a storeroom behind a shutter and a balcony reached from the top corridor or a stair from the floor, a library whose archive is behind a sliding panel, and outside a portable classroom on blocks with a crawl space under it, a bike shed and a playing field |
hs_mall (Galleria Mall) |
Two floors of twelve shops each round a glass-roofed atrium with two stairs and two bridges across it; shops behind roller shutters (two of them down) and glass doors, with changing rooms, shelves and counters; a food court and a supermarket below, a cinema with hollow tiered seats and a furniture showroom above; service corridors behind every shop's back door with a stair at each end; the projection booth behind a panel of the cinema's back wall; a car park and a loading dock |
hs_ship (The Marigold) |
A ship moored at a quay, four decks: an engine room of machinery with a crawl tunnel and the steering-gear room behind a sliding panel in its after bulkhead; a deck of cabins off one long corridor; the dining room, lounge and lobbies with promenades down both sides; the sun deck with a pool, open lifeboats you can crouch in, the funnel and the bridge, with a stair to its roof. Two switchback stairwells run from the engine room to the sun deck, and stairs come down at both ends. Two gangways from the quay; over the side is the harbour, and a catch |
hs_castle (Ravenhold Castle) |
A curtain wall with a walk along its top and merlons, a tower at each corner with a switchback inside from the courtyard to the walk and the top, stairs up the inside of two walls, a gatehouse with gates and a portcullis over a moat (shallow: steps lead out of it) and a postern in the north wall; a keep of three floors (great hall and kitchen, lord's chamber and library, barracks, and its roof) over a dungeon of barred cells; stables with half-height stall gates, a smithy and a well. A panel of loose stones in the dungeon's guard room opens on a tunnel under the courtyard that comes up through the floor of the stables' tack room |
hs_camp (Pinehollow Camp) |
A summer camp in the woods by a lake: four cabins on blocks (a crawl space under each) with bunk beds, a mess hall with its kitchen, outhouses, tents round a campfire, a fire lookout with a switchback in an open frame up to a cabin twelve metres up, a treehouse with a hut and a rope bridge to a second platform, a dock with two rowing boats and a boathouse with doors on the water, an archery range, and a cave of passages in the hillside with a crawl-in back way and a chamber behind a rock that slides |
hs_museum (Halden Museum) |
Two tall storeys round a rotunda with a skylight and a whale's skeleton hung in it, grand stairs either side of the entrance hall up to a gallery that rings it; below, a dinosaur on a plinth whose ribs stand high enough to crouch under, a stepped pyramid with a crawl tunnel through its base and a tomb with a stone door, an art gallery that is a maze of partitions, a cafe and a gift shop, a security office and a loading store with a shutter; above, an armour hall of glass cases, a space gallery with a rocket and a capsule with a hatch, a hall of clothes on stands with changing rooms, a conservation lab, and a library whose vault is behind a panel of its wall |
hs_park (Pinecrest Park) |
A playground of towers, a rope bridge and play tubes you crawl through, a picnic shelter, the toilets with a door on every stall and loose tiles between the two sides, a fenced tennis court with a gate, a pond with a footbridge, a ranger's cabin and the woods all round |
hs_apartment (Apartment) |
A small flat imported from a Source map (see Credits): a hall, kitchen, living room and bedrooms of Kenney's prototype grid, doors you open, and 40 pieces of furniture to crouch behind. |
hs_frontyard (Front Yard) |
A suburban house and its front yard, imported from a Source map (see Credits): a lawn with a hedge, fences and a shed to hide behind, and a house whose doors open and shut. |
hs_hotel (Hotel) |
A small hotel imported from a Source map (see Credits), built 1.4 times its real size: a lobby, corridors and guest rooms of Kenney's prototype grid, one door you open, and 120 pieces of furniture to crouch behind. |
hs_restaurant (Restaurant) |
A hotel-and-restaurant concept imported from a Workshop map (see Credits): a glass-roofed atrium hall with a gallery round it, a sunken pond court, a canteen, guest rooms upstairs, an office floor underground, doors that slide into their walls, and 40 pieces of furniture to crouch behind. |
How they are made
tools/build_maps.py writes every document in maps/. A wall with its doors (and the panels in them) and windows, a room with its floor, ceiling and lights, a flight of stairs, a crawl space and a whole hedge maze are one call each, and every prop is placed by where it stands.
python3 tools/build_maps.py # rewrite maps/*.json
python3 tools/build_maps.py --check # exit 1 if a file differs from what the builder writes
python3 tools/build_maps.py --sync-sizes # copy prop sizes from ../game-hide-n-seek after it measures new models
The JSON is still what the game reads and is committed; CI runs --check, so a hand edit to a built document is caught instead of being lost on the next build. Hand-written documents the builder does not produce are fine too: anything in maps/ with a .json extension is loaded.
The builder moves any spawn that a prop or a wall was put on top of to the nearest clear spot and says so. Every map is then checked by game-hide-n-seek's examples/headless_maps.tscn (it fits on the wire, every prop is one the game knows, every spawn has a floor and room for a person, no prop is sunk into a wall, every prop stands on something, there is enough to hide behind, every door swings into free space and every doorway is clear), and its stairs and crawl spaces are walked by examples/headless_climb.tscn.
Imported maps and credits
tools/import_bsp.py converts a Source 1 .bsp into a document here (brushes become boxes, props become catalogue props, prop_door_rotating becomes a real door, player starts become seeker and hider spawns; art is replaced with the game's CC0 Kenney props). Imported documents are not written by build_maps.py; rerun the importer with the original .bsp. Flags: --style, --slide-doors, --scale=k, --drop-door=x,z, --cover=N, --drop-kind=<id>, --thin=<id>:N.
| Map | Original | Author | Source |
|---|---|---|---|
hs_apartment |
ph_apartment | Tib | https://gamebanana.com/mods/61479 |
hs_frontyard |
ph_frontyard | axoh | https://gamebanana.com/mods/398632 |
hs_hotel |
ph_hotel | 1Vodker1 | https://gamebanana.com/mods/61495 |
hs_restaurant |
ph_restaurant_os | Wolvindra Vinzuerio | https://steamcommunity.com/sharedfiles/filedetails/?id=3270930065 |
The author's licence note: "do whatever idc just dont say this terrible map is urs". We credit the author in the map's author and source fields and will remove the map on request.
hs_apartment (ph_apartment by Tib, https://gamebanana.com/mods/61479) is Creative Commons Attribution-NonCommercial-NoDerivs 4.0; credit, a link and removal on request is the arrangement, this map is removed on request by the author. Every texture and model is replaced by the game's own CC0 stand-ins. It is in the pack but not banded in headless_bots (HS_BOTS_MAPS): a flat 16 by 15 m is small for the bands. Its best setting (--cover=40 --cover-gap=1.5 --cover-clear=1.0 --cover-seed=11, which the document is built with) gives hiders a mean of 112 s and 11 of 24 won, 26% never found, but 89 of 140 hiders walk the 8 m (band 112), somebody is caught in the first 3 s of a seek in some rounds, and a stand-in lingers 11.8 s beside a door panel (band 9). Moving the seekers or hiders (--seekers-at, --hiders-at, --hiders-far, --cover-away) only cost the win rate.
hs_restaurant (ph_restaurant_os, "PROP HUNT Side Hotel: Early Little Restaurant Concept", by Wolvindra Vinzuerio, https://steamcommunity.com/sharedfiles/filedetails/?id=3270930065): the Workshop page states no licence and nothing forbids porting or sharing; credit, a link and removal on request is the arrangement, this map is removed on request by the author. Every texture and model is replaced by the game's own CC0 stand-ins. Imported with --cover=40 --anchor=15 --slide-doors --terrain (and --clear for the props the terrain buried): the author's first start is a stray in the basement office, so --anchor picks a ground-floor start on the east side as the seekers' lobby; the 96 hider starts are thinned to 60 and the 234 lights to 128, the most a document takes. It is in the pack but banded in headless_bots (the default maps): 24 rounds at medium, the hiders winning 8 and 17% of hiders never found, 18 of 18 checks. Getting there took three things that are not the importer's: the basement was reachable by no stair (hiders spawned in it, and three seekers spent a round pressed against the floor over it), so those hider starts were dropped and the bots now choose only places a seeker can walk to; the door frames' 7 cm posts and seven of the doors left a doorway too narrow for the bots' mesh, so those were removed or dropped (the doorways stay open); and seeker_pace 0.25 (the game's is 0.28) because a single seeker found every hider in a building this size otherwise. These edits were made to the document by hand (the import command was not kept); a re-import loses them.
hs_hotel (ph_hotel by 1Vodker1, https://gamebanana.com/mods/61495) is Creative Commons Attribution-NonCommercial-NoDerivs 4.0; credit, a link and removal on request is the arrangement, this map is removed on request by the author. Every texture and model is replaced by the game's own CC0 stand-ins. Imported with --scale=1.4 --cover=120 --cover-gap=1.5 --cover-clear=1.2 --lobby=14,2.5 --cover-away=16,8 --slide-doors --seekers-at=-12,-14 --cover-seed=3 --field=seeker_pace=0.25 plus --drop-beside for a bed and a side table that closed two doorways and --drop-door for all but one of the twelve doors (the one at 17.9, -22.8). It is in the pack and banded in headless_bots on request (HS_BOTS_MAPS=hs_hotel; not in the default rotation, which would move the other maps' statistics). What it took, after the earlier attempts (0 to 11 of 24 hiders won, doors stuck 10 to 66 s): the real-size hotel is about 40 by 38 m of 0.9 m doorways, so a seeker toured it in under a minute and the bots' mesh stuck at every door, and --scale=1.4 (rooms, doorways and stairs grow, props do not) was the one change that moved both. Bot rounds, 24 at medium, three disjoint seed sets (-- --first 0|24|48) as originally imported (real size, 0.28 pace, no doors): hiders last 12.6 s, win 0 of 24, 0% never found; the current document: hiders last 169, 156 and 166 s, win 12, 10 and 9 of 24, 31, 24 and 18% never found, 0 hiders within 3 m of another, and 18, 17 and 18 of 18 checks (the 17 is a stand-in lingering 10.1 s beside the one door, band 9, on seeds 24 to 47). Every other door was dropped because each lingered 9 to 14 s somewhere in a set; seeker_pace 0.25 is as sensitive as it looks (0.28 gave hiders 0 of 24, 0.23 gave 15 to 19 of 24 and too few early finds). The importer's own --no-doors and --widen-doors stay for other maps.
Drawn worlds (local only)
tools/regen_worlds.sh rebuilds every row of tools/worlds.tsv through dot-map's bsp.py regen into world/hs_world_<id>/ (the stores in world/.stores/); the game links world/ and a client draws the pack over the map's own boxes, which still collide (HsMap.load_world). import_bsp.py writes the document's world block (pack, scale, the offset that undoes its shift). Only the coverage json of each pack is tracked.
These packs carry the source author's own faces and baked lighting, so they are derivatives, and nothing here may publish them. tools/publish.sh is the only publish command and excludes world/ by name. hs_hotel's pack (ph_hotel, CC BY-NC-ND 4.0) is built and tested locally only; publishing it, or any pack of hs_apartment (also NC-ND), waits for the owner's decision. hs_frontyard and hs_restaurant are drawn from packs regenerated with --crop auto (local only, the same decision applies); their offset is exact (low corners match to 0.15 m) and the pack stands up to 1.2 m off the boxes' top only where a roof is pitched or a wall brush runs on into the sky, which headless_maps allows for (ROOF_SLACK). Without the local world/ a client draws the boxes, as before.
Ground that is a displacement in the source map is a terrain heightfield (dot-map's dotbsp.terrain, read by DotMapTerrain), not stepped boxes: import_bsp.py writes it, and --graft-terrain=<map.json> swaps it into a committed map while keeping every other box, prop and hand edit. hs_restaurant is the one map that has it.
License
MIT. See LICENSE.
Engagement Over Time
Zee's Hide n Seek Maps is a Hide N Seek asset. It has 0 downloads, 17 views, and 0 favorites. This item belongs to 4 tags.
Reviews
Log in to leave a review.
Comments (0)
Log in to comment.
