As the title would seem to suggest, I'm suggesting the usage of carts to expedite hauling. Now, before anyone attacks me for suggesting steam power, or fusion technology, or something, I'd like to make it clear: this suggestion has nothing to do with
automated systems. Allow me to explain.
Realistically, the concept for the cart is based on the concept of tracks. The goal is to allow carts to move large amounts of material across moderate to large distances. "Mine" carts are named as such because mining would be the obvious place to employ them. One could use mine carts for food hauling, too - except that farms can be placed wherever you want, mud/soil/sand allowing, and kitchens/dining halls are also relatively mobile. Since you can build farms close to dining halls, transporting food wouldn't be a problem. Likewise with workshops - since you can build your stockpiles close to workshops, and build related workshops close to one another, the use of carts wouldn't be helpful. With mining, however, you have to mine where the rock is - as you mine out regions, you have to move deeper into the mountain. Likewise, the production of metal either requires magma, or fuel. Magma is difficult to transport long distances, demanding complex channels from the cauldera to the forge site. Fuel, if coal isn't available, consists of charcoal. Charcoal comes from trees, and most trees tend to grow outdoors. By and large, metalsmithing operations have to be built in general locations - and those locations are often far, far away from the mining site where the ore is being extracted. The time to lay out track for carts would therefore be useful.
The idea for tracks is this. Tracks would be built using metal bars, in the same fashion as axles - one-dimensional constructions.
A single tile of track would be disconnected from its surroundings, naturally:
code:
X
If another piece of track is built adjacent to this first one, then the track pieces are connected:
code:
==
Most of the time, more than one tile of track will be built in a line. Here, each tile is automatically connected with the tiles on either side of it:
code:
======
12221
The numbers show how many other pieces each tile is connected to.Track could be built up z-levels, by laying down track tiles on ramps. Stairs are a no-go, and changing z-levels would (hopefully!) slow down the cart - going up requires more work, whereas going down requires the puller to slow down the cart and prevent it from derailing. More on pulling is below.
Junctions would be possible. Taking the above example, and building some more track to the north would yield:
code:
|
|
======
where the newly-built track isn't actually connected! To form a connection, build some track to the south as well:code:
|
|
===+==
|
with the + being a junction. In this case, the track runs west-east and north-south, due to the manner in which it was built. A cart approaching from the west, for example, would carry on to the east; a cart coming from the south would end up heading north, and so on. Junctions could be selected for rebuilding, allowing players to select which pairs of sides link up. The menu would appear as:
West: 1
East: 1
North: 2
South: 2
with the pairs of numbers correlating to the connecting pairs. A junction could also have a second state, which would be toggled via lever. In the above example, I could set it up like this:
Alternate setup
West: 1
East: 2
North: 1
South: 2
This would do nothing, unless the track was worked on by an engineer and linked to a lever - then, the lever would switch the state of the track piece. This could allow for switches:
code:
\
\
==>===
Setup:
West: 1
East: 1
Northwest: 2Alternate setup:
West: 1
East: 2
Northwest: 2
to form a switching junction. Here, carts are assumed to approach from the east; they then either head west, or northwest, depending on the lever position.
Track would also have stations - otherwise, the carts would have a merry time running around without actually hauling anything. Stations would be a designation on any tile of track - they wouldn't actually require anything to be built, unless you want a dwarven Ticket Master or whatnot
Stations would have up to 8 settings, one for each direction that carts can enter the station. Of course, most stations would either have 1 or 2 of these in use, unless the station is on a junction.
code:
====O===where O is the station
Direction: West
Stop carts:
Empty
Partially empty
Full
Leave when:
Full
Empty
Never
heading:
West
East
Leave after:
15s
30s
60s
Never
heading:
West
East
Take from stockpile:
Give to stockpile:
For the sake of my hands, I'm not going to write out the same thing for the eastern direction. To explain this seemingly complex system, I present a situation: To the east is a magma foundry, where ore is to be transported. A valuable ore vein has been found near the station's location, which is why a station has been designated. West leads to the depth of the mountain, with more ore to retrieve.
The italics represent the fields filled by the player. Each would be either highlighted or not. "Direction:" shows which direction the cart must be coming from. In the example above, carts can come from the west, or the east - this assumes that they're coming from the west. An identical menu would appear to deal with east-travelling carts. The first field states when the carts are stopped. In this case, west-bound carts should be stopped if they're not full, so the station would be set to:
Empty
Partially Empty
Full
Full carts will sail on through without being delayed. Then, there are two conditions to leaving the station. The first causes the cart to leave when full. If set to Never, then the fullness or emptyness of the cart doesn't cause it to leave. Full, and the cart leaves when it's at capacity. I leave it to the reader to understand that Empty makes it leave once it's been emptied .
The other leaving condition is time. If the player wants the cart to wait a while, then this is the setting to use. If the haulers are on break or otherwise lazing off, or if there isn't much ore to haul at the moment, the cart would wait until the timer expires and then depart, possibly without having been emptied/filled. If time is too fickle for you to use, setting it to Never will prevent timing ever releasing a cart.
Timing is listed in seconds, but this would probably be changed to frames, or some other value.
Finally, we need to actually put something in the cart. Carts act like containers, and they can store any item you stick in them. "Take from a stockpile" allows the player to designate one or more stockpiles that will try to deposit items into the cart. Setting up an ore stockpile next to the station and then telling the station to take from the stockpile is an effective way to fill the cart with ore. Likewise, when it comes time to evict the items from the cart, "Give to a stockpile" works in reverse. Naturally, this wouldn't teleport the items or anything - good ol' dwarven labor would haul the items from stockpile to cart, and back again. The cart just simplifies the process.
The final step to the suggestion is the carts themselves. In real life, carts make hauling easier by allowing the ground to do the work of holding up the cart, while the hauler(s) work against friction - under normal circumstances, friction is a fraction of the weight, making life easier. Like pumps, dwarves could be assigned the "Cart Hauling" job, allowing them to grab a cart and start pulling - this is, however, unreliable, as the dwarf may progress at a snail's pace if his strength is low, and your entire operation will grind to a halt when that dwarf takes a nap/has dinner/gets thirsty/goes on break/etc. etc. Animal labor works much better: carts could have tame animals assigned to them. Notice that the cart's direction is stated. Any piece of track has a single exit for any entrance, so no pathfinding is required - the cart is hauled along the track until it finds a station, or until it runs out of track. Either way, the track system could be automatic, with carts being told which way to go by stations and fixed junctions.
Heck, for fun, one could even rope caged hostile critters into hauling rocks. Reduce that stinking Goblin King to pathetic manual labor - the cart would act as a cage, preventing the creatures from escaping.
Well, there's my mine cart proposal. I believe that it is completely within the realm of believable dwarven engineering to lay down metal bars and stick a cart on top of them, and I believe that it could seriously expedite long-term hauling tasks, like emptying a mine.
EDIT: Well, guess that multiple spaces can't be used for formatting. Changed that, nothing else. Not yet, at least...
[ November 26, 2007: Message edited by: Thexor ]