Back in the later days of version 40d, there was talk of the farming of Mermaids. Mermaids had an absurdly high value modifier, and although they couldn’t be butchered for meat their bones could be used for crafting. You had to kill the mermaid by air-drowning, since butchering them was forbidden, then wait for its body to rot to bones. Several people started working out techniques for capturing mermaids, and since wild animals could breed in 40d, breeding them in captivity. I don’t know if anyone ever actually built a functioning mermaid farm, despite all the talk. I had a handful captured and living in captivity in a late 40d fortress, but abandoned the project when DF2010 came out.
In DF2010, the rules have changed. Breeding is restricted to domestic creatures - those with [PET], [PET_EXOTIC], or [MOUNT_EXOTIC] tags. Wild versions of those animals will breed, but completely wild, non-domestic animals, including mermaids, never breed in DF2010. Dead animals now rot to a skeleton rather than directly to a pile of bones, and the prohibition against butchering sentienst also applies to processing their skeletons into bones. And finally, mermaids had their value modifier removed, making their bones no more valuable than cow bones. I really have to wonder if that last change was Toady’s intentional response to the idea of mermaid bone harvesting.
With mermaid farming impossible and worthless anyway, where do I turn for expensive and exotic animal breeding experiments? Elephants look very good as a candidate. They have a value multiplier of 5, higher than nearly any other creature. Only hydra and dragons are more valuable, and those are both rare non-reproducible megabeasts. Even the rare and valuable unicorn only has a value multiplier of 4! Elephants are also huge, eight times the size of cows, and can be trained into war animals. And though they aren’t always available, when they are they come in huge numbers.
But although they are a huge winner in every practical way, elephants are boring. They’re too easy. I wanted to try farming something exotic and valuable, and preferably aquatic. Sea serpents fit that role. They have the same 5 times value modifier as elephants, are nearly twice as large, and reach breeding age in half the time. More importantly, they’re aquatic and extremely rare, making the project pointlessly difficult and requiring greatly overcomplicated means to set up a working farm.
The one piece of unavoidable modding I had to do for this project was to change sea serpents from [PET_EXOTIC] to [PET] to work around the bugged Dungeon Master.
Finding sea serpents in the wild:
Sea Serpents exist in any savage ocean. They have a maximum population number of 1, which would seem to put a major damper on getting a breeding population going. I determined with some experiments that this is a per-biome restriction, and if you embark on a site on the boundary between two biomes you can get the populations of both. After a lot of searching I was able to find an embark site which included enough of two different savage ocean biomes, as well as a reasonable land embark site.
One odd effect of this embark site was that diplomats and caravans would sometimes spawn on a line going through the middle of the map. It may be that I created an embark site that was on the edge of some world region boundary, and the region edge was counting as a valid edge tile for unit spawns. It may also have been the case that having an embark site that was across two regions was why I was able to get two sea serpents. I eventually built a wall of statues across my map, placing one every time a unit spawned in the middle of the map, to block this.
Creatures don’t seem to spawn from sea biomes with the same frequency as land biomes. In any embark site there are a limit on the number of groups of animals which can be on the map at once. For some reason, the game greatly preferred to present me with land animals. I would hardly ever see any creatures in the sea, far more often I’d have a few groundhogs or something equally useless on the land instead. Rather than spending years exterminating the land life, I built single tile raising bridges all around the edge of the map and raised them to make map-edge walls. With no available surface tiles to spawn on, only ocean creatures spawned. Oddly, land animals did not spawn in the middle of the map - that strange behavior only seemed present for civilized visitors.
Harvesting the ocean’s bounty:
My initial plan was to set up a scheme where I could drain the entire ocean through a sieve of cage traps into an infinite map-edge drain, with sea creatures being helplessly pulled along by the current into the traps. To accomplish this I hollowed out a chamber under a flat spot of ocean floor. I surrounded the hollowed rectangle with raised drawbridges to block out the ocean, then dug a large tunnel lined with cage traps leading to a drain to the edge of the map. I then punched through the ocean floor from above by dropping an artificial floor. When the bridges were lowered, the entire ocean would drain through the cage-trapped passage. Once creatures had been trapped, I could raise the bridges to stop the ocean and allow the cages to be safely retrieved.
(http://i52.tinypic.com/15n88qa.jpg)
Here's the catcher level. The blue water-filled squares in the center open directly to the ocean. They are surrounded by raised drawbridges, which act as a gate for the seawater. Traps lead to the north, where water drains through grates to a map-edge drain.
This did not work nearly as well as I hoped. Fluid flow in DF is a strange approximation and doesn’t work the way you would expect it to. When I opened my ocean-floor drain the ocean turned into a strange funnel of water, with stubborn little 7/7 deep pockets scattered all over the place. The water was not at all reliable at pushing creatures into my trap, often leaving them to air-drown on the ocean floor instead, and any creature that made it into 7/7 deep water would stubbornly remain there, refusing to move into flowing water. I had to repeatedly open and close the drain to get creatures unstuck, and was more likely to air-drown my quarry or crush them in the drawbridge doors than catch them.
Air-drowning was fine for whales and other bycatch, but I had at most two sea serpents in the wild, and couldn’t afford to kill either of them if I wanted a breeding pair. I realized that instead of forcing my quarry into traps, I had to build traps that they would wander into voluntarily, and that I could then isolate and pump dry for cage retrieval.
The first thing I did was add a second drawbridge to my ocean drain sieve, located between the trap corridor and the map edge drain. I would raise that, then open the corridor to the ocean, flooding the trap corridor. Sea creatures would wander in and get caught in the traps. I’d then seal the corridor off from the ocean, open the drain, and once the water had drained out the cages could be retrieved and the traps reloaded.
This worked better, but relied on sea creatures wandering into the trap corridor on their own, something they rarely did.
My second plan was to take advantage of my ability to drain and fill the ocean on command to build a submerged platform covered with cage traps. I opened my ocean drain and had the dwarves make a constructed floor just under the normal surface level of the ocean, in an area I’d seen ocean creatures swimming across often. I built raising drawbridges all around the platform edges to seal it off from the ocean, and multiple windmill-powered pumps on top to pump the water out when the bridges were raised. I covered the entire interior surface with cage traps. Now with the bridges lowered, ocean creatures could swim freely across the platform and get caught, and once a fair amount of cages were filled I’d raise the bridges and activate the pumps, letting my dwarves go in and claim the catch.
(http://i52.tinypic.com/33uvbb7.jpg)
Trap level, platform covered with cage traps and water, surrounded by raised bridges keeping the ocean out. Lowering the bridges lets the water in so creatures can be captured.
(http://i54.tinypic.com/qrynux.jpg)
Above the ocean, a hole in the water with pumps struggling to pump the water out.
This method could catch sea creatures a lot more quickly, since the traps were placed where they often went on their own. It was a lot more difficult, and dangerous, to build than the under-sea trapped corridor. The platform was in the path of ocean waves, and when the drawbridge walls were raised waves would constantly crash over them and dump water onto the platform. A whole row of pumps had to run nonstop to keep the water out, and even so the construction of the traps were constantly being suspended due to water. A few dwarves died during the construction, either knocked off by waves or standing in the wrong place at the wrong time, and either drowning or falling to their death onto the drained ocean floor. Still, it caught a lot of sea life.
My third plan was based on observing that sea creatures often run right along to coastline for a while, not an unexpected result of their random wandering movement code. I dug a long canal three tiles wide parallel to the beach. The entire side of the canal closest to the water I blocked with raising drawbridges, and the rest I filled with cage traps. I built a few pumps on top, powered by windmill, to drain water from the canal and put it back into the ocean. Then I channeled out the remaining land between the canal and the ocean. The end effect was to have a coast completely lined with cage traps, with a drawbridge barrier I could raise to let me pump the cage trap area dry.
(http://i52.tinypic.com/2ywim4y.jpg)
Lower level, corridor full of traps with a raised bridge to the right. Lowering the bridge lets the water and yummy sea creatures in.
(http://i52.tinypic.com/105u05e.jpg)
Surface level, with the pumps drawing water out into the ocean to the right.
This was my most effective and simplest to build sea creature trap. No dwarves died in the making of it, it was easy to build and maintain, didn’t require building an elevated platform over the ocean or punching holes in the ocean floor, and yet it caught more sea creatures than the other designs. If I was to do this again I’d just built this trap design from the start and not bother with the others.
Between the three different trap systems I’d built I eventually caught two sea serpents, male and female. I also caught dozens of swordfish, marlin, sunfish, halibut, and eel, half a dozen different kinds of sharks, and entire schools of whales, cod, tuna, and bluefish. Hundreds of creatures in all, which I piled up a big ‘bycatch’ stockpile. As far as I can tell, none of them will reproduce, as they all lack the [PET] tag. It’s been mildly amusing to stick cages with whales and great white sharks and such around the fortress, but there’s not much else I can do other than air-drown and slaughter them.
One interesting thing I did learn is that creatures in cages still age. All of these mundane wild animals have maximum lifespans, and all of them were created somewhere in the middle of their lives. As the years have gone by, they’ve been gradually dying of old age. When a wild animal in a cage in a stockpile dies of old age, a dwarf will pick up the cage and take it to the butcher’s shop to butcher the corpse. An animal in a built cage won’t be taken to the butcher’s shop, but the cage will somehow keep the corpse preserved and not rotten until you notice and deconstruct the cage. As the bycatch has been gradually dying of old age, I’ve been getting a steady supply of meat and other butchering products, to the point where I have a ridiculous oversupply of shark and whale and such meat filling my stockpiles. I’m giving the dwarven caravan hundreds of thousands of dwarfbucks of profit in exotic meat roasts every year.
Next: breeding the sea serpents!
Now I’ve got two sea serpents, a male and female. I decided to leave them wild instead of taming them. If they stay wild, I can kill them with air-drowning and still butcher the corpses. If I tame them, then I can only get meat from them if I have them taken alive to a butcher’s shop and slaughtered, and I’m not sure if that works for a water-breathing creature. Fortunately leaving them wild does not change their ability to reproduce.
They do need to not be in cages in order to breed. Initially I dug out a sealed multi-Z-level chamber, built the sea serpent cages in it, linked them to a lever, pumped the chamber full of water, and then pulled the lever. The sea serpents were able to swim around freely in their sealed box, and eventually gave birth to hatchlings. To recover them, I made a long corridor lined with cage traps connecting the breeding chamber to the ocean, flooded with water. When I pulled the lever to open the floodgates, the sea serpents made for the ocean, ending up caught in the cage traps again.
This worked - after a few years I had a nice handful of sea serpent hatchlings. It was a little annoying getting them all back into cages however, since the hatchlings would try to stay near their parents even after the parents were caught in cages, rather than proceeding down the tunnel to be caught in cages themselves. It was also a crude way of doing the breeding, and required a lot of work to set up and drain each breeding cycle.
So I started designing something cleverer.
Here’s the breeding pen design I worked out:
(http://i51.tinypic.com/2njc7qe.jpg)
There are four breeding chambers here, two of which have been loaded with sea serpents, the other two of which are empty in this shot.
On the right we have a chamber full of water. It can be connected to the ocean, through a corridor full of cage traps. Water can be pumped in or out. This was actually the original room I used for breeding the sea serpents, now it’s being used as a water reservoir and catching chamber for any sea serpents that slip out of their pens.
To the left of that, short corridors containing three cage traps and a floor hatch over a drain line/access corridor. These don’t show up as the corridor is full of water. Between the trap corridor and water reservoir is a floodgate, open here.
Further to the left is the chamber which the female sea serpent is contained in. (Male sea serpents are stored in a chamber elsewhere). Each sea serpent is on a chain, which prevents her from leaving the breeding chamber even when the floodgates are open. This chamber also has a staircase up, used by dwarves when the chamber is being loaded with its sea serpent.
On the left side of the sea serpent pen, we have a diamond window, and behind that a lever-controlled door hiding a dog on a rope. This is used for separating the sea serpent from her hatchlings.
The first big challenge in this setup is getting a female sea serpent on a chain. Getting a wild animal on a chain is difficult in the first place, never mind an aquatic animal. When attempting to have a dwarf place a wild animal on a chain, you first want to minimize the distance which the dwarf will be pulling the animal. Dwarves tend to panic and run away, letting the animal loose. Here I build the sea serpent cages right next to the chains, so that the dwarf only has to move the sea serpent a single tile.
(http://i55.tinypic.com/sgu2oj.jpg)
When you assign a creature currently in a constructed cage to a chain, two jobs are generated: removing the creature from its current cage, and placing it on the chain. It seems to be random which of these jobs gets chosen by the dwarves first. If releasing the creature gets picked first, a dwarf will grab an empty cage from a stockpile, go to the sea serpent cage and put the sea serpent in the cage. This is bad, you do not want to let this happen, it will result in the sea serpent ending up in an animal stockpile nowhere near the chain. When waiting for the serpent to be moved, I have to watch carefully for any dwarf heading towards the breeding chamber while carrying an empty cage and lock the door in his face to force him to cancel the job.
(http://i52.tinypic.com/31368hz.jpg)
Eventually a dwarf will pick the ‘chain animal’ job, and will attempt to take the sea serpent from the cage to the adjacent chain. About half the time he’ll manage to do this without getting interrupted. Either way, he’ll flee the chamber up the stairs, leaving a pissed off and air-drowning sea serpent behind him. Above the chamber I have a pressure plate linked to the floodgate just to the right of the sea serpent. I have to manually lock and unlock doors to force the fleeing dwarf to step on the pressure plate as he leaves. This open the floodgate, flooding the chamber with water and preventing the sea serpent from air-drowning. If the sea serpent isn’t chained, it at this point attempts to flee into the chamber to the right, running over the cage traps and getting re-caged in the process. I then close the floodgates, drain the water, and have to reset everything to try again.
Eventually, possibly with much cursing at my dwarves to just chain the damn sea serpent up already, I get a female sea serpent in each breeding chamber. Fortunately, I only have to do this once for each of them. Sea serpents have lifespans of over 150 years, so it will be a long time before I have to worry about replacing my breeding stock.
(http://i53.tinypic.com/64ecy0.jpg)
Each year, each female sea serpent will give birth to 1-3 hatchlings. There’s an open passage to the right, but the hatchlings stubbornly remain at their mother’s side. At this point I pull another lever to open the door to the left of the breeding chamber. This uncovers the diamond window, letting the sea serpents see the chained dog on the left side. Despite their size and fearsome reputation, sea serpents are quite skittish and flee from the dog. The mother is unable to leave her chamber, being still chained up, but the hatchlings run straight into the cage traps. I can then close the door, close the floodgates, drain the water out of the trap passage, and retrieve the cages sea serpent hatchlings.
(http://i53.tinypic.com/259yfiu.jpg)
With 5 breeding females at the moment, I get an average of 10 hatchlings a year, each individually caged. These cages get placed on display around the fortress for the 6 years it takes for the hatchlings to mature, at which point they'll either be added to the existing breeding stock, or air-drowned and butchered for meat, bones, and leather.
Words simply cannot describe the dwarfyness of this all. Hence:
(http://icanhascheezburger.files.wordpress.com/2009/08/funny-pictures-cat-is-amazed.jpg)
While wasting time in the wiki I followed a link to this remarkable thread. I was quickly inspired to honour Sphalerite's contribution to dwarven science.
All great science deserves to be commemorated with great art. It's a slow work day so I've put my ball point to some use.
(http://i199.photobucket.com/albums/aa159/Drunken_gun/serpent.png)
Yeah, I misspelt serpent the third time.