We do a little bit of gaming
  • Rust 98.3%
  • Shell 0.4%
  • CSS 0.4%
  • Python 0.2%
  • Astro 0.2%
  • Other 0.5%
Find a file
2026-08-29 00:16:41 +03:00
assets fix: the pick is heard, the ears are on the head, and six clips stop clipping 2026-08-24 23:22:32 +03:00
crates fix(playtest): the chest keeps its own time, the rain stays outside, the charter holds the pointer 2026-08-28 18:36:10 +03:00
docs fix(playtest): the fort is dug again, the charter beats grab, the menu stays shut 2026-08-29 00:16:28 +03:00
src fix(playtest): the fort is dug again, the charter beats grab, the menu stays shut 2026-08-29 00:16:28 +03:00
steam feat: the delivered sounds are levelled, wired and heard 2026-08-24 16:46:31 +03:00
steam_assets fix: the logo asset is lettering, not a field of nothing 2026-08-21 15:42:17 +03:00
tests/headless fix(playtest): the fort is dug again, the charter beats grab, the menu stays shut 2026-08-29 00:16:28 +03:00
web/site fix: the logo asset is lettering, not a field of nothing 2026-08-21 15:42:17 +03:00
.dockerignore feat: the site ships as a container for the cluster 2026-08-16 22:57:43 +03:00
.gitignore Add scratchpad dir 2026-08-21 14:05:52 +03:00
about.hbs build: the fort reaches Steam, on two platforms and with its papers in order 2026-07-30 01:16:23 +03:00
about.toml chore: the web build goes, and the cursor stops taking no for an answer 2026-07-30 22:20:44 +03:00
build.rs feat: the build stamps its own name 2026-07-22 23:52:56 +03:00
Cargo.lock chore: v0.25.2, the lesson briefs itself and the menu stays shut 2026-08-29 00:16:41 +03:00
Cargo.toml chore: v0.25.2, the lesson briefs itself and the menu stays shut 2026-08-29 00:16:41 +03:00
dwarven-style.html feat: chairs, cabinets, chests, armor stands, weapon racks 2026-07-18 02:05:50 +03:00
LICENSE build: the fort reaches Steam, on two platforms and with its papers in order 2026-07-30 01:16:23 +03:00
NOTICES.txt build: the fort reaches Steam, on two platforms and with its papers in order 2026-07-30 01:16:23 +03:00
README.md feat: the bar reads hand, orders, build, plan 2026-08-23 01:33:06 +03:00

Mountainhall

A first-person dwarf-fortress. You are the overseer — not a cursor in the sky, but a body in the mountain.

0.1.x alpha. Playable start to finish, breadth over polish. Expect rough edges and the occasional dwarf who makes a baffling decision. (The exact build version shows in-game, bottom corner.)

Mountainhall is a colony sim you play from inside. Your dwarves dig, haul, farm, cook, craft, worship, drink, brawl, and hold grudges on their own — you designate the work and let them at it. But you also stand there: you can pick up a real pick and mine a wall yourself, hand a stone to a hauler, feed a wild deer until it follows you home, and swing a sword at the goblin that came for your founders.

Built in Rust on Bevy 0.19. Windows and Linux.


Build it yourself

cargo run --release

Before you push, the two gates:

cargo test --all
cargo clippy --all-targets --workspace -- -D warnings

Clippy runs clean, and it is meant to stay that way: the lints that fire on ordinary Bevy signatures are allowed once in [workspace.lints.clippy] with the reason written beside each, so anything that warns after that is a real finding.

Cut a release

steam/build.sh builds the shipping binaries and steam/upload.sh pushes them to the Steam depots. The in-game watermark reads the crate version, so bump Cargo.toml and the two always agree.


The two hands of the overseer

You move on two legs (WASD, Space to jump) with a body that falls, collides, drowns, and burns. Press F to lift off and fly — flying is the god hand: instant, effortless world-editing, the classic overseer's-eye view. On the ground you are physical:

  • Mine by holding a pick and swinging (LMB). Soil gives to bare hands; stone wants the pick; a tree wants an axe. Blocks take real swings and drop real stone and logs — the same items your dwarves would haul.
  • Build by holding a stone or log and placing it (RMB). The wall wears the material you spent. No stone in hand, no wall.
  • Hand things over (E on a dwarf): pass whatever you hold straight into their hands.
  • Tame animals (E on a beast): hold forage and a wild deer will eat from your hand and stay. E again puts it on a lead — it heels to you until you settle it somewhere. Shift+E just scratches it behind the ears.

