For the 100th Anniversary of
Heartmine (well, more like 96th, but who's counting), I have finished one of the all-time most sought-after megaprojects: a true skyfort, that is, a fully functional fort built with cave-ins ON and no connection to the ground. To my knowledge, this has never been done before, and in fact people have been saying it is impossible for years (see, for instance, posts from the
Mythbusters 2010 thread. As per my usual format, here's a how-to with a bunch of pictures:
First off, this is what I mean by a "true" skyfort:
- Cave-ins are ON
- The fort is not connected to the ground
- The fort contains working beds and a working dining room
- The fort contains functional workshops
- The fort is self-sufficient--it must produce its own food, booze, and clothing.
- The fort is able to survive saving and reloading (Yes, that actually came up in one experiment)
After a number of failed experiments, including trying to get the sky to support usable floor tiles and trying to build a fort entirely out of unsupported buildings, I discovered the solution. In short:
1. Build the buildings of the fort.
2. Cast obsidian over the buildings.
3. Dig up/down stairs or up stairs everywhere.
4. Glue it to the sky with supports.
There are some finer details you really do need to worry about, but that's pretty much the gist of it. We'll get to those details in a minute, but first, a bit about sky support.
Since this quirk of dwarven physics is kind of the linchpin of this whole operation, you should know a bit about it. Basically, any support, construction, or natural stone on the top layer of the map will be considered attached to the sky and will not collapse. This tile will support a column of tiles directly beneath it. Think "icicle" (wow, that word looks weird in print). There is no way for this column of tiles to support anything horizontally. I checked.
Sky support has a particularly interesting feature: it overrides the "standard" support given by being attached to the ground. What I mean is, even if your skycicle is attached to the ground, it will never support anything attached to its sides. This effect can be exploited to remove support from previously supported tiles, allowing you to engineer "impossible" cave-ins (see Dwarven Power Mining). That's cool, but you could easily cause an accidental cave-in if you're not aware of the physics.
So, what can you actually build that will attach to the sky? Most constructions are blocked on this level, so the only options left are supports, fortifications, and cast obsidian. They all do the job equally well, but supports are the easiest to build.Poking around some disassembly, I found some of the support logic:
The game divides the map up into 3D column-like elements that can be several tiles in each dimension. Each of the elements keeps track of which of its neighbours it is touching.
When you need to check support:
1. A list of "things that can provide support" is created, including all SMR and perhaps also elements that have not recently been modified.
2. Every element on the list is marked as supported.
3. Every element that each element on the list is touching, which has not yet been marked as supported, is marked as supported AND added to the list. This causes a flood-fill of support. Eventually you run out of things to check or add.
4. Any elements on the map that are not marked as supported trigger a cave-in.
Now, I found that columns which touch the top of the map are not recognized as elements - they appear as empty air to the support code. I presume this is because the element-creating code glitches out when it attempts to check the (non-existent) tile just above the top of the map. It appears to fail to create the entire element, effectively creating a "blind spot" in the gravity field. The tiles in the column that touches the top of the map are not checked for support, but they "don't exist" from the perspective of adjacent tiles.
EDIT: I used DFHack's infiniteSky command to raise the top of the map one z-level, and the "blind spots" went back to normal. There was no floor on top of the cast obsidian wall that was previously stuck to the sky. Floating columns promptly collapsed.
The best approach is probably the obvious one: start with the casing, then build from the bottom up. Building the casing is a straightforward architecture project. It's basically a giant bucket in the sky, although it WILL need to be connected to the ground. Build the casing up to sky level minus one (the last level you can build on). Set up a pump stack for magma and one for water so that they feed into your sky bucket. Build all the buildings (that's anything you make from the 'b' menu, even furniture like chairs and tables) that will go on the bottom floor at once, because it won't be easy to go back and add more later. It's fine to build them on constructed floors--those floors will be destroyed, anyway.
After casting obsidian on the bottom layer, repeat the process for the next level up, and so forth. Once you finish, you can dig either up/down stairs or just dig up stairs over the buildings to make them usable. Do NOT just mine out any tiles (leaving only a floor), or they will lose sky support and collapse when you cut ground support. In the end, there should be no "floor" tile without a support built on it.
Make them out of nether-cap, since it's heat-resistant. Even so, I had a strange issue, where I built my beds, obsidian casting went fine, then I came back later (after saving and reloading) and they were gone. I would try to handle the bedrooms in one session if I were you, just to be safe.
I could not get obsidian to cast properly over a farm plot, so animal products are the way to go. Meat is plentiful, so food isn't a problem. You pretty much have to go with mead for booze, but that's actually pretty appropriate. As for clothing, leather/bone armor for everyone is probably the easiest.
And magma smelters, and magma kilns... These are actually pretty tricky to install, because they must have a hole underneath them to "access" the magma below. Not only is it tricky to produce that hole with cast obsidian, but you can't have any more cast obsidian (or any constructions) beneath that hole. Here's the procedure I found that works:
1. Pick the spot where you want the hole to be.
2. Channel that spot
3. Build a floor over the hole
4. Build the magma forge
5. Build a statue one level directly above the hole.
6. Remove the floor and any scaffolding used to place that statue. It should be floating in space now.
7. Cast obsidian over the whole mess. The statue should have prevented obsidian from forming on top of the hole.
8. mine out the layer with up/down stairs, as usual
9. Deconstruct the floor which covered the hole.
Yeah, that was a pain, wasn't it? There's more:
10. Remove any cast obsidian below the hole, as it is going to collapse, anyway.
11. There should be a hole your soon-to-be magma tank because you did that.
12. Plug that hole with an unsupported window/floodgate. That is, build a floor where the window will go, build the window, then remove the floor underneath it.
13. Fill your magma tank
Once you've finished casting, you can build the supports that will connect your fort to the sky. You need a support above every single tile you want to be a part of the sky fort. A support will only hold up the column of tiles directly beneath it. Any air space will break the column and cause the lower part to collapse. Sky support is very strange, so you must be very careful how you build the supports. You need to avoid creating a ring of supports around one or more unsupported tiles. Such a ring will most likely cut all support from the center of the ring and cause a nasty cave-in (again, see Dwarven Power Mining). The practical solution: just build from left to right. Don't move on to the next row until you finish the previous one. Pretend you're a laser printer.
Now that the supports are built, it's time to cut the cord. If you've still got a ton of ugly scaffolding stuck on your skyfort, this will be the easiest clean-up job you ever had. Just deconstruct whatever's holding your skyfort to the ground, and all nonessential constructions will collapse automatically, leaving the pristine skyfort floating in place. It's really very satisfying.
View the skyfort at DF Map Archive:
http://mkv25.net/dfma/poi-31249-skyfortEdit 3/25/14: Urist da Vinci disassembled the game to figure out why sky support exists. See "Why Sky Support Exists."