166
DF Suggestions / Handling Large Constructions(and hauling materials to roads)
« on: April 22, 2010, 06:57:17 am »
There have been times when I wished I could lay down a 2D style "aqueduct". Doing so by hand is often an annoying prospect - at the very least, you need to have the "floor" completed before the walls can even be ordered at all.
Construction of large works in general is fraught with trouble, not least in the form of dwarves walling themselves out of places.
So here's a few possibilities:
In summary:
Construction of large works in general is fraught with trouble, not least in the form of dwarves walling themselves out of places.
So here's a few possibilities:
Spoiler: Somewhat rambly, detailed explanation follows... (click to show/hide)
In summary:
- Offer alternate means of laying out a construction, to make the common buildings easier to produce. Multiple shapes are good, as are hollow shapes(for walls/fortifications) or toggleable walls/fortifications around a designated floor
- Allow the player to designate an access point, a place for the workers to stand. It must be adjacent to the work site; it is treated as having a construction on it until such time as the work is done, then released. The access point must have access to materials, but it is up to the player to prevent dwarves from walling themselves in with the finished construction(sealing them on the "wrong" side may be exactly what some players want).
- The entire work site counts as a restricted traffic zone until the building is done. This should keep anyone but the miners(see below) from standing on the site and causing problems later.
- Allow constructions to auto-dig stone that they overlap. Suspend the task, rather than cancelling, in case of digging problems. "Digging problems" includes an inability to reach the dig site at all(because it's on the other side of a chasm, say), as well as newly revealed damp or warm stone. Access problems will only suspend the job if all other mining is done.
- Spawn separate hauling tasks to bring materials to the site, with their number perhaps constrained by a tuneable value. Materials get brought to the access point. There should optimally be an indicator for how much material has been brought, both in general and for specific materials.
- Optionally, allow construction tasks to use the nearest material of a given type rather than a specific unit of it. This may allow for overbooking, but it should not be possible to assign more material than you have at that time without knowing it; other matters consuming them will still have to be anticipated by the player. Suspend the task if it runs short of material.
- Spawn a building-design job on any building above a certain size or complexity - or just on all constructions. If it's not on everything, it should have an obvious indicator when laying out the construction that it will require an architect. The architect will stand on the access point. The architect will attempt to clear the site of debris. Inability to do so that is not "someone is standing there" will suspend the job.
- Optionally, handle the mining, hauling, and design tasks in parallel. They can be independently suspended. All three must be completed(or unnecessary, for the digging and design, at which point the automatically count as "completed") for construction to proceed to the final step. Auto-suspension for peaceful causes does not affect the other tasks; auto-suspension due to threat mighght.
- Once all preceding steps are done, spawn the main construction job. This might take just as long as constructing each individual tile under the current system(though the worker stays on the access point and will not need to leave and grab new materials), and should have a progress indicator more specific than "started/in progress/nearly done". As with the architect, the builder will try to clear the site if something has cluttered it; unlike the architect, the builder will be forced to suspend the job if a creature stands on the site for any significant length of time. The restricted traffic should keep dwarves from doing so; animals, merchants, and hostiles may be less cooperative.
- When the building is done, the construction behaves in every way as it does now. Free up the access point. Restore traffic restrictions to the user-defined values. Constructions are load-bearing, and individual tiles can be knocked down by designation just as now. Ideally, the system will try to keep like materials together, but getting a specific look is best done by making the pieces individually. Bridges and roads can be built with this method, but work just as now once finished(since these structures are not load-bearing, allowing them to use less material makes sense).