Project Plateau
Project Plateau는 네 개의 유리판과 하나의 살아있는 계곡, 캠프로 돌아가는 길을 의미
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A browser topography game: fly a helicopter over a map and find as many cities as you can before time runs out.
npm install
npm run dev # http://localhost:5173
npm run dev:lan # http://localhost:5180, also reachable from a phone on the same network
npm run build # static site in dist/
# with dev:lan running (needs Google Chrome):
npm run playtest # plays a map through and reports problems
npm run shots # screenshots of menu, game and end screen (desktop + phone) in .shots/
N skips a city (−10 s), P/Esc pauses, M toggles sound.Mountains, rivers & lakes (Serbia) / Waters (Netherlands and provinces: rivers, canals, lakes and seas from the basislijst topografie) / Mountains, waters & areas (Germany: also the Länder, landscapes and islands); switch on the start screen: physical features are mixed in with the cities. Lakes and mountains are found by flying over them. Rivers are found by following them: the bar fills with the length of river you have flown along (40 km, or 60% of a short river); simply crossing a river covers only ~8 km. Best scores are kept per map and mode.
Languages: English, Dutch, Serbian Latin and Serbian Cyrillic (flag menu on the start screen;
the default follows the browser's language list, falling back to English). UI text
lives in src/i18n.ts; Serbian is written once in Latin script and transliterated to
Cyrillic. Place names: Serbia uses its (Serbian Latin) names, Europe has Serbian and Dutch names in
src/maps/europe/names.sr.json / names.nl.json, Dutch town names are kept as-is, Germany uses
German names with English, Dutch and Serbian ones in src/maps/germany/names.{en,nl,sr}.json.
Tuning lives in src/config.ts.
Provinces (Netherlands) / regions (Serbia, Germany): pick one in the list under the map buttons to play only that part: its map, its places (capital always in level 1) and, where there are any, its rivers. German regions are the Länder, with Hamburg, Bremen and Berlin inside the Land around them.
MAPS in scripts/build-map.mjs: the Natural Earth
country codes that form the playable area, a bounding box, and how to group the internal
borders.npm run build:map -- <id>. This downloads Natural Earth data into .cache/ and writes
src/maps/<id>/geo.json.
Optional settings there: projection (equal-area, for large regions), colorCountries
(a colour per country with clear borders) and merge (draw a territory as part of a country).src/maps/<id>/cities.json: { name, lat, lon, pop, level? }. Population decides which
cities appear at which level; level puts a city in play from that level regardless of size
(used for capitals).viewKm sets the zoom level:
larger regions want a larger value).Dutch places and provinces: the curated list is data/netherlands-cities.json;
npm run build:places adds municipality seats (OpenStreetMap) and villages of 2,000+ inhabitants
(GeoNames) and writes the per-province lists. In the whole-country map the added places only come
up from level 6. Build order after changing map data: build:map → build:places → build:physical.
Province definitions: scripts/provinces.mjs.
German places: towns and cities from OpenStreetMap (population from GeoNames where OSM has none), 20,000+ inhabitants on the whole map, 10,000+ on the region maps. The Find them all list (60 places, with 40 waters, mountains and areas: 100 names) and the translated names are in data/germany.json; the places are based on the TopoSite list of Germany.
npm run build:physical queries OpenStreetMap (Overpass API) for the rivers, lakes and peaks
listed in scripts/build-physical.mjs and writes
src/maps/<id>/physical.json. Each feature has a level that decides when it can be asked.
Inspired by Topografie Nederland (Radarsoft, Commodore 64, 1984), whose helicopter game had the same idea: fly to a named place before time runs out; it appears as a pulsing dot once you are close.