The crosshair tells you what you're looking at: a block's remaining swings ("granite — 3/6 swings", "oak — needs an axe"), a dwarf's name and job, a beast's disposition, whether that bush is worth gathering.

Running a fort

Everything the dwarves do is painted, not micromanaged. Pick a mode with the number keys and drag:

Key Mode
1 Hand your own hands: mine, fell, carry, lay a wall, use, talk, fight
2 Orders paint work for the dwarves: dig · ramp · fell · gather · earth · smooth · engrave · tunnel · take down · unpaint (the wheel or [ ] picks the tool)
3 Build B opens the palette of workshops & furniture
4 Plan stamp a whole room from a blueprint: tavern, smithy, barracks (fastest path to a working fort)
5 Stockpile paint a storage floor
6 Zone tavern · dining hall · dormitory · barracks · hospital · temple · library · bathhouse
7 Farm paint a plot on soil

O opens the fortress panel, and every management surface is a tab inside it: U units · I inventory · M military · O work orders · K stocks · T trade · N nobles · J justice · H administration · R reports · Y announcements · C the annals · F1 the key list. It reopens on the tab you last read, and pressing the letter of the tab you are on closes it. New fort? Open O then H, appoint a bookkeeper, then R starts telling you what the fort needs.

Out in the fort: Q look closer at whatever is under the crosshair, X eat or drink what is in your hands, Z nap, G your pack, E use what you are looking at, L the lantern, F fly, V third person. Esc frees the mouse and opens the pause menu: save (named slots), options, back to the main menu, or quit; Esc again resumes. The world holds still while it's up.

What's simulated

  • A living world. Plate-tectonic worldgen — continents grown cell by cell into ragged coastlines, climate from latitude and rain shadow, rivers walked from the wet highlands to the sea. You pick your embark off the map.
  • Dwarves with inner lives. Needs (hunger, thirst, sleep, worship), skills that grow with practice, moods that swell into strange moods and artifacts — or tantrums when a fort turns grim. They eat together, drink in the tavern, form friendships and rivalries that decay if neglected, and remember their dead.
  • Dedicated rooms. Six zone types, each with its own draw and a capacity that spreads crowds across several small rooms instead of one mega-hall. A grand dining hall lifts the mood; a hospital heals the wounded faster than lying in the dirt.
  • Farms & the field. The whole Dwarf Fortress crop catalogue — every grain, bean, berry, root, gourd and cavern fungus, ~100 plants, each modelled as itself. Pick a crop per plot; dwarves sow it from seed, grow it through its own season, and harvest its own produce. Aboveground the herbalist forages wild berries and mushrooms; the deeps grow fungi to pick too. (For where this stands against DF, see docs/PARITY.md.)
  • Society. Nobles with mandates, an administration, and a justice system that investigates crimes, gathers evidence, and jails the guilty.
  • Threats. Wildlife that grazes and bolts, predators that hunt the herds, and raids that come for the fort — met by a militia you equip and drill, or by your own blade.
  • Water & mechanics. Flowing fluids, floodgates, levers, drawbridges, a winter that freezes the moat.

Save format

Saves are versioned (v39) and reject mismatched files rather than load them corrupt.


Status & scope

This is an alpha: the systems are broad and the loop is complete, but it is not balanced and not taught. Known rough edges toward 0.1 → 0.2:

  • No onboarding — the controls above are the manual.
  • Performance dips with large forts (50+ dwarves) under heavy pathing.

Bug reports and world seeds that break in interesting ways are both welcome.

For where the building/workshop set stands against Dwarf Fortress — what's modelled, what's wired to systems, and what's still missing — see docs/PARITY.md.

License

Proprietary, all rights reserved. See LICENSE, which also carries the closed-playtest terms a tester build ships under.

Third-party crate notices are generated into NOTICES.txt with cargo about generate about.hbs > NOTICES.txt, and travel with every packaged build. Art, audio and font provenance is recorded in assets/CREDITS.md; all bundled audio is verified CC0 per file.