TL;DR Quickfort is not accessible to me without learning the blueprint macro language to make use of quickfort.
First of all, thank you very much for your feedback! I've been working mostly blind up to this point, and stories like this really help me figure out the next steps I need to take. It definitely looks like you've run into some rough edges. Let me see what I can do to smooth them out. You touch on a lot of topics, so methinks this will also be a long post.
From your story, I'm hearing that:
- You hoped to use quickfort to experience other players' fort designs, but the process is frustrating.
- The quickfort documentation was too technical for what you wanted to achieve.
- When applying the dreamfort blueprints, the instructions were not clear and used unfamiliar terminology, and you ran into strange problems.
Let me say that allowing players to easily experience other's fort designs is exactly what I want for quickfort. To me, this has meant:
- I should add features to quickfort that allow blueprint authors to automate away all manual steps
- I should make it easy to package, document, and share blueprint sets
Dreamfort has been my main test case for figuring out what features I need to add. Each Dreamfort level has a list of manual steps you still have to take. One of my goals is to get those lists down to zero.
You have pointed out a number of glaring holes in the documentation, though (sorry, another list. i like lists, it seems):
- Dreamfort needs a better walkthrough with more context
- We need a low-touch blueprint creation guide, focusing on how to auto-create blueprints and the minimal syntax you need to know to make finishing touches
I hoped I would be able to apply blueprints and capture existing structures into blueprints without learning the blueprint macro language. I hoped and wondered if it was possible for me to build a fort with quickfort by applying a blueprint example, make some modifications, capture the design to a new blueprint, and apply the new blueprint to a fresh embark.
Let me introduce you to the
blueprint plugin, which looks at the map area you specify and writes a quickfort blueprint. The blueprint documentation refers to another tool, fortplan, which is another previous, partial implementation of quickfort functionality. The quickfort script will be able to play them back. The blueprint plugin cannot capture every nuance of your setup, though. For example, it won't capture stockpile configuration, so you might still have to make some manual blueprint modifications, particularly in the #query blueprints.
When I resumed the game, I started getting announcements about non-economic blocks and unable to complete <some> workshop.
I plan to fix this in the next DFHack release. Blocks are generally preferable to boulders for
a number of reasons, and if quickfort didn't restrict the building to using blocks, the game might choose to use your precious iron bars, or coal, or potash, or logs, or some other material with other, better uses. However, as you've seen, if you don't have blocks, this feature is just an annoyance. I'm rewriting it to prefer blocks if they're available, and otherwise use boulders or logs. This should "just work" by default. In the meantime, you can edit your
dfhack-config/quickfort/quickfort.txt file and change the
buildings_use_blocks setting to false.
In my Starter Pack, I found two folders called blueprints.
I'll talk to PeridexisErrant about that -- it seems to me that we should be able to combine them.
I guess I could work on the dwarffortresswiki.org to help others become aware of the two different programs
This is the very first release of the DFHack quickfort script, so the internet isn't very aware of it yet. I would definitely appreciate it if you started adding links to DFHack quickfort on the wiki!
I think of the Quickfort User Guide as something like The C Programming Language by Kernighan and Ritchie. I think the Quickfort User Guide could benefit from a "hello, world" example. To quote from Kernighan, "The only way to learn a new programming language is by writing programs in it." If Dreamfort is a showcase of blueprint code, I think the "hello, world" example should be one of the first building blocks of Dreamfort. There are a few code chunks in the Editing Blueprints section of the Quickfort User Guide, I plan to write files based on those code chunks and learn the language. Once I learn enough to read the Dreamfort "/surface1", I hope to be able to take chunks of code from that file to make a tutorial for myself.
This is why the engineers shouldn't write the docs. I'm too familiar with the code. I would love to see any tutorial that you write, and, with your permission, maybe integrate it into the official docs.