Dwarf Fortress
Download Features Screenshots Development Forums Bug Tracker
Threetoe's Stories DF Talk Contact Links Champions Other Games
Dwarf Fortress Development Log

Development in 2008 (RSS Feed)

  • 12/31/2008Toady One Some more fixes II: Windows, Linux, and Discussion Thread
    • Timer fix (stops it from going above the FPS cap).
    • Init options for frame buffers and single buffers.
    • Tentative mouse wheel support and third mouse buttons support (as key presses). (see release notes)
    • Some mouse fixes.
  • 12/29/2008Toady One Some more fixes: Windows, Linux, and Discussion Thread
    • Fixes a crash from shift/alt/ctrl.
    • Alters the frame timing to handle low G_FPS caps better.
    • Fixes texture allocation crash.
    • Fixes F11 stuck key problem.
    • Now single buffered in the case of partial print so some flickering should be fixed.
    • Fixes problem with grayscaling (caused problems with flashing creatures).
    • Makes cursor keys behave differently from other keys with respect to initial/repeat delays.
  • 12/28/2008Toady One One more fix (for partial print and linux image export): Windows and Linux
  • 12/27/2008Toady One Regarding the 40d upgrades, here are a Windows and Linux version with some fixes. Linux image export and scrolling still need to be fixed. Mac issues still ongoing. Here's the upgrade discussion thread. Let us know how they are faring there!
    • problem with more than one song playing at once should be fixed
    • various DLLs/libraries have been bundled in with either version
    • SDL timing functions now used
    • can press multiple keys at once (scrolling still has an initial delay)
    • some extra error detection
  • 12/24/2008Toady One Apparently my Mac compiler is experiencing issues. I've put up a Windows and Linux version with the upgrades. These are still rough -- you won't get continuous scrolling with cursors (there will be the typical keypress lag at the start), Linux doesn't have image export yet, movies might have some trouble, and so on, but it'll be good to work through these issues now as I continue the push toward the next major release. Here's the upgrade discussion thread.

    Thanks again to Svein and Bernard for making these changes possible. Thanks also to everybody that's helped out this month. You saved Christmas for Zach and I, just like in the movies.
  • 12/23/2008Toady One The Linux dwarves are running around now. Just need to make sure the Mac dwarves are still wholesome and it should be readyish to go.
  • 12/22/2008Toady One Today was sort of a weird day. I couldn't sleep, so I woke up at 10 AM, which is unnatural. Then I walked to the post office to mail out crayon drawings, and the sidewalks were snowed over so I had to slog all the way there. It helped sometimes to be Charles Bronson in Death Hunt, and other times to be an ice road trucker.

    I also got the code for the OpenGL upgrade courtesy of Svein Ove Aas (Baughn) and the Linux port courtesy of Bernard Helyer in the form of Battle Champs, so I focused on that today. The code basically worked when inserted into DF, and on this computer where I've had comparatively few graphics troubles, the post-embark framerate went from 140 to 170. For people having laggy menus, it should be substantially better, assuming you can get it to run -- which is why it's good to test the game in that thread, as well as the new 40d when I put that up (if I go ahead with this, you want to make sure you test it early to give us time with your personal bugs). I'm going to try to get it working on Linux next. I'd like to put up a new 40d for all three platforms at the same time if that's possible.

    I had slated 10 of the countdown for this (for my part of the work, which is much less than what Svein and Bernard devoted to their projects), so it's not going to be complete deadweight as far as the release countdown goes. Hopefully this continues to go smoothly and I can get back to wounds.
  • 12/20/2008Toady One 958. I added some information for weapon/ammo/trap attacks and did armor effects and made the game calculate values for them instead of having them in the raws. Then I did severs and made a debug button that creates a berserk dwarf in adv mode to play around with rather than going through the trouble of setting up a proper arena. First, it had connected the tissues incorrectly, so each attack with the iron hammer ripped something off. I fixed that up, but some other numbers were off, so the hammers just bounced on every strike. It was still bouncing even after correcting the numbers though -- it turns out the game thought everything was dwarf skin, so I fixed that. Then I broke his toe. There's more balancing to do, but it's coming together. Next I'll be able to add more character to the wounds and do things like bleeding (the blood in the picture is the default from any flying body part, but it's not actually raw'd up yet).

    I have a lot of catching up to do with my email, the forums, stories and the crayon pictures, so I'm going to move a month-end day up to tomorrow so I can unbury myself. I'll be back on wounds on Monday, and I'll be working through the 24th now.
  • 12/19/2008Toady One 965. Did things with item edges and attributes vs. strikes, and some other things. It looks like the more interesting stuff is either tomorrow or the day after.

    There's another snowstorm coming in tomorrow night (that is, Saturday night), which I mention on the off-chance there's power trouble. The wind estimates are down from what I heard earlier, so hopefully there won't be any problems.
  • 12/18/2008Toady One 973. The continuing mission. I added some dubious material values to the raws, and the game adds wounds to the tissue layers now, using the material definitions and so on, but they aren't very interesting yet. I should have more interesting descriptions later on, but there are several things left to work out (and I have to change how wrestling/falling/fire/heat/cold/etc. damage work as well).

    Here are some of the raw files that have settled down a bit. Even there, various things will change no doubt.

    The uncertain holiday plans I mentioned last time have been cancelled due to snow-related unsafe driving conditions. I'll probably be working straight through the 23rd.
  • 12/17/2008Toady One 983. Revised some combat rolls, added the wound information to the unit, made the combat system respect the new bp sizes (and initialized those and made sure they updated during growth), and did some of the basic calcs for material vs. material impacts/cuts that'll be used during combat strikes. Next up is filling in the relevant material strength values in the raws, and then using the material calcs to create wounds with proper characteristics.
  • 12/16/2008Toady One I fixed all the bugs I mentioned from last time. Metal templates weren't loading properly, so it forced the metal temperatures to be permanently higher than the boiling point. The blinking came from the dwarves adopting the flashing picture used for squiggling vermin, and various plant load errors caused the dwarven clothing materials to fail (first they weren't loading at all, then they loaded, but crashed the world gen art generator, etc.). They were happily mining and chopping down trees, and though there are a few minor issues here and there, I think I'm ready to start wounds now.

    I've got two more working days until the first of the uncertain holiday plans I mentioned in the last B12 report comes up, and I think that'll eat up two of my eight month-end days. It's hard to tell, since the rest of the people involved operate on normal schedules, so the trip sort of straddles my own days in a weird way (it involves getting up at 10AM, for example, which for me is a tough call between getting up or staying up... or some unnaturally smeared union of those). In any case, that's where roughly the 19th and 20th devlogs have disappeared to if you wonder later. That'll be a convenient time for me to put up the new raws as well, I think, so I'll be putting up whatever I have at that time.
  • 12/15/2008Toady One 1011. Okay, there are dwarves walking around, though it's next to the wagon with the equipment that immediately explodes into clouds of boiling bronze while the dwarves flash between the dwarf and bar symbol wearing no-material clothes, but there are dwarves walking around. Finished up the facial feature/hair stuff, though I haven't tested if the in-game dwarves actually have growing hair and so on. I'll continue working out the bugs for as long as it takes to be non-cataclysmic, then I'll start setting them on each other or some other creature I elevate up to new raw status by that time.
  • 12/14/2008Toady One 1015. Defining the arrangement of the dwarf's facial features and picking out names and positions for facial/head hair components are all that's left of defining the dwarf raw to get it in line with the code. Then I'll have to see if and where the game chokes and work out the kinks.
  • 12/13/2008Toady One 1030. Compilation done and mat/plant/stone/metal raws txts entered. The next 21 are setting up the txt for the dwarf raw in preparation for the wound test arena, and a few other creatures. I'm hoping to have that finished tomorrow, but there's a lot to a dwarf now so I might get tangled up an extra day. I've refrained from actually typing up the raws until now as things were constantly being added and changed during the updates. Once I have the test creatures properly abusing each other, I'll enter the rest of the creature raws. I should be able to release the tentative raw format at some point while I'm doing this.
  • 12/12/2008Toady One 1039. Fixed up a problem with fish stockpiles, god form selection for flying ones, creature placement in hostile environments vs. caste, caste litter sizes, some skill availability stuff, updated safe temperature stuff, placed totem flags on bodyparts so it knows which ones can make totems.

    There are still a few left here and there, but they are can be putoff until after wounds or even later in many cases. I've now moved on to the pre-wounds compilation, and that's about half-way finished.

    I lost my internet for about 5 hours (it just came back right when I was about to go to sleep), and weather events are continuing into the weekend, so if I miss a day, that's likely what it'll be.
  • 12/11/2008Toady One 1040. Still on schedule. Updated dwarf item/material preferences, vermin barrel gnawing and cage escape, material values, prices, web placement, plant symbols, large predator/curious beast race vs caste stuff, and megabeast/power race vs caste stuff, among other things. Down to 60/556 in the sub-countdown. Whether or not I can finish that tomorrow depends on the weather partially, as we're having our first snowstorm. Everything will probably be okay. It'll nice to finally be able to run the game again, as I've been gutting stuff for a long time, and unable to report any in-play happenings or bugs.
  • 12/10/2008Toady One 1041. Handled material states vs. names, so among other things some of those ice/water problems should be handled. Stuffed the creature morph/caste information into items and vermin as necessary. Squashed skin+bone+shell+skull into the corpse piece item -- this will let me do things like horn and ivory crafts for this release. I still need to update the butcher jobs and rotting, but it doesn't look so bad. I split up meat and fish in some places, because those items became less similar now that tissues are in. Handled some building material vs. building symbol stuff. Looking at what's left, it's quite a bit to bite off in two days. I'll try, and it's possible, I think, but we'll see.
  • 12/09/2008Toady One 1042. A grab bag as usual. Material/item names came up a lot this time, and some more material categorization for jobs and so on. If I have nice wholesome days three more times, I'll be through to the pre-wounds compilation, finally.
  • 12/08/2008Toady One 1043. Entity pets, embark pets, dye flags, mill jobs, extract/farmer's workshop jobs, and some other things with plants. It'll let you do some weird things now, like farm plants that can be processed into weavable metal thread, though the categories of items for the jobs are still the same (thread/powder/liquid/seeds). For those watching the sub-countdown on these last 9 to the 1039 milestone, it's 243/556, so everything is still on schedule in that sense (about 60 a day).
  • 12/07/2008Toady One 1044. I did the material job update I mentioned yesterday. We'll see if I can make it to the post office tomorrow (Monday). Today was a Sunday, so it didn't matter, but I also slept through their entire normal hours.
  • 12/06/2008Toady One 1045. Today was stockpile day, pretty much. Wood, bone, leather, silk etc. are now materials themselves instead of materials implied by the existence of plants or certain creature flags, and the stockpile screens/settings/haulers needed to learn how to use that. I also fixed up export of embark settings to text files to support the new mat tokens. Tomorrow I'll be updating various item-construction/mat-involved jobs. 1039 is getting closer, but there are still five or seven more slogs left to push through. It'll be good to be through with this part.
  • 12/05/2008Toady One 1046. More updates that came up but aren't additions themselves really... barrel storage, color/symbol stuff for items/buildings made from materials, web-gathering jobs... I also gutted the RACEGLOSS system from the raws. I'm not sure I'll replace it this time around -- that would probably involve a few short-cuts that would allow you to automatically generate creature morphs from a material/plant list with proper material replacements for each one. It was a bit slow today as my brother and I drew up sixteen outstanding crayon pictures for the support rewards. I'll be sending those out on Monday.
  • 12/04/2008Toady One 1047. Let's see... materials for extracting/milk jobs (not that you can milk large creatures yet, but it'll be waiting nicely for that when I get there now), some cleaning of the poisoning code and the addition of materials to the injection special attack, so the material for venoms can now be specified properly (which is required for any future poison effects), and also the item use properties for each material when it comes to making armor/clothing/instruments/toys (that is, as clothing in the currently-released version seeks "soft" or "scaled" or "leather", etc. materials, which categories the material actually fits in can now be specified explicitly... it should probably figure some of this out from the basic material properties, but this was faster for now while still accomplishing the goal of getting all of the item-material considerations under the same umbrella).

    It's been about a month since I last mentioned it, so the breakdown again is: 8 left of what I'm doing now, 250 worth of wounds and health care concerns, 29 on descriptions and some skill/att stuff, 65 on venom, 165 for map features, 260 for entity positions, 195 for squads, and 75 for random crap and tests. The squad and entity changes run together a bit as they both involve the military.
  • 12/03/2008Toady One 1048. Color variations and changes over time are done (for any tissue layer, from skin or muscle to the stomach to eyebrows or claws), and I've defined a new colored pattern definition for things like stripes and mottled patterns that can have more than one color at a time. So you could have your borgle's borgle fade from either their starting blue or starting red into a purple and green striped pattern gradually as they age, or something. Appearance modifier change rates are also done, so unit hair/nails can grow, or you could have your borgle's borgle grow thicker from age 10 years to age 15 years (it still can't be borgly to any degree). It only supports one start/end time at this point for growth rates, but today's changes are enough to go from having no facial hair for a human male at birth to having a beard start to grow after some years to having the beard gray slowly after a certain age is reached (with the color change being defined as a change at the root of more and more hairs rather than a fading of the color all around, as you might want for some other color changes). The length/color changes will matter for the descriptive paragraphs (which are up roughly after wounds in the countdown), and there can be all sorts of applications later on, from cultural entity rules to wrestling effects.

    Now we are at the last 9 elements of the slow patch, which is really just a pile of small changes that were originally in 9 categories but have become something more loose than that. I'll decrease the countdown as I clear the list in ninths, rather than instituting a sub-countdown of 556 which is a larger looking number. These 9 shouldn't decrease any slower than it has been, nor any faster.
  • 12/02/2008Toady One 1050. Today was doing ASCII chars and display colors for castes vs. creatures, handling baby/child strings, going through all the old creature flag occurrences and either updating them or sorting them into their proper category of the remaining countdown elements, handling allocation of bodypart-related tissue layers like eyebrows, and implementing tissue-layer-based appearance modifiers (so variations can be given to critters' hair). I think I'm going to finish up layer growth (eg hair growth) and color realizations tomorrow and whatever else I can manage.
  • 12/01/2008Toady One 1052. Finished off the "still a bit to do with that" from November 19th, meaning I finished off various work with the new reaction raws. This slow patch of the countdown has 13 elements left.
  • 11/20/2008Toady One 1053. Finished up some considerations with creatures like iron men vs. their tissue layers (which are really just one layer per bp using an outside material -- outside materials being any of the hardcoded materials, any of the materials from the material raws such as stone/metal/plants, or any of the materials from any creature, so you could have a "dwarf lung man" made entirely out of the dwarf lung material if you like, or one made out of sweet pod syrup (assuming that doesn't just melt to death -- it'll need helpful associated values)), and some leather/bone/ivory/pearl/horn etc. code regarding trade goods, and other things along those lines.

    This adventure will continue next month, but I'm pretty sure I'll be able to finish this slog then and get started on wounds/combat changes. After that there's a section on descriptive paragraphs and heredity, then venom and disease, followed by some healthcare work, underground features, finishing up civ positions and finally the squad/military rewrite.
  • 11/19/2008Toady One 1055. Tanning/fat rendering/soap making jobs are now in the reaction raws, and in general there are more reaction tokens that'll allow fewer definitions to cover more materials (so horse fat knows to become horse tallow by virtue of material/tissue strings rather than having to write a reaction for each one). There's still a bit to do with that (the number went down because of various temperature/other updates I did with the creature materials).
  • 11/18/2008Toady One 1056. Wounds start at 1039. The next 9 of what's left are, with a few plant updates, various instances of bone, leather, pearl, ivory, horn, shell, blood, fat, tallow, slime, soap and so on that need to be updated to conform to the new raw entries and code structures. There are lots of weekend days this month -- as many as possible -- so I don't have much time left until the month-end break, but I've got another few days.
  • 11/17/2008Toady One 10... 58! Of course. At least I'm getting through one of these silly rewrite mini-projects each day, so I'll arrive at wounds at some point, some time in the future. Today it was all the caravan plant stuff and the non-liquid plant jobs, and various other stuff to do with plant material changes.
  • 11/16/2008Toady One 1059... it would be cool if I could find something exciting to put here while I'm working on the boring stuff. >{) >(> })o) There are some fish, but they aren't doing any tricks or moving. I'm still updating/gutting lots of old material variables, as I mentioned a few days ago.
  • 11/15/2008Toady One 1060...
  • 11/14/2008Toady One 1061... it'll be like this for the next 22 elements or so.
  • 11/13/2008Toady One 1063. I decided to go with hair as a tissue layer like skin, since that ended up making the most sense. You can set how sparse it is and the general shape (strands) so that it won't be treated like a sheet whenever that matters, and the hair is set to be subordinate to the skin so that it will come away with any flaying that comes up. I'm sure there will be some edge cases later on, but things like spines or scales or whatever should work out fine this way.

    Hair is capable of growing and being set/cut to different lengths on each body part where it occurs (though I still have a bit to do there). Naturally, this will mean that everybody becomes shaggy over time as they won't cut their hair (or trim their nails if I get to that), so I might have to turn off or dampen these effects for the time being.

    The remaining 25 or however many it is to get to wounds are kind of grueling, as it's just lots and lots of stuff like "silk occurs 149 times -- update!", which may or may not take a long time. Then I'll want to iron out any compilation problems before I start wounds, so I can get immediate feedback on how they are working out. We'll slowly be lifting out of the nuts and bolts of creature bodies to matters of more general interest, but I still have a bit more to do.
  • 11/12/2008Toady One 1069. Nothing much to say for today. Similar vein. Almost worked out how the hair is going to work, and I hope I can have that finished tomorrow.
  • 11/11/2008Toady One 1078. Bit more messing with bp relationships. I also put appearance modifiers in the raws (though descriptive paragraphs have to wait until wounds are in progress). The appearance modifiers that should have an effect on size, like height, do -- in fact, this is the only way to get a size variation, so if a dwarf is wide for a dwarf or a human is tall for a human, they'll have a corresponding size modification and this is how variation of the size variable works. Other modifiers are just cosmetic. The types of the appearance modifiers are hard-coded and will be until I work out how to handle descriptive paragraphs for custom modifiers (like how borgly a borgle's borgle is, for those that want to add that sort of thing to their mods), which won't be done for this release. This time around, the goal is to be able to give distinguishing descriptions of each of your dwarves and your adventurer.
  • 11/10/2008Toady One 1088. More material stuff. Also the possibility in the raws to set names for each profession type for creatures and also within the different morphs for each creature. It's still a grind down to the mid 1030s where the wounds start.
  • 11/09/2008Toady One 1097. More raw shortcuts for building creature materials/tissues if they are roughly normal. Metal/stone merged into one common framework under the new material templates, mostly. That doesn't yet mean anything in terms of allowing more stone weapons, though each type of material will have more properties than before. Remembered to make ribs internal.
  • 11/08/2008Toady One 1103. Positions and relations for body parts within their parent body part to give wounds a chance to seem more reasonable instead of being sort of loopity loopy paths around the parent part made by a supposedly straight object, and some other morph bookkeeping.
  • 11/07/2008Toady One 1114. Back to bodies themselves for another day. Individual names for the teeth and ribs, without the extra baggage of full body parts for them. So there we are... all of the teeth. And ribs. Also, sizes have been upscaled many times so there's a lot more room to breathe, specifically for individual variations within one creature type. 80 more to wounds and some other combat revisions.
  • 11/06/2008Toady One 1125. Only 7 left for creature polymorphism, mostly tedious find-replace type stuff to get it to recognize the names and some other variables. I also threw in flags for tendons and ligaments (no specific names for them at this time). I'm looking forward to wounds, as it's the first place I'll be able to cash in on some of the work I've been doing, and that's maybe a week out at this rate.
  • 11/05/2008Toady One 1138. Continuing on with boringish polymorphism. What's left, by the way, not necessarily in order, are 193 worth of these body changes, 250 worth of wounds and health care concerns, 165 for map features, 260 for entity positions, 195 for squads, and 75 for random crap and tests.
  • 11/04/2008Toady One Yup, distracted, though there wasn't as much beer as I thought there might be. I'll be back at it tomorrow.
  • 11/03/2008Toady One 1149. I decided to do blah-blah caste stuff to get it out of the way.

    Tomorrow (Tuesday the 4th, which is actually today by any reasonable standard) is election day here. I voted already, as Washington State voting occurs mainly by mail, but there will possibly be many distractions throughout the day and night. Like pizza. And other unknown stuff.
  • 11/02/2008Toady One 1166. Teeth, ribs, cheeks, lips, eyelids. Teeth and ribs aren't individualized, but there are some groups for them with a new numeric argument for the BP (e.g. 3 left false ribs). There isn't anything really wrong with individualizing them but I didn't want to do that especially with the teeth so much at this point. You'll still be able to lose a single tooth, it just doesn't have its own individual name (there are currently 6 groups). I haven't decided how exactly the skull is going to be handled, though I'll get at that tomorrowish probably, along with hair of various kinds (head, body, facial/brows/lashes) as well as nails and claws.

    Relative body part sizes are also in the raws/data now (though the combat aspect of that will be handled with wounds, which is off a bit later in this release). When I do the appearance part of this release, it'll say a bit more about how that size number is related to its shape/dimensions.
  • 11/01/2008Toady One 1176. The process continues. There are some auxiliary structures that make it a bit easier to add tissue layers to creatures. The body parts are categorized and "tissue layer plans" (sort of like "motifs" from Armok 1) come in and create layers based on the categories. So the vertebrate layering plan will have skin and fat and muscle and bone, whereas the exoskeleton layering plan will not include bone layers (and the skin layer is marked as structural so damage to it affects the ability to stand, etc.). After specifying the bodies, the creatures say which plan they want to use and which tissue they'd like to fill each role (so you can send in a chitin tissue to fill the skin role in the exoskeleton plan), and it will lay out the layers for you with one command. You'll only need to worry about the steps along the way if you want to do something involved.

    Next up are some larger-scale changes like refinements to size and some new body parts and relationships between body parts (skull around brain, etc.). Handling hair is also in the section, and I'm considering smoother changes to size as a creature ages and variations in size between individuals.
  • 10/28/2008Toady One I've relocated Bay 12 to a new and hopefully safer place. I'm still working on the forum. How long that takes will depend on some correspondence with the old company, so I don't have a good idea when it will be ready.
  • 10/23/2008Toady One I'm writing this one to myself it seems, as the site has been taken down. I'm in the process of moving to a new web hosting company, which is somewhat distracting. 1196. Tissue stuff.
  • 10/22/2008Toady One 1203. I unified the trees and shrubs raws (though they are still split for all intents and purposes when it comes to playing the game, so you can't start planting trees or anything like that at this early stage). The join will be handy for future additions, although if there are bugs with dwarves eating oak mushrooms or chopping down wild strawberry trees, it won't come as a surprise. Looking at the remaining material stuff, I decided I wanted the caste bodies first, so I went ahead and did some of that along with some tissue stuff. Now I'm on shorthand tags for getting tissues into the creature body part definitions without having to type all of it out each time.

    Tomorrow is the last day of programming before the month-end break. I've been handling a little under 20 a day on average, which puts the release around February. So much for a more rapid release schedule. There are still 169 more Number components until I even get to something fun to work on (wounds!), but at least that's close enough now that I can look forward to it.
  • 10/21/2008Toady One 1224. Each of stones, metals, plants, trees and creatures now has material lists which can be placed in the raws which cover pretty much everything that was sort of haphazardly defined before (there isn't currently a point to having a list within a stone or metal rather than just having one though). Next up is unifying plant/tree definitions into one raw file, as they have more similarities than differences, and then continuing to handle ramifications throughout the code for the new material defs. All of that makes up 35 of the Number.
  • 10/20/2008Toady One 1244. Down to 4 on the Number for attributes. I've moved that to the end now because the last part depends on some of the rest, and I'm going to do uniform material raws for creatures and plants and stone and stuff next.

    Connectivity problems with the website and the forum in particular are ongoing. I'm in contact with the support people, although at this point I'm not optimistic, so there might be another move in the future.
  • 10/19/2008Toady One 1254 and stuff. The attributes have entered the raws. You can set the range of the 19 attributes, with a slight bit of lumping how you like (the default is more bell-shaped, if you draw the bell with 6 lines), and you can also set the rate at which the attributes increase and decrease with use or lack of use, as well as the maximum value related to the starting value.

    I've put in the attribute rust system from Armok 1, so it keeps track of how long it has been since you've used an attribute, and if you don't use it for a while, you'll start to accumulate rust that will decrease the effective value of your attribute, and if you accumulate enough rust, you'll actually start to lose the actual attribute value. Rust is very easy to remove though, as it gets worked off quickly whenever you use that attribute, so effectively this won't come up unless your dwarves or your adventurer really work at not working intently.

    The "unarmed" skill, aka "wrestling", has been broken up into four skills. In particular, dodging is now a separate skill, and I've gone through and finished most of that revision. The attribute and skill revisions are ongoing (they are 14 of the remaining Number). Material raws and implementation are after that.
  • 10/18/2008Toady One 1275 on blah blah preliminaries. Implementation of the new attributes and all of their various effects throughout all of everywhere next, except for the ones that don't really come up yet.
  • 10/17/2008Toady One 1295 is the Number apparently. There's quite a bit of work to do, but there should be some wholesome entertainment waiting on the other side. Coming up with the Number, I was going through the skill code and it seems I'll have to find preliminary answers to some deep questions, like "do the undead have souls?", since I added "souls" to units to store information when I was putting in the mental attribute framework. I suppose the answer should be "it depends", but I'm not doing the undead revision until later on in Future of the Fortress. In any case, there are numerous little roadblocks like that to stop the smooth descent of the Number, but it shouldn't take forever forever.
  • 10/16/2008Toady One I've rewritten all of the underlying map feature code to support easier expansions and more robust save compatibility in the future. I think I'll spend one more day messing with this, probably moving cave site definitions partly over to the map feature system so that the caves can be more intimately related to the other underground areas, and then, after thoroughly breaking everything, I'll be back to filling in the details of what I've been working on this month in order from the bottom up. Aside from being the proper way to do it, it'll also let me talk more about things I've finished rather than things I'm outlining or plan to do, which is fundamentally more healthy.

    It's nice to have a broad framework in place now though, as I'm basically compelled to complete a large swath of things I've always been wanting to do without getting caught up in world gen wars or dyeing cloth or geology or gibbons this time. However, I can't promise I won't stop at venom and disease for a while when I get back to wounds. We've been on a research kick in those directions in our planning for some reason recently.
  • 10/15/2008Toady One All right, sorting out the underground revisions... we'd like to get a framework in place that can recapture some of the better properties of the 2D version without conceding any ground. The general idea is to set up a few world gen params that will allow you to control the frequency and nature of underground features that you might encounter, especially as you mine in dwarf mode.

    If many features are requested, they'd need to be arranged in such a way their discovery is inevitable while at the same time providing some breathing room for a fortress. So the first issue is that some (not most, fortunately) of the code still more or less has the map features stored as 2D rather than 3D objects, so that I can't currently layer features over each other. Once features can be placed over each other in 3D, we can have entire layers devoted to this and that, boxed in by this and that on their sides, twisted around with this, with that over there. So you'd hit something. I'm also planning to push more of it into the existing system (used for HFS) that creates units, items, fluids etc. as they are discovered to avoid FPS hits from the increased feature density.

    Another issue present in 2D that is largely absent now are some interesting and long-lasting challenges from map features after (or before) they are discovered. Previously, you'd be attacked or otherwise perturbed by ambushing critters of various sorts. So we'll have that, at least what we had before. The gremlin needs to be your buddy again. And new buddies. It's no fun to spoil the specifics though.

    There will have to be a lot of specific remodeling to facilitate this process. Chasms for example don't support creatures moving around as they stand -- a lot of the silliness like critters sitting on bizarre ledges for no reason will have to be changed. Features can't support populations versus your fortress properly if they don't have off-map access points (without something strange like monster generators), so more features will be large enough to make more sense that way.

    Practically speaking, I'm going to start with the 2D -> 3D conversion and clean up some other code that'll allow me to add things easily and to add them over larger patches of the map than the single world map squares that are used right now. After that, I'd like to get it up to around the point of interest and excitement from the 2D version for thems that wants it, though as I mentioned previously, I'm only going to be working on this for long enough to get a framework established, then I'm going to go back and do the remaining work on this release in its proper order.
  • 10/14/2008Toady One I'm going to move on to explicitly planning and coding the framework for the underground for this release. As usual, I'll post a larger blurb here in a day or two once I get that sorted out. That'll be the last category of changes, and then the idea is to go back and get everything finished up. That will take a while of course, a long while, and there will likely be countdowns again. I'm always about the countdowns.

    RSS Paragraph test 6.

    RSS Paragraph test 5.

    RSS Paragraph test 4.
    • RSS List test 3
    • RSS List test 2
    • RSS List test 1
  • 10/12/2008Toady One I'm still slogging along.

    Below, I'm testing the new list code (mainly for RSS).
    • TEST 1
    • TEST 2
    • TEST 3
    • TEST 4
    • TEST 5
  • 10/10/2008Toady One The forums have definitely been on and off (and quite a bit off) on account of database connection problems. I've got a support case number on this, so we'll see if that goes anywhere.

    For the next week or so, I'm going to be plotting out some of the squad-level military changes (and actually finish up what I can manage) as the next component of the release. If the headers and some of the code are sitting there, then I won't be able to put it off, he he he.

    The first part of the outline here is to revise attributes and make them have a wider range of values that vary between individuals, with practice and disuse determining changes rather than skill increases. The new attributes are pretty much supposed to cover the far future as well, so there are several beyond the three the game currently uses, but I'll try not to clutter any place important with them. There will also be some new skill tokens that don't see any use for a while.

    For the actual squad changes, and this is still a bit loose, the plan is to create separate squad entities associated to the new command positions (your local captains or guard captain or hammerer for the royal/noble guard), and then give you more control over how those work and alter some aspects of squads. I'm thinking of allowing you to set schedules for active/training/off-time states, with alert states being in place to get around eat/sleep/drink problems when the need arises (not that the underlying need would be removed). Squads would be associated to their entity position rather than their commander's position, so if the commander goes off and does something they'd still generally be mindful of their orders. I'm thinking about doing formations when I'm messing around with that, but I'm not quite sure there. There are also some notions about specific targets/missions that you could assign to a squad or a member of a squad to take care of problems and achieve some more control. I'm not for allowing the targeting your own liaison or something though, as I don't think your dwarves would do that. Well, mine, maybe... in any case, (most of) your dwarves would likely not follow such an order if I allow them.

    I'll also be messing with the barracks (probably splitting sleeping/sparring functions and doing squad assignments) and training. The new body system might be enough to get rid of enough of the permanent nerve damage during high-level sparring (as there'd be bones to protect sensitive tissues), and I'll probably put in commander-guided sparring for low-skill dwarves (with a few associated skills for that, and perhaps some well-defined stages for that). I'll also include some personality effects that'll lower problems for dwarves that have a touch of caution. Rather than capping weapon skills for training dwarves, there will likely be a few new skills and other bits of knowledge that are more readily learned during actual combat, though a commander with those skills and the ability to teach will probably be able to pass many of those along in part.

    There will likely be some other equipment changes, and other changes in general (as with how elite soldiers are handled interface-wise etc).
  • 10/09/2008Toady One Hopefully the forum is working for everybody now (not that it's connecting to the database properly as I type this...). Anyway, the DNS information seems to be back online for most people.

    I haven't finished the body stuff (of course), but as I said before, I'd like to change gears yet again to make sure I'm touching the major points for this release before I go back and do some clean up. Next up are the squad control changes. I'll let you know what that means once I know -- I'm filling in the outline when I get started tomorrow. On the 16th, I'm going to get back to positions and then the underground, so that by the end of October I've taken a stab at everything that's going to be altered for this release (aside from bugs). After that, I imagine it'll just be another one of those massive countdowns while I complete the goals I set for myself this month.
  • 10/07/2008Toady One The forum seems to be experiencing some difficulty now that the site has been moved over to the new server, possibly because it thinks in terms of "bay12games.com" and the DNS changes haven't made their way around yet (the old IP at bay12games.com is redirecting to the new IP, and the forum doesn't like that). I can't log in myself to try anything out. In any case, it looks like people won't be able to post for a bit. If any people with SMF experience find this unusual, please let me know, otherwise it looks like we'll just have to wait for the DNS changes to "propogate throughout the internet" or whatever it is they say (this may take a few days).
  • 10/06/2008Toady One There's a server move coming up this week at some undetermined time, so there might be a temporary disruption depending on how that works out, but it shouldn't cause any problems at all if I'm understanding the process correctly. Still, if there's a connectivity problem, there you go.

    I've written up my body outline and started in on that. Due to the compat break, I'm starting with support for basic di/polymorphism for creatures and moving on to creature/plant material lists (including all of the extracts and whatever else). I've set aside three more days for this right now (and obviously more later, since I won't finish in three), but the order after mats is roughly: tissue layering, body part relationships (encasement, relative position, etc.) and sizes (and some new parts like teeth, claws/nails, lips, ribs, hair, etc.), improve the attribute system a bit, do appearance phenotype-like stuffs, size information, and then with that backing, get into wounds properly without having a simple placeholder first, then healing/scars (and thus better pain handling), and then descriptive paragraphs (not just for wounds but the rest too, which will further individualize everybody, hopefully in a satisfying way).

    When extracts come up in the separate material lists, this'll probably invite an expansion of the venom/poison system beyond the current stun/paralyze setup. Going over to explicit materials for tissues will probably also lead to a replacement of the damage blocking system (and probably thereby a sort of insane-yet-proper increase in challenge for creatures like iron men that'll have to be matched by more tactical options over time).

    As a result of tissue layering, the 15 HP per BP system is being more or less dropped to make way for individual wound tracking. Unless you look at the specific descriptions, you'll still have wounded BP lists and so on displayed in pretty much the same way, though. Aside from having more accurate combat text (though I'm not sure if that's coming with this push) and the scars/improved healing/pain management that come from wound tracking, it also means that smaller creatures will be able to cause very slight wounds to large creatures in many cases where they'd do nothing before. A 1 out of 15 guaranteed BP HP drop is too large in many cases (thus the current no-damage chances), but adding a scratch to the skin tissue doesn't have to count for so much. So even if you aren't really hurting the titan, at least you can make little marks on it and bother it or something.
  • 10/05/2008Toady One There are a few hundred things left to do, but that's it for positions for now. I'll get back to it at the end of the month. The next four days will be for as many healing/wound/body-stuff revisions as I can throw in, and the six after that will be for squad control and related changes.
  • 10/03/2008Toady One Here's one of those dev updates I promised, and, well, nothing interesting, as expected. I'm just sorting through how the different responsibilities for positions work, and it percolated today through the code from meetings in dwarf mode to adventure mode conversations to world gen attack decisions, and as the percolation occurs, more bits are invalidated. There's an end in sight anyway. The immediate upside will be the improved military structure, and if you want to count the modders' ability to add a new elected position of "Happy Care Dwarf" that handles all of the worker complaints instead of the expedition leader, you can count that too. Even the immediate upside is not that immediate though, he he he -- I'll be doing this for a few more days.
  • 10/01/2008Toady One I updated the mayor election and initial position selection code today. I don't want to feel like I'm getting bogged down again, so I'm going to switch gears on the 6th directly to squad control and other dwarf mode military matters and then the wound system and then return to positions when I'm satisfied with that. Of course, if work flows smoothly with positions I might have extra time, in which case I'll be able to get started on various new stuffs lurking underground throughout the world. I'll try for more regular dev updates but the position coding isn't any less dry than last month.
  • 09/21/2008Toady One I'm over on the new computer and everything is compiling fine over here, although some annoyances delayed things a bit... it's 10AM now.
  • 09/19/2008Toady One Moving operations over to the new computer tomorrow, which is just as well since this one now restarts itself occasionally while I'm working.
  • 09/18/2008Toady One Nothing interesting to report. Currently going over screens, etc. updating to the new position system. Then it'll be on to using the new structure to implement some changes to how squads work, which will hopefully address some long-standing issues with the military.
  • 09/15/2008Toady One The annual smoke detector test and de facto apartment inspection is tomorrow (or about 4 hours from the time I post this). I unearthed well over half a year of anti-inspection today and was reminded of the tells that were built in layers on the debris of previous occupants, except in this case there was only one relevant occupant, so archeologically speaking the only person I could learn about was myself. I've concluded that the people of my civilization didn't clean regularly and that they were probably in a commensal relationship with a variety of arthropods and small mammals.
  • 09/13/2008Toady One Aside from the trade-oriented positions, the raws are shaping up well enough for the load and injection into the actual program. As far as randomization goes, two complementary notions that might be floated are that (1) the raws govern choices between and variations on different position structures set at the start of world gen and (2) the raws govern how freely position structure is allowed to evolve during play based on other entity/creature characteristics. (1) is sort of a mess looking for a real scripting language, and (2) is a challenge to program seeking some additional guiding structure.

    The current idea is to experiment with (2) both for fun and to get a better idea of what guiding raws are needed and also what (1) might look like. I'm not sure if the tag will survive, but demons will likely be given megabeast status (as was the idea before I ran out of world gen time before the last big release) and that many elements of the current goblin societies would arise from somebody like the demon taking control (and so be related to the demon's personality and spheres). For the sake of (2), goblin society itself will be free of raw-defined positions, and they'll attain their structure during the course of world generation, governed by their goblinness (ethics/personality stats), which would hopefully cause enough of a lack of cohesion for demons etc. to step in. The same free-form setting goes for kobolds, though that is more constrained as their ethics are more strict. Humans will be allowed a free-form civ level structure (they don't even have one now) allowing them to form and split site groupings while maintaining a strict site structure, and elves will have a strict civ/site level structure while having a variable trade structure (not that this will be really well-defined until we get around to the caravan/resource stuff). Dwarves will be dwarves as you know them for now, with the added military structure. Changes for them are more of an interface burden due to the demands of dwarf mode, so I'm going to work more carefully there. Ideally all of the civs would be allowed to float a bit with the position raws being there to allow people to force structures of their choosing for mods, but I'm going to keep some strict structures for now until I get this figured out.

    No matter how it turns out, we'll still have the new position raws, but I thought I'd mess around with this a bit. I'll also be lifting ethics up into an entity instance rather than entity raw definition set of variables, so that they can vary between civs and change during play. Not sure how much I'll actually do with that now though. I'm planning to get the necessary dwarf mode changes in after I handle the raw loading to avoid getting bogged down in world gen again.
    • made a region's raw files reside inside of the region save folders
    • fixed credit for companions on reaching summits
  • 09/11/2008Toady One I'm still sorting through how to set up the new entity raws. I didn't want to hardcode any of the new military positions, so all of the entity positions will be coming out into the raw txt files. Your monarch, the hammerer, the outpost liaison, as well as all the site appointments and the guard positions, and the rest will all be there, in addition to some military structure (which will have to depend on site size among other things). I haven't yet decided how much randomization will be there at this time or how that will work (it's one of the near term goals posted so it has to be respected now to save myself some time later). In any case, it's sort of off-and-on work, since there are a lot of stumbling blocks that need to be stewed over. From the Future of the Fortress goals, I'm elevating
    • Improving military organization/command structure
    • Having civ/site leaders organize armies and continue world gen wars
    • Improvements to dwarf mode squad control
    • Make caves and the underground more interesting
    up to "current" status and downgrading the rest back to "future", and these will be the minimum for the next release.
  • 09/09/2008Toady One I was a guest for part of Evil Avatar Radio's latest broadcast which has now been posted on their website.

    Nothing interesting to report DF-wise yet.
  • 09/07/2008Toady One The main project today was rooting out the tangle of compatibility code and then extending the material system enough to support id numbers (which involved generalizing aged code all over the place to a more resilient system I hopefully won't have to pick through again anytime soon). As a trivial first test, I made it keep track of the identity of blood spatters (the idea for that material type in general is that later if you have a vial of a particular somebody's blood, etc., it might come up in a magic system, etc.). This will also make various custom materials easier as well, though I'm planning to stay on track with the military changes (for which I'm still sorting out the raw entries) as well as the fleshing out of the underground. There are still a few other compat changes I need to do, but I'll do those later in this release cycle.
    • updated material code
    • individualized blood contaminants for historical figures
    • fixed some raw typos
    • other compat changes
  • 09/06/2008 Released Dwarf Fortress
  • 09/06/2008Toady One I don't think I'm going to manage to update the military structures without a save compatibility break, so I'm putting up a version now. All of the saves I've received (and any against 40d) will still be checked and used for bug-fixing, but they won't be usable in future versions. This will be the second time in two years that I've done this (the only other time was the addition of the Z-axis, if I'm remembering correctly). I imagine it's healthy -- I've got quite a list of desired changes that aren't possible without a compat break piling up, many of them otherwise trivial, and it'll be nice to handle them.
    • stopped thrown tantrum items from causing dwarf to become site enemy
  • 09/04/2008Toady One I cleaned up what might have been the main cause of hard-to-find adventure mode related crashes today. The same problem was also causing crashes on abandonment of a fortress. I caught up with suggestions and have only a few more pages of bug reports which shouldn't impact tomorrow too much.
    • resolved shared item conflicts during map offloads
    • prevented units with shared items (eg stuckins/wrestles) from leaving the dwarf mode play area
    • made adventure mode store transactions respect containment
  • 09/03/2008Toady One With the help of some emailed params I managed to fix up what's probably one of the more frequent world gen crashes, although it was a bit taxing, since the example crashed at year 601 in a large world (time-consuming to debug/test), and I had to scratch my head over some scribbles of family trees (more like family graphs...) before I sorted it out. Then I jumped back to the suggestion forum and email. I'm almost caught up now. I'll probably be able to move on from this puttering around by the 5th or the 6th.
    • got rid of world gen crash during succession after death of prolific long-standing position holders with inbred descendants
  • 09/02/2008Toady One As I continued to catch up on my bug report and suggestion forum reading, I managed to record the 1000th bug on the list today. The honor goes to "liaison with missing foot brings a new sock and shoe every time, dropping them at the map edge". Fortunately, fewer than one thousand reports are still open, and I knocked off some of the easier recent reports. There are a few other crashes and recent crucial bugs to take care of. Then I can get started on the new stuff.
    • fixed crash from human siege campfires
    • made combat-produced chunks respect forbid orders
    • made cats able to carry vermin properly again
    • stopped dwarves from taking their current hauled object off to bed when they schedule a rest due to injuries
    • stopped dwarves from choosing to sleep on top of traps
    • made sparring dwarves work on their selected weapon/unarmed skills rather than using their best skills
    • got rid of erroneous goblin siege announcement for elves
    • stopped custom profession names from obscuring recruitment announcements
    • made forbidden items count toward wealth properly
    • stopped fell moods from occurring if the fortress race does not drop a corpse
  • 09/01/2008Toady One First day of the month slow as usual. I'm still digging myself out from the post-vacation pile. I'll probably be fixing bugs for a few days while I decide how to approach military restructuring and the first pass on underground changes.
  • 08/21/2008Toady One I ended up staying up through the night and into today on the strength of the coffee, but it's just as well since I managed to get rid of the awful 40b and when I go on my trip I'll want better hours.

    If you are having flicker trouble in 40c with PARTIAL_PRINT turned on, try leaving the G_FPS_CAP at 50 and setting the PARTIAL_PRINT number to 100. If that helps, try lowering the numbers until you start having trouble again to get some more speed out of it. Hopefully we'll get the core issues sorted out soon and there won't be a need to fiddle with settings like this. If you leave PARTIAL_PRINT off, and you were having FPS trouble on the title screen, you'll likely still be running slow. I know some people are having luck with PARTIAL_PRINT and some aren't. In any case, the month-end break begins now and we can continue to address these issues next month. I'm also hoping to add some new features as well, since it has been a while now.
  • 08/21/2008 Released Dwarf Fortress
  • 08/21/2008Toady One Coffee. There was a problem, should be fixed now.
    • fixed a problem with the display
  • 08/20/2008 Released Dwarf Fortress
  • 08/20/2008Toady One New release is up. One more if necessary tomorrow, then the month-end break. I'll be one state away for about four days in there, going to a zoo and mining obsidian (really).
    • fixed problem potentially capping caravan wagon number at 2
    • fixed wagon occupancy problem leaving behind flags that stopped construction
    • fixed problem causing single tile mountain civs from using feature plants
    • stopped reclaim from creating a second site at the spot
    • added windowed/fullscreen grid sizes
  • 08/19/2008Toady One Various bugsering. Probably a new release tomorrow. Some new PowerGoals are up.
    • fixed reclaim crash from units holding multigrasp clothing
    • handled some other potential multigrasp inventory indexing issues
    • handled new forbid orders vs. butchery, severs and sever-drops
    • fixed problem with delay on up digging tasks
    • stopped dirt road construction at glacier/stone interface
    • fixed problem with map export and flashing job markers
  • 08/18/2008Toady One Mostly (actual) headaches and graphics head-scratching today, but the cursor trail bug is gone now. Going to pull back from the new screen refresh code a bit until some of the problems are sorted. As usual, there are problems on other computers that I can't knock off quickly on my own or even reproduce. People have written up some possible fixes and are looking at others, but I don't have a timeframe for this.
    • stopped designation cursor from leaving a trail when the minimap is updating
    • added an init option for partial screen refreshes (defaults to off)
    • fixed lockup for glassmaker moods where the glassmaker doesn't like glass
  • 08/17/2008 Released Dwarf Fortress
  • 08/17/2008Toady One New one's up. If there are problems, I'll try to take care of them and post a fixed version by the 21st, after which the month-end break begins. The new dev items are up, specifically Core items up to 100 and some new PowerGoals.
  • 08/16/2008Toady One Okay, that's finally done (the Core stuff). If things go well, I should be able to post that and the new version tomorrow. There were a few things here and there that I might have wanted to expand or split up with the new dev items, but I'm hoping it's more or less a v1 outline, and for now I'm happy to keep it exactly at 100 total items for my silly version number. That said, if you have concerns about what's missing after I post it (keeping in mind that most of the Reqs have to be done as well), go ahead and post about it on the forum. Quite a few of the new items simply reflect Future of the Fortress entries that didn't have a corresponding Core entry (and thus didn't mark any progress toward v1, which is kinda disheartening).

    Supposedly it won't be in the high 80s after tomorrow, which would be nice. At least I have my new fan now. The summer's no good for this project, especially since this new apartment has proven to be pretty Talentless when it's hot (it stubbornly stays hot all night despite my attempts at ventilation, which are somewhat stymied by what seem like three-pack-a-day-and-all-night neighbors).
  • 08/15/2008Toady One Uneventful testering and devnotesing. The Core number is up to 100 (outlined but missing some descriptions, so unposted), and they should now be a very rough draft of v1. The version number is given by <N>.<Core>.<Req>.<Bloat><letter>, where N is all but the last two digits of the number of Core items completed (leaving us with version 1 when I finish all these up). I'll get the new list up with or before the release, which should be in a few days if nothing weird happens. I still have a ton of Req and Bloat items to write up, but I'll spare you that wait this time. I'm hoping to leave a few days before the 21st so I can resolve any serious problems and release again if necessary before the month-end break.
  • 08/14/2008Toady One I noticed that Bloat355 was halfway done, so I decided to finish it (ability to place notes on the embark screen).

    Having missed the only economic stone I mentioned by name the first time around, I added obsidian to the list. Bauxite can't be added cleanly at this point due to some annoyances with the mechanism job and other stones.
    • added notes for embark screen
    • made obsidian an economic stone
  • 08/13/2008Toady One For embark profiles, it'll save the skills, items and pets you've chosen to bring along in a text file which you can load up the next time you embark. You can keep as many profiles as you like (within reason of course). The downside to the method I'm using is that it won't try to cover for objects that aren't available for your civilization -- it will list the problems that came up in a window that you can pull up any time during embark preparation to help you patch up the holes manually. Missing items will generally be things like particular fish etc., that weren't available in the civilization's area, or difference in mods and so on. I can put in something more general later, but it'll take a bit of work to get it to auto-patch (e.g. it would choose perch instead of turtle, etc.) so that won't be done this time around.

    They'll place items a bit more responsibly now in bags, barrels and bins. I had all 7 dwarves walk the seeds they were hauling across a stockpile filled with empty bags and drop them off in the same seed bag in the food stockpile that was further along down the hallway. The default options are set to do this quite aggressively, but as your fort gets larger it might become a liability for them to pass up empties, making the long trek to the lone seed bag. You have a bit of control over this in the init for now, and as we figure out more about what we want, we can start moving options into the in-game interface and add more specific options for different item types, locations and so on.
    • finished embark profiles
    • made dwarves prefer to combine items in existing bags/barrels/bins with init options to govern this behavior
    • added forbid-on-death orders for your corpses, other non-hunted corpses, your items and other items
    • added forbid order for fired projectiles
    • made zombie/skels that die in cages have proper corpses
  • 08/12/2008Toady One I'm pretty much through with saving embark profiles. I had to generalize some of the item txt file handling for the embark profile files, so there will be the added benefit of allowing item corpses and the reaction raws to use more item types, from plants to bones to extracts etc. Corpses and their pieces as well as prepared food, being more complicated objects, are still not properly supported.
    • worked on saving embark profiles
    • fixed problem with up/down windows in adv mode for larger grid sizes
  • 08/11/2008Toady One I got some stories out yesterday like I wanted to, but the stack is still there. It's an ongoing project. The bug count had crept up to 394, so I took some time on that today.
    • fixed problem causing site finder to miss areas of the map when hunting for hidden features and rivers
    • changed how fireballs interact with the ground
    • fixed problem with nobles pushing prices out of the displayable range
    • stopped new kitchen restrictions on contained items from causing no-ingredient food items
    • stopped new kitchen restrictions on free item from causing silent cancellations of cook jobs
    • patched up decorated ammo values a bit
    • made cageless traps display properly in all circumstances
    • stopped the one-step key from messing up pausing when in a menu mode
    • handled adventurers retired while sleeping
  • 08/09/2008Toady One I guess that was the two year anniversary of the first public release yesterday, even if I didn't remember at the time. I'm doing my best to get to bed by 6:30AM today... all sorts of things have been keeping me awake, so I've only gotten about eight hours in the last three days. Last time it was my neighbors dragging what sounded like a concrete artillery bunker up against the stairwell as they were moving in to the apartment across from me.

    Various extended grid cleaning today. I got a 200x150 grid just-embarked 17 FPS map up to 36 FPS by the time I was done, and I've also done some things that should help people with title screen FPS trouble, although that's going to depend on exactly what the trouble is. Tomorrow, I'm going to try to chip away at the ASCII Art continuations that have piled up (I have some embarrassingly old ones to catch up on), so I'm not sure how much of the night I'll have left by the time my brain burns out on story writing.
    • did some display optimizations
    • fixed problem with cursor scrolling vs. y coord in expanded grids
    • fixed display mix-up with FPS/GFPS counter in main dwarf screen
    • allowed mouse designations to work below y=23
  • 08/08/2008 Released Dwarf Fortress
  • 08/08/2008Toady One The next one is up.
    • fixed crash involving lava pushing objects
  • 08/07/2008Toady One All right, I did what I needed to do with refugee/migrant groups, so I greened out the Future of the Fortress item (of course, this has little to do with dwarf mode migrants at this point -- it's just about world map group movement, preparing for caravans and armies, and later dwarf mode migrants). Now I'm moving on to some tests and bug fixes. There should be a new one up in a fewish days.
    • made various changes to group movement on the world map
    • made detailed map export respect new peak heights
    • fixed export problem with non 80x25 version region maps
  • 08/06/2008Toady One The refugee groups will now get their own wandering 'armies' on the map after world gen is over instead of being relocated to (occasionally hostile) existing sites. In the game I tested, an elven diplomat had been imprisoned by the goblins but escaped 28 years later and fled into the mountains, by that time the only elf left in the small world. It shows these new groups from a distance at this point, so I was able to hunt him down after trudging up four tiles of mountains ('T'ravel let me recenter on him once I got to his square -- clunky, but it works for now). He recounted stories of how the goblins had killed his family while he was imprisoned. It was sort of depressing. I just need to mess around with a few aspects of how the groups move on the map and I can check off the Future of the Fortress item. I'll probably release a new one around then, but before that I have a few little things to sort out (a couple Mac key issues and making sure the new viewport code works there, and some other tests), so I'm not sure precisely when it'll be up.
    • gave world gen refugees entities and realized them as moving groups on the map after world gen
  • 08/05/2008Toady One Zach's birthday party was fun. We hadn't played a sports game in 17 years or so (the last one was Mike Ditka's Ultimate Football), so we tried out MLB '08: The Show on a PS2 my parents got him. It was a pretty stark difference between then and now (when I say now, I know we're not even on next-gen hardware). We lost our first and only game against the computer 30-0, on rookie, and the announcers constantly made fun of us, he he he. I got back here at 1AM and managed to mostly get through email and forums, but even at 4AM it was still in the upper 80s in my apartment, and miserable. I'm using my fan to cool my laptop now, and that didn't come back and bite me until today, since I can't point it at myself. I'll get that sorted out tomorrow.
  • 08/04/2008Toady One After some forum activity, I bumped up a few things I'd been putting off for a long time -- notification and history events for reaching the top of mountains in adventure mode. It'll pop up a little window if you succeed, and both you and any buddies you brought along will be credited in the legends. Right now it does this on a per-world basis, so it won't bother telling you if your character has climbed a mountain that has already been climbed, but I can change that around later. I also made the peaks taller locally so that they shouldn't often be disappointingly flat. It doesn't currently credit your dwarves if you start your fortress on a low peak or volcano that happened to be accessible.

    I got movies working at all grid sizes today, mostly. There are some oddities. I saw a weird flicker that didn't reproduce, and the last frame seems to resize sometimes, but it was all pretty minor. If you record a movie at a large grid size and then play it back when your game is set at a small grid size, it will squash it, but you can still watch it. The title movies (and any small movie) will stretch to fill the screen (unless you turn on black space, I think, though I haven't specifically tested black space with the title movie yet).

    It'll also tell you now if all of the dwarf death at your fortress is driving migrants away now (no migrants were coming and it didn't say why, causing confusion).

    Although Threetoe's main birthday celebration is at the end of the month (coinciding with his vacation), his birthday is actually tomorrow (the 5th, so more like today, it being 8AM on the fifth now), so I'll probably be starting a little late tomorrow (today).
    • added notification and history event for reaching summits of peaks and volcanos in adv mode
    • locally steepened peaks a bit
    • added notification for low migration seasons
    • handled movie dimension conflicts
    • handled problem with visualizer, scrolling and other grid issues
  • 08/03/2008Toady One You can now expand the view in a basic way in the init. Other screens generally aren't covered. The main one is mostly not covered too, but at least you can fit everything and still see quite a bit. It lets you resize from 80x25 up to 200x200 choosing whatever numbers you like. I didn't go larger because I didn't want to bloat some of the screen-dependent buffers, but if people use small fonts and want even more tiles, that can be arranged at a later time. If you don't resize the window or choose a larger full screen resolution, it'll squash them. When I was running at 125x50 I didn't notice a speed decrease (at all), but if you are getting lag on the title screen or are otherwise just able to print what we've got now, there might be speed issues caused by printing more tiles. 80x25 movies will play at higher grid sizes, but I haven't tried recording and I'm sure it doesn't work. I also updated the legends screens and text viewers, but I didn't go through other screens since I don't want to muck around too much with code bound for gutting by the more robust rewrite that'll come later on (I did a touch of that today, but nothing visible). This particular change was something that people have wanted for a very long time, and I mentioned that I'd do it within a reasonable time frame back at the April 12th get together. So there it is. For the next release. Which probably isn't all that far away. More bug fixes and other minor changes to follow first.
    • allowed basic expansion of 80x25 grid
    • fixed problem causing just good or just evil params not to function
    • added object of worship to religion view in legends
  • 08/02/2008Toady One Various fixes.
    • stopped many bottomless pits from having their upper portions filled with lava
    • made reclaim dwarves start with the proper civilian labors enabled
    • stopped message spam from pit/pond/chain/cage jobs where the animal is inaccessible
    • stopped note entry from conflicting with a few of the keys
    • made constructed ramps stick around even if you dig out the walls near them
    • fixed erroneous upper cap on detailed temperature export values
    • fixed problem that caused peaks to be raised in flat areas during erosion
    • suppressed erroneous "Zeroth" text for non-finalized history collections in dwarf-mode art descriptions
    • made usable/unusable option appear when metals are selected in weapon/armor stockpiles
    • fixed spacing problem with related hist fig race display
  • 08/01/2008Toady One As usual, the month starts off slow as I work on my inbox and otherwise unbury myself. Managed a few tweaks. The open bug count has shot right back up again, as you might expect after the recent major release, so I'll probably be working on that for a bit while I plan out the next step, which'll likely be getting the migrant stuff out of the way. Then I'll be one step away from opening up the army/caravan goals on Future of the Fortress.
    • added world name to top of history file
    • fixed problem with the evil/good conversion of very large subregions
    • fixed lockup from dragon fire modded civs in world gen army fights
  • 07/23/2008 Released Dwarf Fortress
  • 07/23/2008Toady One Thought I'd fix up a few things that cropped up with the last one. Future of the Fortress is up, though I might change it around a bit more, and I still need to put up hundreds of new dev items. I'll be back next month.
    • stopped crash in site finder from large x dims
    • changed designation selection timers (aka lazy miners)
    • made site finder use embark rectangle size from init options
  • 07/22/2008 Released Dwarf Fortress
  • 07/22/2008Toady One The third fix release is up. Matthew Boyd of kwanzoo.com and Three Panel Soul interviewed me on IRC and is posting the interview in parts starting here on kwanzoo.
    • added init options/world parameters to show map features during embark
    • added basic site finder to embark
    • added a few optimizations for rivers and designation job selection
  • 07/21/2008Toady One The plan is to work through tomorrow and then post a version. The 23rd will be used to prepare Future of the Fortress. The 24th through the end of the month will be spent on the Month End Project/break, as stated previously in the report.
    • stopped message spam from repeated animal taming job when no food is available
    • stopped message spam from caging and other jobs when a dwarf is picked that is already leading another animal
    • made dwarves cook quarry leaves properly
    • allowed scrolling and premature stoppage during world generation
    • added display and other features relating to last seed used by world gen
    • added world gen parameter for minimum cave size
    • stopped people from giving quests to kill themselves
    • stopped abandoned stores from being stocked
    • disallowed placement of non-empty bags as container buildings
    • changed insanity text for animals
    • fixed some other minor typos
  • 07/20/2008Toady One Continuing along with the minor fixes and additions.
    • made volcanic shafts that are visible in embark always exit through the surface
    • handled some cavein-at-start cases from pits and volcanos
    • stopped farming restrictions from stopping setting up other seasons
    • stopped dwarves holding a two-handed weapons from seeking another weapon if they are set to carry multiple weapons
    • added races to historical figure list and event text
    • did more context-based name shortening
    • added ability for speakers to use first person when talking about historical events
    • capitalized first names in trading screens
    • got rid of some erroneous birth date display information
  • 07/19/2008Toady One Fixed more problems with the rest job and added some help for world gen infinite reject cycles, as well as some extra options for detailed map export. You can skip rejects now once it warns you that it thinks it is in a loop -- of course, if you do this, your seed won't be the same as somebody else's unless they follow your lead, so keep that in mind. I'll be continuing along with bugs and small additions for another four days.
    • allowed resters to get up once they are not wounded
    • allowed resters to move again if they've made bad decisions about where to plop down
    • added various detailed map export options (elevation, temperature, etc.)
    • made the generator skip more of the minimum reject values if presets are present
    • made the generator pop up helpful windows after many rejects and give an option to continue, abort, allow that reject type, or allow all rejects
  • 07/18/2008Toady One I did many crayon drawings and should have them in the mail in a few days. I also fixed some crash and world gen bugs and added a way to place little notes in dwarf mode. Right now they are tiles you can see from a new mode that each get a settable symbol, color and up to 100 characters of text (it'll display the text of the one closest to your look-mode style cursor).
    • fixed crash on large 100 volcanism worlds
    • fixed load crash from nullified items
    • fixed crash from friendship evaluations when stuck merchant animals give birth
    • stopped lockup on artifact creation when 6-7 of the same material are used
    • fixed region rejections from savagery (civs still reject savage regions)
    • made params load the post-region count variables properly
    • added ability to leave notes on the map in dwarf mode
  • 07/17/2008Toady One Another mostly email/forums day, but again I managed a few (minor) changes. Tomorrow I'm probably going to handle my crayon art backlog that goes back who knows how far, then I'll be looking at the stack of bugs and take care of whatever I can for the 23rd. Hopefully the revised Future of the Fortress will also be up by then.
    • stopped ramp removal from highlighting hidden areas for regular dig
    • stopped masterwork ammunition used in weapon traps from making creators go insane
    • stopped removed constructions from removing the floor if another constructed wall is below them
    • made viewing historical event artwork in dwarf mode reveal events
    • stopped double listing of modded MEGABEAST/POWERS in age name
  • 07/16/2008 Released Dwarf Fortress
  • 07/16/2008Toady One The second repaired version has been posted. I'll probably post the next round of fixes on the 23rd if nothing really pressing comes up.
    • fixed bug stopping fish/turtles from being available during embark selection/trade
    • fixed rng issue causing duplicate cave names and other problems
    • sped up the history export, especially on worlds with lengthy histories
    • stopped merchants from complaining about depot when there is one there
    • stopped hidden items from making buildings invisible when they are used in constructions
    • stopped parameter seeds from being set to Various when you abort a randomly seeded generation
    • stopped adv mode conversations with paralyzed/ko'd people
    • controlled long names during trading
    • moved "Desel All" out of the way in build menu
    • allowed artifact gloves to be left-handed, based on handedness of creator
    • changed King's to Royal in advisor title text
  • 07/15/2008Toady One Mostly sorting through email and bug reports today, though I managed a few fixes. The pathfinding problem came about through an optimization that I had done improperly, so now that that's handled, walking around in adv mode seems a bit faster. I'm not sure how much of a noticeable impact it'll have in dwarf mode. I'll probably fix a few more bugs and release again at the end of the work day tomorrow.
    • fixed problem with pathfinding that caused jobs to be randomly cancelled
    • stopped people from saying RANDOM_DEF_SPHERE when they talk about their megabeast deities
  • 07/14/2008 Released Dwarf Fortress
  • 07/14/2008Toady One The first repaired version has been posted.
    • fixed bug causing dwarves and others to sleep forever
    • fixed a few crashes with maps with Y dimensions larger than X dimensions
    • fixed another world gen crash
    • fixed bug stopping caves from appearing
    • fixed bug causing hauling, cleaning and health care professions to disappear from labor list
    • made the escape key work properly when setting world gen parameters
    • loosened travel restrictions based on enemy seeing the player
    • changed effects of temperature on food objects
    • changed creature layout during ambushes
    • stopped world gen roads from being obstructed by swamps and fixed a problem with how they handled slopes
    • stopped world gen animals from starting as drunks
    • stopped null civ membership from being added to moving megabeasts
    • changed the text for culled historical parents
    • fixed problem where tundra rejects were being logged instead of grass/hill rejects
    • fixed some grammar issues with battle summaries
    • fixed "Peasants" display in status
  • 07/13/2008 Released Dwarf Fortress
  • 07/12/2008Toady One 1. It'll be tomorrow or the next day, depending on this and that. Well, I guess there's only one this or that left, so pick one.
  • 07/11/2008Toady One 4. It's not exactly a pleasant four, but it's also nothing that can expand into additional countdowns, anyway. I wouldn't count on a release tomorrow, but after that it's feasible. I don't have any stats calculated for wars, but it'll give you some simple breakdowns on battles and duels now. I got tunnel bridges over chasms to span multiple z levels when it feels the need to make the two openings in the chasm wall at different elevations. Deep river canyons can still occasionally cut tunnels in half, and I'm sure there are other problems with it, since there's a lot to test for. I also set up some confirmation dialogs and loading progress indicators here and there, and dwarves can now get tired of repeated helpings of the same food and drink, so you'll have to broaden what's available slightly if you don't want a minor yet fortress-spanning set of complaints.
  • 07/10/2008Toady One 13. Tunnels still have various problems, but I'm going to let some of them sit a while. I gave constructions names. For their tunnel, the dwarves went for "The Courageous Passage" and a bridge within it was called "The Bridge of Fame". When they were feeling less brazen, they went for "The Trustworthy Bridge" and "The Stable Bridge". The goblins went for tunnel "The Feverish Gutter" and "The Bridge of Bunions".

    It'll now explicitly state in the legends when a former prisoner or slave is reunited with their spouse or parents after an escape or liberation. Asmur Senseking was kidnapped at the age of five and escaped at the age of eight, returning to her old home and reuniting with her parents. When she grew up, she became a farmer, though she was involved in a war with the elves and managed to kill one. After that, she got married and became a guard. Her second eldest son Nebo was abducted, and they were reunited a few years later after he escaped, but unfortunately, Nebo was abducted again, this time for good (he was later murdered due to unspecified internal strife at the goblin tower at the age of 70, after having committed a murder himself). As a guard, Asmur surprised and fought off three snatchers, tearing off the ear of one. She also cornered and killed kobold thief Jrifigolgus, who had stolen 17 trinkets during a 38 year reign of skulking mischief. Asmur eventually left the guard at the age of 64 to become a priestess of the goddess of lightning and the sky. She died of natural causes five years later.

    For reasons I might have mentioned before, the human towns don't fight with each other very often, but they do get into fights over religion occasionally, even if they belong to the same civilization. There were two neighboring towns, Bronzeroasts and Cottageriddled, connected by a dirt road. Ono Strengthseizure led Bronzeroasts and worshipped Ismir the god of food and fertility. In the year 86, Coni Clasppriests came to power in Cottageriddled, and within three years, the invasions had begun -- Coni worshipped Spugac the god of blight and wealth. After 23 years of fighting, Ono had been killed, Bronzeroasts was conquered and Coni installed a new leader... whose religion I sadly forgot to check, though the wars stopped after that, so we can make an educated guess as to what it was not.
  • 07/09/2008Toady One 19. You can now set a world history seed independent of the map creation seed in case you find a map you like where you want to run a few different civ configurations. I finally got around to setting personalities for the adventurer/scout/hunter types (beyond the personality settings for former players that I did before), so it's not so hard to find people to join you now, though a lot of them are more experienced than you are at your starting skill level and won't join up with you for that reason. That can be handled in many ways later.
  • 07/08/2008Toady One 27. I did a little bit with peace-making and various other things, but nothing special.

    In the absence of more fitting information, it currently looks at personality when it decides who should be designated a drunk after world generation, and it spares those with profession names (like crossbowman, diplomat or mayor) the unit type change to "drunk" even if they have the personality traits. That is, only those without special titles become official drunks.

    The demons start as the leaders of their goblin civilizations, but they aren't called kings, though "demon king" is of course a well-travelled and honorable name for an adversary. Demon mayor sounds pretty bad, and they don't use weapons at this point, so you don't have demon swordsmasters or anything like that. They are just demons. So, today, I saw my first "Demon Drunk". In particular, it was "Olsmo Parchphantom the Sinful Vice, Demon Drunk". Parch is a fire-linked word, so we got lucky with that one. The others are all linked to the evilish spheres for the demon. Olsmo had giant spider silk gloves and socks, among other clothing, as well as goblin bone and leather rings, bracelets, amulets and earrings from several victims of murder. The tower was too far away for Olsmo to have met any other sort of civilized creature, but I imagine the more important question was whether or not the tower had a goblin brewer.
  • 07/07/2008Toady One 49. Mostly snatcher tweaks today. Also, world gen prisoners can now be captured and tortured for knowledge about site locations, and goblins will now murder each other occasionally.
  • 07/06/2008Toady One 59. I had to get up at 11:30 AM (AM!) today, so I was a little fried, but it's a continuing mission and I'm still on schedule to finish well before the 23rd.
  • 07/05/2008Toady One 68. Fixed various long-standing smallish problems with edges of maps not lining up properly and with site item/construction locations. The idlers readout can be init'd to the top border or left where it was on the bottom border (or turned off entirely) -- the default is now up top.
  • 07/04/2008Toady One 77. Quest 1 Quest 2 Quest 3. Three adventurers, three quests. I haven't done much with varying the speech, but it'll be different for war or kobolds, for instance. The third one is a quest to kill a previous adventurer, who had been bad. That adventurer had killed a crossbowman, unprovoked, and fled to the neighboring dwarven town, where he retired. When my quester came to deal with him, he called me out (he recognized me as a citizen of the town he hated) and I managed to win. This set his new dwarven buddies on me, and I had to kill a few before I could sneak out.

    Prior to fighting the adventurer, I had bumped into the dwarven mayor, and he had a quest to kill a cyclops. The cyclops had killed forty-six dwarves, including the mayor's second eldest son and two of his uncles (I didn't have to hit the legends screen for it this time). Even though the mayor was against me now, I thought I'd take on the cyclops anyway. I was a human, prior to being hit in the face once, so it didn't end up counting for forty-seven, but it did end up counting for six when I talked to a nearby human leader with a new guy. Unfortunately the incident with the dwarves didn't evolve into a wider conflict, but that'll be fun to get to when I get to it (not for this release).
  • 07/03/2008Toady One 88. I killed a goblin spearmaster that was wearing two elf bone bracelets, one for each of his kills during world gen. If the demon has been busy, it can sometimes be weighed down by such trinkets.
  • 07/02/2008Toady One 115. I was testing some adventure mode conversation responses in a human town. The high priest of the god of revenge came down the stairs, and he was an elf with a human name. I talked to him and learned that both of his parents had goblin names, and his grandparents had elven names. So I guessed that his grandparents had been abducted and that the humans had then liberated the tower, placing the goblin-named parents under human control before they had their child. This was more or less correct, but a bit more happened.

    So, way back when, the demon was causing all sorts of trouble, fighting both the humans and the elves and destroying their cities. This went on for 40 years -- an elf managed to tear off the demon's nose about halfway through this rampage, but he couldn't finish the job because he had lost a limb in the fight before the nose-removal and lost the rest of his limbs afterward, prior to being burned to death. Eventually the demon was shot in the year 45 and the humans took over the goblin tower. Many of the goblins fled into the mountains, and others were enslaved, including some of their abductees.

    Ngoso and Bax were a couple of elven children born to abducted parents that were left alone to live in the goblin tower under their new human rulers. When they grew up, they both started shops -- The Enjoyable Paddle and the Lessened Healer -- in the year 45, and in the year 54 they both moved to the human town of Beersreined. The next year they were married and they both decided to wander the wilds looking for monsters to kill (they never found any, as the giants were off on the other side of the world and the dragon was dead). Ngoso had ten children in Beersreined, the third of which became the high priest of the god of revenge after both he and his father were converted by the new temple in 146. Ngoso never converted as she had become a dragon worshipper during one of the attacks prior to its death.

    As a sidenote, the elves and the humans didn't get along very well, and in the year 60 the elves actually drove the humans out of the goblin tower they had conquered. The elves had no desire to live in a goblin tower so they left it abandoned. At this point, the goblin refugees that had been wandering through the mountains for fifteen years reclaimed the tower. They held it for a total of two years before being defeated by the humans again, who were then able to maintain control of the site until play began. I didn't check if any of the goblins managed to escape again.
  • 07/01/2008Toady One 139. We're underway again and it'll be DF until the 23rd or the release date, whichever is later.
  • 06/22/2008Toady One 156. As I stated a while ago, I've been putting off weekends until now so that I can have a fair chunk of time at the end of the month to work on the weekend project without switching gears so often. If you consider this schedule vs. the normal work-week schedule, you'll see DF hasn't been slowed at all (if anything, more DF days in a row helps), but I know some of you are disappointed, so I've hand-made some little presents today, like being able to place multiple constructions via rectangles, being able to select all of the required building materials from one list entry with a single command (so you can select 30 granite at once, though there are no general categories like 'stone' or 'any' yet), dump/melt/hide from 'd', 'hide' from everywhere you can forbid/dump/melt (including being able to hide buildings), forbid/dump/melt/hide right-side unexpanded groups in Stores, and a bit of cursor persistence stuff somebody requested for the Stores screen as well (at least partially). Unfortunately, you won't get your presents until next month. I suppose it's kind of crappy of me to spoil what they are before you've even received them, but it's not like they were going to be wrapped anyway. My next entry here will be at the beginning of July.
  • 06/21/2008Toady One 162. Ruined buildings will show up ruined in towns now, and it'll track the job changes of your dwarves in their legends (you can set a world param to reveal all historical events so you can see them without relying on adv mode if you want).

    If you travel in adventure mode, I made it set your personality to adventurous+excitement seeker so that you'd always be guaranteed to join yourself later if a future adventurer asks. While I was testing that out, I decided to go on a quest. The human site leader wanted me to kill a black bear. I looked it up later in legends mode, and apparently the black bear had been evading hunters for about twenty years and had killed one named Ret Scholardipped ten years prior to my adventure. Ret had apparently married a woman named Snodub Chunkyhells. That's a goblin name... so I thought it might be a bug. Snodub was born in 640 to abducted parents in the goblin city of Profaneflag and lived in the Hateful Fortress. When she was five years old, the humans attack and conquered Profaneflag, enslaving some of the populace -- others escaped to Cursetufts, but Snodub remained and grew up under the new leader, a former high priest of the god of night. She later married Ret and moved to his home town, Glitterfold, where I took the bear quest. Snodub was the only person in the history of the world to have "Chunky" in her name.
  • 06/20/2008Toady One 188. I've finished the largest issues with roads/tunnels etc. that I've located. The tunnels will now connect into the dwarf and goblin sites. As with roads, they look very basic. These are goblin tunnels connecting to three other goblin sites -- in addition to the chasm bridges, you can see a few smaller tunnels, ramps and staircases that lead up into the towers of the site at this location, though you can't see the towers themselves. There's a bug right now where sleeping guards spam unconsciousness messages, which I'm going to fix before the release, but it messed up my attempt to make a tunnel movie. I thought it would be an uneventful journey, but I gather now that I may have been mistaken. I managed to kill four antmen at the first chasm bridge I found, and a few more wandering the tunnel after that, but I guess there was another chasm up ahead.
  • 06/19/2008Toady One 195, but it was sort of vague. There aren't many more like that. A town. Another town. A mess of rivers, roads and bridges. In general, I was happy enough when things showed up at all that I didn't spend time making roads look more rounded, making bridges look good at all or giving the main dirt roads better edges. That's much easier than getting them to show up and connect. There are some residual downramps in the river picture along the dirt road. The towns could also afford to have better centers. The current system doesn't really support packing things around roads, though I did get the stores closer to the center with their doors mostly facing one of the major roads (though their doors are still only east/west). Anyway, it's not really what I'm focusing on at this point. I didn't get a chance to do the tunnel connections, so I'll be doing that tomorrow for goblin towers and dwarven fortresses.
  • 06/18/2008Toady One 196. Critters'll build up stone roads now between their larger cities as they grow, on top of the previous dirt road connections, even if they have to run them through some smaller intervening towns, and they'll leave the surrounding web of dirt roads alone, pretty much, though you'll end up with some older stone roads that go out to small cities or ruins due to their former historical size. It doesn't yet age/overgrow untended/unused roads. Roads show up during embark on both the mid-range and most zoomed-in map, so you can place your fortress on top of them if you like (not that it matters). I haven't done anything with tunnel display other than the graphical map export. Next up are the site vs. road/tunnel issues, which is the last large issue remaining from stage 4.
  • 06/17/2008Toady One 207. From what I've seen, the road ramps are back and the tunnels don't dead-end... there are likely still problems, but fewer of them. I also handled misaligned road junctions and some other random issues. Road/bridge materials up next. Hopefully I'll be able to walk between two pre-placed dwarf fortresses through a tunnel within a day or two. There are issues with the tunnel entrances in the fortresses themselves. The chasm bridges in the tunnels seem to be working fine. When I placed a dwarf fortress over an existing tunnel, the bridge was placed next to one of the small caves on the side of the chasm, so it had a few ant men living on it. There isn't an option to place your wagon in the tunnel at this point, so you'd still have to dig down there to visit them.
  • 06/16/2008Toady One 221. I'm ready to take a stab at the road fixes for tomorrow. The main issues seem to be sporadic missing ramps and tunnels just dead-ending -- that kind of thing. Road materials also need to be finished off, and the bridges it places also have a couple of strange issues.
  • 06/15/2008Toady One 236. After puttering around with various tests I had on the list, I rescued some sites that had fallen into the ocean after the cliff smoothing. More cleanering tomorring. I seriously doubt I can finish all this off in seven days, but I'll continuing whittling away at it.
  • 06/14/2008Toady One Okay, we were at this all day (more than all day, since it's a half hour passed my bedtime), but with a lot of Janus's help I've managed to put together a new forum for you. There are various rough edges, and we'll try to work them out over time. For old forum-goers, note that you'll have to use your Display name rather than your User/Log-in name to log-in. An intermediate forum only accepted one name per user, so I had to drop one of them.

    Back to the dwarves tomorrow, unless this gets out of hand. It seems fine now.
  • 06/13/2008Toady One Tomorrow is the beginning of the forum transfer. It should be an amazing adventure.
  • 06/12/2008Toady One I've gone through the list and moved off items I don't have time for. It now has 278 lines. There were some problems from the cliff smoothing change I did earlier that I cleaned up for today in preparation for some road and river fixes.

    An image I posted before, with blockiness.

    An image from today, with some blockiness, but much less than before. Most of the remaining square features can also be removed, but not this time around. There are some problems with the new images which are on the list (river elevations have trouble, for one). Note the new beach colors, based on the rock/sand present there. It'll also now display sand colors in the desert as it does with the ASCII.

    A small island world. At the far left, the lighter green area with the dwarf fortress was originally forest before they logged it.

    A world I scribbled in the editor.

    A medium island world. Due to the way I'm setting up the placements when you demand a certain proportion of highs and lows, and the low elevation variation parameter in this particular world, the islands look a little rounder. You can get longer or more jagged islands, but it'll probably take some more work for island generation to be satisfactory.

    Small wasteland with extra caves.

    Params/raws. Some people at Future of the Fortress asked to see the current raw and parameter files. These will almost certainly be changed prior to release.
  • 06/11/2008Toady One I folded some supermarket receipts into little boxes and used them to elevate my laptop further off the desk and positioned my desk fan to blast air through the resulting tunnel. That lowered the temperature by 10C, and I got through world generation on the same seed that acted up before, so I guess heat was the problem. With the optional history culling on, a standard world now peaks at ~375MB RAM vs. 700MB unculled, and even with the removals it'll leave quite a bit of history to go through -- the number of recorded events dropped from 2.2 million to five hundred thousand.

    Pushing the last bug cap into the general stack of things I need to do to finish the release, I've closed off stage 10 and am now looking at the road issues I had put off and finally the stack of notes that I've accumulated. All together, it's a file with 415 lines. More than half of those lines can just be shunted off to dev. It's analogous to the similar countdown prior to the z-axis release, I guess, with two additional notes. First, if you haven't been keeping up with the forum, I'm upgrading to SMF 2 starting on the 14th, and the process might take a few days (I actually have to go through two intermediate boards since my current software is so old). Some parts of the process should be fairly hands-off, so I can probably get some work done, but if hassles crop up, I'll be forced to deal with them. Second, as I mentioned before, I'm moving the weekends this month to the end of the month, so I'll be working on the list from now to the 22nd, but not during the last week of June. Whether I can release by then will depend on any snags I encounter. Things will have to go very smoothly all around for me to make it.
  • 06/10/2008Toady One I handled a very basic history cull today -- all dead hist figs and their associated events. It reduced the peak memory usage of a standard world from 700MB to 200MB, and if I keep a few important ones around, it should still be fine. I already have a few notions of importance for historical figures, so I don't think that will take long. That freezing bug came back, the one that locks up my entire computer, but hopefully it's just from something silly I did during the culling cleanup. The symptoms are the same though, which worries me. In any case, assuming the catastrophic bug can be tackled quickly, which is anybody's guess, I should be done with culling tomorrow.

    PS: Actually, the freezing "bug" could just be my computer feeling the relative change in temperature now that winter is long gone... SpeedFan tells me my processor, which is normally around 70C, is just about ready to boil water when I'm at year 900 on a standard map. What a little worker my laptop is. I should get it some stilts or something before I set my desk on fire.
  • 06/09/2008Toady One I'm through with the painting utility now, and I'll be moving on to the proper stage 10 stuff now -- optionally cleaning historical data. The goal here is just to drop the memory requirements for people that would rather not devote 1GB to world generation. If you want it to remember everything about everybody that ever lived, you'll still be able to do that, assuming you don't blow out your RAM.

    Here's a disgusting mess I drew with various circular brushes at various settings. In this one and this one, the elevation field used the same presets, but the other fields were randomized as usual.
  • 06/08/2008Toady One Fixed up a few problems, and so on. Here's a frozen world and my short-lived adventure in a very hot world (it still places trees and civs, they just don't cope well during play). I'm also about halfway through the Mouse-Painty Thing for preset world fields (elevation/temp/rain etc.). In any case, I might actual get to the content of stage 10 at some point here. As I noted a few weeks ago, after that there's still quite a bit to clean up, and I have a lot of bug notes to go through.
  • 06/07/2008Toady One Even if you have dry skin and pests infest your beard, you may yet banish evil from your sight. That is, you can now define all the basic fields as giant grids in the world parameter text file. If I find time, I'll add a mouse-painty thing for it.

    Here's the oceanless wasteland I posted over at the Future of the Fortress thread.

    And, yeah, I'm working this weekend. I haven't been able to get into a rhythm on my weekend project, so I'm going to move some weekends to the end of the month so I can have more days in a row to work on it.
  • 06/06/2008Toady One You can now set the year range at which you'd like your world generations to stop, as well as the maximum population... and I threw in all of the other parameters while I was at it. Here are some medium worlds:

    Forest World: Maximized rainfall. At the top and the top right, the humans and the dwarves have done some deforestation.

    Wasteland World/Territory: No rain (aside from the orographic stuff it forces in), and 10x the number of caves (caves have been made visible in all of these images). It's a hard life for the humans and dwarves that survived. The elves and goblins are dead -- only the demon remains in that tower.

    Good Ocean World: Islands via increased low elevation frequencies. The variations are also increased here, so there are more biomes packed onto the islands.

    Savage Ocean World: Another island map with good/evil turned off and high rainfall/savagery. The only civilized creatures left alive after 1000 years were three demons and a nine hundred year old elf born in a goblin tower. In order to stay alive, one of the demons had killed 3 hydras, 4 titans and various cyclopes and minotaurs. The elf was a guard and had killed a cyclops and two minotaurs. He had a wife, 6 daughters and 2 sons, but they were all killed by marauding beasts early on. The high savagery didn't impact play other than killing a few hunters -- the beast problem was caused by all of the caves crammed on the islands (it's possible to compensate for this by changing the cave parameters, but I didn't do that). Also, you can see a rain shadow very clearly on the right side of the upper island.
  • 06/05/2008Toady One Today was sort of a nightmare bug day. The goal was to run several standard worlds to see what needed to be optimized/culled, but the first one crashed in a bad way, locking up my computer completely (including the mouse), so that I had to power down. That wasn't a lot to go on. It reproduced nicely, painful as each reproduction was, but it's sort of difficult to get at a bug like that. I found one issue with the refugee code that might be relevant, and the crash didn't occur again on the misbehaving seed, but that isn't saying all that much, since changes in the code have wide-ranging effects on the course of history, so the root cause of the issue might have been dodged for that seed rather than fixed for all seeds. In any case, it hasn't happened again. Hopefully it's gone.

    I did manage to run a few tests after that. Current world-gen peak memory usage from pocket to standard after a 1050 year history is roughly: 45MB, 45MB, 45MB, 145MB, 700MB. My first standard world after the crash was avoided took 35 minutes, but I've since gotten that down to 20 minutes (I'm on 2.59 GHz without noticeable graphics/titlescreen lag). Mediums take a bit less than 5 minutes, and the others are still very fast. The 1050 year standards now end with 20K+ living historical figures, have more than two million historical events and take up 50MB on the disk. I'll probably include some optional restrictions on total population when I do parameters for start/end years. Once that's all set up, I'll decide if I actually need to delete or offload any of the information while world-gen is running. It'll be a chore if I do, since a lot of the data is referenced quite frequently during play, and that would need to be addressed.
  • 06/04/2008Toady One Stage 9 is complete, including the bug cap, and there are now 100 bugs closed for this release (not counting the non-reproducibles). I made civilizations slightly smarter about reclaiming sites, so they won't reclaim a death trap every year, though they'll still reclaim a death trap every decade or two. This set up a situation where two groups of human refugees from different civilizations took turns reclaiming a town and getting pushed out by the goblins. In this world, there was an ettin named Ustgast the Taker of Action.

    In a different world, a group of dwarves pushed out of a fortress didn't bring any religion with them (they were children, I guess), and the new fortress they founded had no pantheon. By the end of world gen, there were quite a few dwarves left, but none of them worshipped the former gods. Unfortunately, they weren't plagued by a megabeast, or we would have had our first megabeast-monotheistic civilization. Still, it seems like a child-refugee set up might be a reasonably common way for something like that to finally happen. I suppose if the pantheon gods were real and interested, they could use any of the traditional methods to inspire a reawakening of faith, or it might happen without them during a site reclaim if some remnants of the old religions are located. That will all have to wait though.

    Next I'm going to handle history culling to the extent that it's needed (and a few odds and ends like history revealing options and world start/stop year parameters).
    • listed all hist fig relationships to other hist figs/entities/sites explicitly in legends screen
    • gave indication of gender in legends screen
    • made preexisting murky pools refill during rains
    • fixed problem with smoothed floor text
    • stopped civilizations without craft materials from bringing soil-improved items
    • stopped improper inclusions from being placed in soil near beaches
    • made vegetation that grows up in mud over engravings destroy them properly
  • 06/03/2008Toady One I got through the refugee stuff that I absolutely needed to handle today, though there are some dangling issues. For instance in a smaller world, in the year 37, the goblins attacked the last dwarven fortress and killed most of the residents. One dwarf, Cog Bridgedsmith, and nine children, none of them belonging to Cog, escaped into the mountains. Cog became the leader of the dwarves and died 50 years later, and by then, the children had grown up and given rise to a new population of dwarves. However, as there were no pre-existing dwarven sites to settle in, they just roamed the mountains. For a thousand years. Post-world-gen didn't know how to handle them either (as there were no suitable sites to sort them into), so during play they'd just exist without acting.

    Since then, I've got the refugees founding new sites provided they can find a place in the region into which they fled, but they should also be able to move to different regions to look for potential settlement locations or incorporate into reasonably matched civilizations. If that doesn't work, they should be given a roaming army after world generation (it would use the current migrant group code that this stage was supposed to revive for nomads). I'm not sure what I'll end up finishing this time around. If I don't do anything, it wouldn't be a crucial problem.

    Finally, kobold refugees are now capable of digging out new caves, and they'll now flee before defending their sites to the last kobold. They are starting to come into their own as a pest species.
  • 06/02/2008Toady One Stage 8 is complete. I'm not going to put nomads back in at this time, so I've reduced stage 9 to handling refugees. I'll get started on that tomorrow. It should only take a day or two. Then I'll run some more standard worlds to determine how much work I'm going to have to put into stage 10, which is cleaning up excess historical data. Then it's back to stage 4 and the list of outstanding issues from there and elsewhere. Most of those can just be sorted away, but there are some that I'm going to have to handle.
    • allowed water to drop through raised/retracted bridges
    • allowed water to flow once blocking trees are chopped down
    • made carving fortifications update flow state near wall
    • fixed problem causing lake shores to have incorrect elevations
    • stopped crash from invalid reaction item types (mods)
    • fixed reversed coloration of stone furniture
    • stopped well-meaning dwarves from previous forts from appearing at reclaim sites
  • 05/30/2008Toady One Mostly patching up unrelated problems I found with worlds during beast testing again, though I also managed to get giants and cyclopes to rampage in groups at the beginning. After some of the caves are cleared up they'll diffuse out and live alone. You can modify the population numbers in the raws, and it also works for megabeasts, so if you want to start a world with dozens of dragons packed into each dragon cave, you can try that out. I didn't get around to making any of them breed, but I'm out of time. This Megabeast Week was brought to you by the giant, who now has the SLOW_LEARNER tag and probably isn't very happy about it. That'll last until I add actual mental stats, whenever that will be.

    Speaking of missing features, I should probably get around to adding scars sometime. The cyclops I was quested to kill had a thousand year history of badassery, and all of that without the leg it lost in the Year 3 (a dwarf bit it off... I should probably deal with that). Anyway, when I got there, the phantom limb started acting up again and it spent most of the fight unconscious, waking up from the strangulation just long enough to force me to listen to its massive kill list again (that needs to be compressed appropriately sometime as well). Before a bug fix, I was also quested to kill a hunter-killing sea serpent that had somehow gotten into a mountain cave. I didn't even need to strangle that one, though I gladly claimed credit for the victory.

    I finally saw a world arrive at the Age of Fairy Tales, which happens if mundane creatures (ie humans) make up at least 90% of the world's civilized population with the requirement that there are still a few fantasy creatures lurking around. In this case, it was a kobold cave that their scouts never found. I guess all of the fairy tales were about people having their crap stolen.
  • 05/29/2008Toady One I burned some time chasing bugs today since one of my test worlds crashed (when a goblin religion died out, it erroneously unlinked the goblin site entity from the site, which confused the humans warring with them, and so on... it ended when the new human rulers of the dark tower decided to attack themselves and the game died), but I also got some basic megabeast worship in. Once a non-semi megabeast has attacked a site a few times, each resident at that site has a chance on subsequent attacks to develop some minor superstitutions associated to the beast (it's just the same sliding scale of faith right now, but there can be more later), or rarely a full revelation. They'll pass these along to any growing children as they pass along their other beliefs, but as with other religions, there's some noise with it so that the superstitions can be amplified. Because there's currently a preference for long-standing temples (which will tend to be built for any original gods), I couldn't find a world with a megabeast temple, but I did find a small world where most of the humans worshipped the titan along with their other gods, and in fact the world was in the Titan Age. In effect, the titan was given a position in their pantheon, though it would still show up every few years to kick down somebody's house. It would be nice to have the megabeast cults try to appease the object of their worship, even if it's hopeless, but I didn't get a chance to do more beyond the basics.
  • 05/28/2008Toady One I tried to kill a giant and it didn't work out. Here's my adventurer. It currently moves all of the named hunter-killers into caves after world gen so that you can find them and take quests against them. The legend presentation isn't much improved over what was there before, but I do have some extra data now that I can use to group them into paragraphs at some point. There are also some grammar problems with theft entries (especially some of the stolen booze ones).

    Here's a cougar. Here's a hunter from the cougar's story.

    Here's a kobold thief that bumped into a goblin guard. Here's the goblin guard (too lazy to screenshot these).

    Here's a hydra.

    Here's an ettin. Here's the dwarf that killed the ettin. Here's the giant that killed the dwarf (and my adventurer).
  • 05/27/2008Toady One I fleshed out hunter-killers today. Lots of named giant eagles and sasquatches were able to better enjoy themselves with the local dwarves. They'll mostly confront other hunters after their first kill, but they'll also occasionally venture into sites. Hunters have better legends as a side effect, since the ones that last will have a few named kills as well as the usual numeric listings by creature type.

    Aside from that, I made the (semi)megabeasts occasionally move to empty caves if they aren't having enough fun. Megabeasts will do it less often than semi-megabeasts. I also tweaked age names and death rates/combat numbers, as well as making adventurers more likely to take on beasts that have a history with their sites.

    Now I'm in the process of adding wounds, in particular since a few too many of the beast duels end without a result, and wounds give both the beasts and their victims/challengers character without removing them from the game, as well as any future revenge motives that might come up. The worst wounds will be realized in-play even in this preliminary world gen release (for example, a missing eye it mentions will be missing if the dragon comes to your fortress, as expected).
  • 05/26/2008Toady One Megabeast Week started today. I've done all of the basic actions for (semi)megabeasts. Next I have to deal with beasts that arise by killing hunters and balance the death rates, as well as teaching world gen adventurers to target monster-enemies of their civilization now that they have some to target.

    In the first world I ran, pocket world zero, the only beast was a dragon named Atheli Coalparches the Flame of Mining ("Mining" because dragons currently have the mountain sphere). Atheli managed to survive all the way until the end at the year 300, long after the only demon had died. The dragon rampaged through every site on the map. There were no humans or kobolds, but Atheli killed 22 dwarves, 15 elves and 6 goblins, all in fair contests (as fair as they could be, with one combatant being a dragon). Many of these unfortunates were also eaten. In addition, Atheli devoured three cows, four horses, five mules, a donkey, six dogs, two cats, and a rhesus macaque and fox while tormenting the elves. The hoarding beasts can only steal one object at a time at this point, but Atheli still managed to collect a few crowns, four scepters, five amulets, six earrings, four rings, an idol, eight bracelets and a large yellow jasper (it tracks all of the materials for later adventure mode realizations -- one of the scepters was kimberlite, and one of the rings was made out of cave crocodile bone). During Atheli's last rampage, the dragon devoured a grizzly bear in the elven forest retreat.

    Then I created a "smaller" world. This one had a dragon, as well as a giant and a minotaur. The minotaur was named Ust Wringwebs the Hale Lancer and focused on an elven forest retreat that was under the rule of humans. The poor elves were forced to construct hovels to live in, which the minotaur would knock down. Six elves were also killed by the beast. Eventually the minotaur was killed by a shopkeeper (who had been forced to move a dozen times during the minotaurs 160 year reign of house-wrecking terror). The giant was a bit different, since giants like food and drink in addition to other objects. Ciba Willknight the Bejeweled Berry not only destroyed hovels, apartments and shops, stole crafts and killed three humans in the town of Tourtalks -- the giant also stole both prickle and fisher berry wine, river spirits, sewer brew, beef, raccoon meat and strawberries. Ciba was killed by a lye-maker during one of the rampages after 130 years of causing trouble. Civilians should be able to do this very rarely, but I think I'll probably have to tweak the numbers a bit to make size matter more during world gen combat. The guards never try to contest the beasts all at once, either, and that should probably happen sometimes.

    In any case, the smaller world passed from the Age of Dragon and Demon, to the Age of Zas Heatgorge (the dragon was named Zas Heatgorge the Crested Spark of Mountains), to the Age of Elves after the dragon was slain. Right now, world generation also runs up to at least year 300 and at most 1050, so the smaller worlds are often without beasts or powers by the time play begins. Oddly, the elves were the only ones in this world without a site of their own, since all of the forest retreats were under human control. Still, there were 404 elves (including 65 slaves) compared to 92 dwarves, 71 humans, 43 kobolds and 26 goblins, so it chose that name for the age.
  • 05/23/2008Toady One Preliminaries for the megabeasts are handled. The next thing on the list is having them trouble sites. There's an awful lot that can be done. I think it'll be prudent then to just put a time limit on this stage, say a week. Next week is Megabeast Week. Of course, we're talking about world gen megabeasts, so flying dragons won't be snatching your dwarves and dropping them off cliffs or whatever that dev item is, but they'll be able to torment world gen villagers, knock over their homes and steal their food/livestock/wealth (abstractly, as with kobolds, though if I have time to realize items in their caves, I will). This should give rise to slightly more meaningful quests in adventure mode and histories in general for the beasts. I shouldn't have time to have intelligent megabeasts demand sacrifices or tribute or have cults spring up around living megabeasts or centuries dead megabeasts or anything else that involved, or even allow reproduction for those beasts where it might be appropriate, although I might be able to touch on a few of these if everything goes my way when I'm doing the basics.

    After that, it's essentially down to dull cleanup/testing/tweaking until it's fit for an initial release. I have yet another 260 line text file with the observations and minor issues I've made during the programming for this version. A lot of it can be put off, but it's something that I'm going to have to go through. A good chunk of that is the stuff I left from stage 4. On top of the observations file, there's another one the same size for the dev lists, but I might wait until after the release to sort all of those out.
  • 05/22/2008Toady One Stage 7 is done. Megabeasts and their semimegabeast friends next.
    • fixed reclaim crash
    • fixed another 16 bit variable blowout in the construction menu, causing late-game items not to list
    • allowed miner to dig channel/ramp downward if that is only available direction
    • stopped ocean waves from being generated above waterless squares, eg over drained ocean
    • handled talking to babies in adventure mode
  • 05/21/2008Toady One Stage 6 is complete, and I also finished the pre bug cap portion of stage 7 today. Five more bugs and I can check off that stage as well. If it works out, I should be starting stage 8 (active world gen megabeasts) on Friday.
    • added additional check for stranded meetings
    • stopped people from getting food altruism thoughts from feeding animals during taming jobs
    • updated player/follower travel link for adv mode
    • stopped no-exert creatures from becoming tired on screw pumps
    • made insane dwarves and babies disregard stay inside orders
    • stopped designation of downward stair cases on other downward stair cases
    • stopped problem causing lowering of tree cap from 100 after discussion even with good skill rolls
    • stopped clipping of body part names in unit view unless some status text is attained
    • stopped king/consort/advisor from doing actual hauling jobs after they arrive
    • stopped active soldiers from running in elections
    • made items stuck on top of doors/floodgates/bridges fall if structure is opened/lowered
    • made caravans bring gloves/shoes in pairs
    • stopped dead trees from being marked as subterranean
    • fixed problem that allowed adv sneaking in line of sight of enemies as long as you weren't targeted
    • stopped chunks from rotting as fast as vermin
    • fixed demand time initialization
    • made murky pools and river sources channelable
    • allowed cooks to bring spice bags to kitchen instead of taking out individual leaves
    • stopped cooks from bringing barrels containing cheese to the kitchen
    • fixed problem with the meat/fish check on embark starting food creation
    • fixed error in weapon directional penalty from vision problems
    • stopped work order jobs from registering with high priority non-validated orders first
  • 05/20/2008Toady One Continuing along with saves.
    • stopped looping dwarves from constantly trying out gloves and boots when they should just pick one and go
    • made the citizens trigger option work
    • stopped manager from placing jobs in unpowered buildings
    • fixed crash caused by notable creatures being destroyed in cages
    • fixed crash from caused by corruption of tax collection information
    • fixed display of macabre/brooding mood item request text
  • 05/19/2008Toady One I've started work toward the bug cap again. I'll try to clear out the save stack again this week, and hopefully there will be some time left over to finish stage 7 as well.

    I did an audio interview with Role Playing Public Radio a few days ago which was put up today. The session includes the interview and a drift into more relaxed directionless post-interview chatter, some of which is unsuitable for general consumption, but there you go.
    • stopped v-i from crashing the game after zooming to a cage
    • fixed obscure world gen loop erase error
  • 05/16/2008Toady One Okay, stage 6 is up to where it's going to be for the release. I'll be into the bugs on Monday. Stage 8 is the only remaining stage that should take any time at all (and not nearly as much as stage 6's month and a half), though the revisiting of stage 4 will probably also have a hassle or two.
  • 05/14/2008Toady One I've handled the largest problems now, though there are quite a few things I'd like to do, and quite a few that need to be done before it really looks reasonable. In any case, I'm going to wind down the pre-bug-cap part of stage six this week and start the bug cap phase on Monday. For the bug fixes this time around, I'll mainly be going through my stack of thirty saves.
  • 05/13/2008Toady One Down to a page of notes for stage 6 now, although it's unfortunate to put off interesting things. In any case, I've added a string filter to most of the legend screen categories, and while it's not the mouse, it'll still let you navigate between the entries much faster than scanning for names manually. Crimes in adv/dwarf mode now act according to the raws to the extent that that's possible (not much at all, but a start), and dwarf mode neighbor selection and a few other things which were affected by the ethical framework changes have been updated to the point that it's playable again, although neighbor selection in particular will be removed by the third army arc release.

    While testing the string filter, I ran a medium world. There were two overlapping goblin empires, and they kept abducting each other's children. I'm not sure what I think about that. Nguslu Crestednightmare for example was abducted at age 3 and then abducted again at age 6 by the original goblin civilization, but by goblins from a different site than his place of birth (so it wasn't exactly a rescue mission). Nobody takes care of the children as foster parents at this point, so without a guiding hand from his birth parents, Nguslu didn't start worshipping his culture's demon until he was 22, by which time he had already been an unsuccessful baby-snatcher for some years.
  • 05/12/2008Toady One Another grab-bag day with nothing interesting to report. Stage 6 always seems to have one and a half pages of notes left, with the content of these notes becoming more and more esoteric, so it's almost time to shove all of that off to dev and move on. I still need to handle some of the civ/site issues (depending on entity organization, you can have entire civilizations declare war on sites within a civilization and vice versa, so they need to be able to ally with each other/unite etc. to compensate for the population discrepancies) and ethical framework matters (particularly how the new entity tags relate to dwarf/adventure mode).
  • 05/09/2008Toady One Now that the human, dwarven and elven children can be snatched in world gen (they snatch kobolds if they manage to find them, though that might not last since kobolds shouldn't be able to integrate into other societies), I've retooled religion acquisition a bit, since the dwarf baby shouldn't worship a dwarf deity that he or she never actually learned about. Now (world gen) children learn about religion a little later in life than birth, and godless critters living in towns with temples have a chance of picking up religions. Nothing complicated yet, but it's something. So... the goblin snatchers, who were very successful before I activated the guards, got their tower populated with several generations of dwarves that managed to outbreed the goblins. Some of the older abductees imported belief in Dasel, one of the dwarven gods, and since there were more dwarves and in fact more believers in Dasel than in the demon, they constructed a temple to Dasel by the dark towers. The demon, being a godless critter, decided over the course of a few years that Dasel was worthy and began worshipping Dasel at the temple. The few goblins remaining still worshipped the demon. I've since stopped powers from worshipping gods, because it's out of character for what a power means in the stock universe, but it was kind of funny in any case.

    Then I created a pocket world. Kivish Soarcrafted the dwarf was abducted at age 3 and moved to the Cruel Tower in Felldweller. He became a farmer and married Olin Roofchanced, another abductee, and eventually joined the guard. The humans and goblins were fighting a lot at this time, and the demon and many goblins were slain in the wars, as well as Kivish's wife. Kivish then personally led four defenses against the human onslaughts on the dark tower, and by the year 33 there were only 11 defenders left. In the year 34, only 4 defenders remained, and Kivish became the leader of the goblin civilization, such as it was. More attacks followed, and in the year 35, Kivish stood alone against twenty four human attackers, defending Felldweller and a goblin baby that had been born in 33, the only other resident. Kivish was victorious, but the dwarves then launched an assault on Felldweller, and Kivish faced 22 dwarves in the Forest of Dashing outside Felldweller, killing 4 of his own kind before being fatally shot by a crossbow bolt. Although the dwarves were victorious on the field, the humans slipped in and installed a new leader in Felldweller, who lived alone with the goblin child, Amxu Blottedvile, for a year before more humans decided to move in, establishing a temple to Odel the goddess of truth called the Truthful Temple in 37 and a mead hall called the Muscular Voice in 54. The original human city declared war on the dwarves after this and was eventually conquered, and the humans there died out over fifty years, with dwarven populations established in two mountain fortresses and the formerly human town. Felldweller, now a human-populated dark tower, never went to war again, but without support from the original human city, the humans left there eventually died out. I'll have to check out exactly what happened there.

    Amxu had entered the priesthood of the Truthful Temple by this time, and as the last of the humans aged and died, Amxu, the last goblin in the world, became the high priest of the Cult of Honesty, worshipping the human goddess of truth alone in Felldweller. Amxu continued in this capacity for 157 years at which time play began. I decided to start an adventurer, and I only had two choices -- a human from the dark tower (it doesn't check for existing critters, just the controlling culture), or a dwarf from any of the the dwarf-controlled sites. I started as a human in Felldweller. It was a strange place. There were three goblin towers, a full set of empty stores, many hovels, the mead hall and the Truthful Temple. I met Amxu there. I asked him about his family, and he told me about several goblins that had died in the wars 300 years ago. Then I joined the temple so he wouldn't be so lonely and retired there. I guess I'll die of old age eventually though. That can't be helped, since he's the last immortal in the world.

    There were a few other snatcher-related occurances in other worlds. A dwarf was snatched at age 10, became a hunter at the goblin site and eventually led an attack on the dwarves twenty years later. The goblin leader must have been overzealous, because the attackers numbered 19 against 72 defenders in the dwarven fortress. Still, you can see why the goblin leader thought there was a chance, since the dwarven general of the goblin attack force managed to personally kill 51 of the dwarves before being struck down.

    I also had an elf abductee decide to become a (quite successful) baby-snatcher upon reaching adulthood.
  • 05/08/2008Toady One 'bout halfway through snatchers and item thieves. The snatchers will snatch actual world gen babies and bring them to their goblin sites, but the item thieves are stuck referencing abstract goods from the entity item lists for now (awaiting the Caravan Arc again). I guess these are the first world gen "adventures" in the sense that a few critters, namely a given party of snatchers or thieves, go through a sequence of related events and overcome obstacles together. For example, snatchers have to sneak or otherwise get passed the world gen guards (who finally have something to do) and occasionally the victim's family members, with any related duels/etc. that occur being placed under the same (poorly) named abduction historical event collection, just as battles are placed under wars. I'll post some logs tomorrow if I finish up or get coherent something compiled.
  • 05/07/2008Toady One The kobolds are surviving world gen again. Next up is baby snatchers and item thieves though, so kobolds will put themselves back in view for a bit -- I'll need to do one more thing to safeguard them (make them flee their caves briefly when retribution for all the historical baggage they start racking up finally comes). There's a tracking skill in the game now, but it's just used in world gen for the time being. This forces the scouts to locate their caves, and since kobolds don't seek anybody out now, they have an easy time remaining hidden (entities that don't have the same tags don't get the bonus, though living in a cave still confers some safety from detection). They also won't start any full-scale wars on their own any more.
  • 05/06/2008Toady One Spent some time today cleaning up dwarf/adv mode ramifications of a lot of the world gen changes to entity definitions, since friend and foe don't mean the same thing compared to the absolutes from before. Before the third release, dwarf mode isn't really going to be satisfactory compared to the histories, but I've gone through and tried to clean things up so that, for instance, the goblins won't just sit and do nothing if they weren't at war during world generation, though there's still a bit to do here and there. At the third release, they'll do roughly the same things they are doing during world generation (and if this includes receiving a goblin envoy or even a goblin caravan in rare and strange circumstances brought on by world generation, that's what you'll get). For the first release, I'm just trying to get by with some sort of playable-sensible dwarf mode to tide everybody over.

    Also, I think you can safely walk a (human or other) adventurer into any goblin tower that isn't at war with your civilization (and retire there), and that's not really a bad thing on some levels, but every culture will need to have their own way to greet people with which they haven't had prior dealings. This will all be sorted out in the second release (that's the plan, anyway).

    I guess the forums have been the thing to slip off the overfull plate lately. I'll try to find time to finally go and sort out bug reports and read suggestions tomorrow. I haven't done this since Apr 30 according to my little notecard.
  • 05/05/2008Toady One Another Reward day today. We got twenty more out between us (more Threetoe than me), leaving twelve on the list. If you didn't get yours, we'll be there pretty soon now, though it's Dwarves tomorrow.
  • 05/02/2008Toady One Nothing all that interesting to report for the last two days, slogging away at the details. Next week we'll be continuing along with similar things.
  • 04/30/2008Toady One Worked out a bunch of the issues with skill gain and army deaths today. Demons get their starting skills now -- Engror the Spidery Furnace stood against 20 dwarves and prevailed, though he was later shot by a marksdwarf, which I suppose is fitting enough. Aside from special attack kill causes for the history events, the battles are pretty much handled at the minimum level I need. The next major issue is working out some problems with civ vs. site AI. Then I need to fix up some issues with an ethical framework related code gutting that occurred previously and make some of that carry over into dwarf mode. Finally, I need to work on the kobold issue (that they die, always). Those are the last large parts of stage 6. There are also several minor things, many of which can be put off.

    As stated previously, stage 6 is going to be the lengthiest stage by far. I could also spend a lot of time on megabeast world gen AI, stage 8, but it shouldn't be like this, since they just aren't as involved. Stage 7 is trivial and stage 10 is probably just a few days, unless standard worlds eat up 3GB or something while they are being generated, in which case I'll need to spend more time on cleaning. Stage 9 might be skipped... for the third or fourth time. Of course, there's the bug cap to consider between each stage, and I've got 25 or so to do for next time, but if the subsequent stages don't take this long, subsequent bug caps will be easier to reach.

    Also, the onset of longer days is going to force me to pull my hours back a bit (the sun is shining right now, no good for trying to get to sleep), so bear with me if I become grumpy as I set my alarm for, like, 1PM... or even noon.
  • 04/29/2008Toady One The continuing mission. I've got them reclaiming sites now instead of splattering ruins all over the place, though they haven't yet learned to be cautious in the first place. I also ran my first standard sized 257x257 world since adding most of the new stuff. The Age of Myth ended ~140 and the Age of Legends passed into the Age of Heroes around ~280 when another of the demons died. There was a giant elven civilization spreading southward through an enormous forest, and by the time they reached the southern mountains where the goblins were, they were able to send an army of over 2600 elves to attack. The goblin civilization was nothing but ruins after five years (they could never mount a defense of more than 130 gobs, quite tragic).

    I also encountered some more strangeness with site conquests. The latest bug had an elf that had becom assimilated into a dwarven site, but who still identified with his civilization, lead both the attack on and the defense of the dwarven fortress when the elves came seeking revenge. I sorted out half of what was going on there, but there's more left to do.

    I had my first pocket world that ended with all the sites intact (except for the kobolds -- they never survive). There was one of each type of site, and the dwarves managed to conquer the goblins immediately and install a new ruler, then they did the same with the elves around the year 11. Goblins and elves became used to the dwarven way of life and even sent some of their citizens back to the capital. The humans were never at war with the dwarves, and a few hundred years passed in peace. The dwarves even built a tunnel between their capital fortress and the dark tower. There are currently no rebellions or revolts or longing for the past, so even when the dwarven overlords died and elves and goblins took the leadership position of the dwarven site entities that controlled their homes, they continued to pay (abstract) tribute to the capital and do things the dwarven way. This will certainly change as I add more for them to do, although after 150 years of being ruled by the dwarves, maybe some of them should remain satisfied. Religions are all passed down through the parents though, so the elves were still worshipping the forest spirit, and the goblins were worshipping the long-deceased demon. I suppose that could play a role in their decisions, along with whatever else.
  • 04/28/2008Toady One I messed around with how territory is handled during conquests today and shifted the basic territories over to overlapping site-based areas instead of just using the civilization level. I had to drop the vague border lines after that. I'm using cycling symbols -- it doesn't look as nice as the borders in some ways, but I think it more accurately reflects what's going on as well as what I'd like to go on and it should be easier to work with. Although it handles site destruction better now, they'll still try to settle areas repeatedly that aren't safe for them. I put up a couple pictures (here and here). You can also download the movie. The goblins repeatedly wipe out groups of elves that try to reclaim the western forest. The last group was 35 elves -- they were immediately attacked by 200 goblins. I'll probably work on getting them to reclaim sites or avoid areas entirely tomorrow (instead of constantly making new sites). I'll also have to teach the goblins to finish the job, but the last elven cities are still too far away for them to care at this point. This is the same world I mentioned last time.
  • 04/25/2008Toady One Nothing interesting for today. Next will be getting the administrators to act more reasonably (that is, not completely inherit the conquered culture and take revenge) and getting regional territories to change more naturally as conquests occur.
  • 04/24/2008Toady One Wars that are completely over (that is, one side very lost) are now registered as such in the minds of the winner, so they don't feel so overstretched. The result on the first (smaller, 33x33) world I generated was an everlasting goblin-dwarf war in which one goblin led all the attacks for 250 years and personally killed forty dwarves. The defenders were winning too often though, which came down to a bug with ranged attacks. When I fixed that, the goblins in the same world destroyed almost everybody, placing several towers throughout the entire mountain range and leaving ruins both on the mountains and anywhere close to the mountains. Two elven sites managed to survive in a coastal forest, since they were too far away from the mountains in the west, but everything else was razed. This didn't stop the demon from being killed by a kobold in Year 2 though -- the main issue being that world gen demons aren't yet given the very high unarmed skill which serves them quite well in regular play (right now, DF is used to finalizing such abilities at the end of world gen, so I have to push some priority realizations back to the beginning of time), though that kobold still needed a lucky roll to get passed the demon's other strengths (size and fire breath, for example).

    I also sited battlefields and added some battle-was-here maps to the legends entries. It only takes 10 year snapshots of the entire map at this point, so it just uses the final map for the battle locations at this point (it could specifically save local region snapshots for every battle to the disk later at little cost).
  • 04/23/2008Toady One Continuing on with the same sorts of things. Right now it picks one of the combatants' languages to name their wars and battles. Ideally it would let them both name each event, but while it's choosing one, I guess it should go with whichever group can actually speak sensibly. You can view the wars/battles/important duels in a nested way, but when kobolds are involved, it just says things like "Shroler began." and "Jreengus occurred." The names given to these sorts of events by other civilizations aren't much better, but at least you can tell what they are when they call something the Molten War or the Siege of Nails or... the Assault of Troopers... or the Conflict of Attack...

    In the latest pocket world, the first age ended in the year 9 with a dwarf-demon duel. The Age of the Titan took up the rest of the 300 years.
  • 04/22/2008Toady One I finished most of the legends text and started fixing up some of the problems that I mentioned before. It happens that, during the movement of historical figures, dead spouses and children were being brought along. The search for families that are free to move was also being used to narrow the search for administrators of conquered sites. In fact, the human administrator that was placed over the elves in the second war log I posted last week had actually died 10 years before, killed by an elf. This has now been fixed, unfortunately.
  • 04/21/2008Toady One Pretty much B12 administrative work today, but I managed to clear out my inbox (been a while) and get several of Threetoe's support rewards sent out (and a few of mine). There are still 26 support rewards left to do, including one from about a month ago... We'll try to get to them when we can, but I'll probably also be getting back to work cleaning up various issues from the war log I posted.
    • fixed a crash with lots of stone in the stocks screen
  • 04/18/2008Toady One Okay, that's a first pass on the mechanics of battles over sites. There are still a ton of loose ends, and lots of legends text to write up. I'm going to have to run some tests to see what sorts of improbable things it is doing now. Actually, let me see if I can get a rough log set up...

    This is really rough, but here is a pocket world's war log. And here is a pocket world's war log with more interesting yet strange things happening. It still has pretty much every imaginable problem, but even so, it looks like it will all work out well in time.
  • 04/16/2008Toady One Um, well, we've got slavery, mass executions bordering on genocide and corpse mutilation reminiscent of Assyria now. I'll probably need to set up the ability to randomize the ethical framework of a given entity definition for each instance of it within boundaries, or all of the humans will be quite untoward at this point. Also keep in mind this is world generation only, though any slaves and their descendants that are still alive will be at sites in adventure mode, and people will be able to talk about what's happened. Everything is in the raws, so you can take out body abuse, slavery and any of the other stuff if you don't want it to be there.

    Next up are refugees, imported administrators and the initiation of (very fake until the Caravan Arc) tribute relationships. My birthday is tomorrow though, so nothing at all is promised for then aside from a cake, which I won't be able to share with any of you, although I guess some of the energy I take from it will be turned into more game.
  • 04/15/2008Toady One I'm still finishing off the implementation and some of the ramifications of the five actions I listed last time. I'll be able to set up and post some historical event lists and other information once that's handled.
  • 04/10/2008Toady One Mostly spent my programming time today plotting out a roadmap for conquered sites. All of the links between entities, historical figures and sites make it sort of a messy situation. For now, they'll take one of five actions: completely destroy the site, "plunder" and move on (which doesn't mean anything at this point in terms of tangible goods), demand "tribute" (nothing again, but it's a lasting relationship), do the same but also export a new ruler to the site, or take the site over completely (dealing with current residents and moving in their own).

    A complete site take-over is sort of a strange thing, but it would come out of wanting to use the site but not being able to control/use the existing population (e.g. kobolds, though nobody wants their caves now anyway) or if there were no population left. Depending on the settings in the ethical framework, individuals in the conquered population might be enslaved, evicted or killed. Even if there isn't a complete take-over, some might be enslaved, killed or flee and become refugees.
    • started handling conquered sites
  • 04/09/2008Toady One Now if a world gen hunter is killed by, say, a giant lion in the savage wilds, it'll name the lion and make it into a historical figure. Unfortunately, giant lions only live 15 years on average, so the poor thing is destined to be nothing more than fodder for artwork and chatter unless the kill happens right before world generation starts. Perhaps we could let them linger on if they are successful, and in any case, during those years, the creature can have a bit of fun tormenting the civilization further once I get to stage 8. For now, I still have to handle conquered sites, make wars end and add legends mode reports of wars/battles/duels. That's all short or long depending on how deeply I go into it.

    The latest pocket world didn't even have any goblins -- just a kobold cave. Everybody declared war on them within the first year, and after five years and several attacks, only Bufushagus remained. The resourceful kobold managed to harass and flee from their armies until the eighth year, and by then Bufushagus had managed to kill five humans, two dwarves and an elf. The northern humans and elves were also fighting for 140 years. The elves lost their leader in 61, but they eventually managed to eradicate their enemies, led by one of the leader's seven surviving children (three others had died during the struggle, two during the same battle). Wars don't terminate yet, so even after they'd won both of theirs, the elves decided not to pick any further fights, thinking they were already busy enough.
    • finished first pass on battles
    • moved world gen adventurers over to army battle system for their beast duels
    • made historical figures out of victorious hunted beasts
  • 04/08/2008Toady One Still chugging along. I went back and cleaned up some new world gen crashes, and I also wanted to check on the speed (seems fine so far). I had it output some rough lists of war causes while I was there. Goblins and elves don't appreciate each other at all over a variety of issues (though the elves care much more about it than the gobs), and it's often amplified by a rivers vs. fire religious dispute. The goblins' demon ruler also decided to target a human civilization that worshipped youth (because the demon is partial to death). Elves start wars with everybody right now over views on plant killing. Kobolds get in a lot of trouble because they can't communicate with others, and that's the main reason their wars start at this point (it'll also simulate item theft soon), but one human site singled them out for being godless. Dwarves and humans pretty much always get along, unless there's a fluke religious incompatibility with an aggressive zealot ruler involved, though I imagine things will be more interesting when they can fight over shared resources.

    Pocket worlds seem pretty lively. I might have to work a bit to make sure they aren't always down to one civ by the time you start. Perhaps they aren't meant to have long histories.
    • continued world gen battles
    • stopped mayor from ignoring labor list
  • 04/07/2008Toady One Hopefully I'll be done with the battle calculations tomorrow. Then there are just a few odds and ends left in stage 6, and the rest of the stages should take less time than this one did.
    • started world gen battles
    • did some more history handling for wars/battles
  • 04/04/2008Toady One They'll start wars and select sites to go after now. World gen doesn't worry about exact army locations, since it needs to go through the years quickly, but they'll sometimes have battles on non-site squares to break things up, and the specific world map square is recorded for use later on. The last part of stage 6 is doing the battle result calculations and recording some facts about the duels and deaths that occur. The same calculations will also be used for megabeast fights and the hunting of savage wilderness creatures (it has been rolling a placeholder die for those up until now). The rest of the release after battles is megabeast troublemaking and cleanup pretty much, but it will still be a while yet.
    • handled history creation for wars and language additions for war/battle names
    • handled entity knowledge of site locations
    • handled attack site selection
  • 04/03/2008Toady One Okay, they pretty much just need to take the plunge now and start having incidents.
    • did basic calculation for combat strength of historical figure/creature
    • handled diplomatic biases from ethical matches/mismatches
    • added basic ethical framework to entities
  • 04/02/2008Toady One Currently working on more reasons for them to be upset with each other. What I've done so far is just based on prior bad acts and religious differences. The civilizations only have specific tags referring to different moral structures (respect for trees/animals, baby snatching, etc.), so I might generalize ethical frameworks with a new system of tags so it's not just checking special cases. Right now, dwarves and goblins would sometimes be chatty because dwarves don't care about torture and they often worship fire, which the goblin's demon is aligned with. If dwarves view torture with more skepticism, at least they won't form alliances based on religious similarities. Once goblins have baby snatching adventurers and the demon is often given to world conquest, it'll be better. If humans attack goblins because they have glowing red eyes and sharp teeth and oddly-colored skin and pointy ears, we'll be at a good place, but I don't have most of those variables yet. I don't suppose elves would be put off by sharp teeth, specifically, since they like wild animals. All of these aesthetics will tie into images of loved/feared deities later... but none of that for now -- just some simple moral generalities. I'll also do some leader personality effects tomorrow, I think, in terms of how aggressive, reckless and ambitious they are, and perhaps a very small amount with trade agreements to reflect what already happens in dwarf mode later on.

    I should have my first world gen army battles soon, provided I work through the annoyances that come out of civilization vs. site level AI (depending on the leadership structure, culture and situation, sites of the same civilization will act with, independent of or against each other).
    • added leader evaluation of neighboring entity beliefs based on religion/status as power
    • handled basic evaluation of current attitude based on recent historical events
    • allowed important historical figures to have personalities during world gen
    • changed scouting a bit
    • got rid of human civ leaders
    • removed entity groupings
  • 03/28/2008Toady One I'm below the bug cap, so I can now move on to stage 6. I messed around with some of my old BASIC programs today. This image is from BASIC dragslay, which gave rise to C dragslay, then various pre-Armoks, Armok and DF. I have a vague impression that I wrote my first pass on BASIC dragslay in 6th grade, thinking about it while I was walking to that classroom, but it might have been as late as 8th grade in '92. There were so many little projects I was flipping between I really can't remember. And I just found 390 of them sitting on my computer. The folder is missing the really early stuff as well as all of my C programs, but it's enough to entertain me for a bit. I think the C stuff is on a CD or floppies at my parents' place.
    • stopped placing container in one of its contained containers from locking up the game
    • made constructions remove engravings, debris and other objects from their square on placement
    • stopped aerial births
    • stopped blood from hanging in the air
    • made snow-covered dyer's workshop in different construction states distinguishable
    • fixed some inconsistencies with child name capitalization
  • 03/27/2008Toady One The "This is a large ." problem should be handled now, at least the main ones. It wasn't allowing crafts to be formed from horn/amber/ivory/coral and so it defaulted to a gem, which didn't know how to display its name. I gave those materials their appropriate crafts now, and I've made gems display any material name to help out with any future problems. You still can't use those materials yourself... that'll happen at some point, but probably not for quite a while. Tomorrow will be the last bug day before world gen wars next week.
    • allowed dwarves to dig up from ramps provided a ramp wall is in place
    • stopped "large " items with blank names from appearing (one instance of it anyway)
    • allowed entry into dangerous liquids using careful movement
    • hid more wall connections in adventure mode
    • stopped channeled walls above constructions from leaving rocks inside the construction
    • made sleeping mesh with unconsciousness effects better
    • made unconscious diplomats/traders trigger traps
    • stopped smoothing under roads
    • stopped snow from being generated at the bottom of the ocean
  • 03/26/2008Toady One Not much today, some compiler crashes and other oddness slowed me down a bit, but it seems to be working again. Anyway, fewer batmen and other flier creatures should die in chasms at random now, through subterranean river dwellers will still jump off waterfalls for no reason. You can buy bolts/arrows now from human town stores. Also having counted a few bugs that were obsolete/didn't reproduce, I marked off ten and have to do nineteen more before moving on to stage 6. Whether or not I finish bug cleanup tomorrow depends on the bugs I pick and compiler weather.
    • increases adv mode store inventory and added ammunition to weapon stores
    • stopped adv mode sleeping for air-breathing swimming and drowning creatures
    • allowed "grounded" fliers to continue flight
    • fixed problem with world map display size on chargen/embark
    • made rain/snow shift locations with rest of objects on map shift
    • fixed problem that would introduce a space at the beginning of some lines of conversation text
    • decreased willingness to eat carried mud in adv mode
  • 03/25/2008Toady One Okay, I'm through with everything but the bug cap for stage 5 of 10 of this release. I have to fix 30 or so critters, and that's beyond what I can do in a day, so it'll be a little while. World generation wars, stage 6, is likely the last time-consuming stage, so hopefully we're actually beyond the halfway point for this release already.
    • updated some of the current war/relations/history code
    • made forbidden/on fire state of items respected in a few extra places
    • made children grow up anyway if they somehow miss their exact coming of age date
  • 03/24/2008Toady One Stage 5 is proceeding smoothly, and I'm trying to be done with its non-bug portion tomorrow. Then I have to get the bug list below 340... and the bug list has grown back up to 368 since I last brought it down to a cap. Once that's done, I'll use the new infrastructure I'm creating to make civilizations fight during world generation.
    • added infrastructure for collections of historical events (e.g. wars/battles)
    • changed how diplomacy states are stored
    • gave immigrant woodcutters proper soldier settings
  • 03/21/2008Toady One I've made world gen remove redundant roads and did some other work with how junctions are formed. There's a new set of pictures (with colors to make roads easier to see) up at Future of the Fortress. The week was slow, but I'm more happy with the images now. Local roads are still in need of repair, but I'm putting that off until the release is closer. On to world gen wars.
    • stopped roads/tunnels from tracing previous routes and handled junctions
    • allowed undead/invaders to fight
  • 03/20/2008Toady One Tomorrow will be the last day I work on transportation networks for a while. I have enough for armies, so next week I'm jumping up to stage 5 regardless. Whatever loose ends absolutely need to be handled will be handled at the end of the release cycle.

    Also at Future of the Fortress is another preliminary road picture -- this time a small map. You can see dwarves alternating between roads and tunnels and see the humans choose between skirting streams and crossing them, with varying degrees of success.

    I've got bridges and tunnels realized locally now. The current tile layouts are very basic, but it was neat to see a tunnel running through the mountain and bridging a chasm without a catastrophic failure.
    • finished first pass on local road maps
    • finished first pass on local bridge maps
    • finished first pass on local tunnel maps
    • various other transport network tweaks
  • 03/19/2008Toady One Various B12 hats being worn to day, and rarely the programmer one. Local realizations of bridges tomorrow, and hopefully tunnels too.
    • roadsers roads
  • 03/18/2008Toady One Still slogging along. I've posted some very preliminary pictures at Future of the Fortress of some detailed maps with roads and tunnels (and pixel bridges). There are various unfinished bits I need to work on (tunnels bridge rivers for example, some road networks double up on a connection, etc.). The pixel bridges that occur occasionally in the tunnels away from rivers are bridging chasms or cave rivers. A few of the images have tunnels connecting otherwise disconnected portions of the map.
    • roads roads
  • 03/17/2008Toady One I've got a first pass on roads done down to the intermediate map level. Laying the paths down is a bit more annoying than rivers, since they have to properly avoid the rivers that are already there, and when they do have to cross them, they need to try to do it in one step rather than running along the river's length. It'll place bridges at those points tomorrow. Hopefully I can get done with this soon, since it's fairly boring work. I still need to do the local realizations and some other odds and ends, though. Then we'll be on to world-gen wars.
    • more road work
  • 03/14/2008Toady One This will take a little while, but I'm trying to make the system support more than just roads so I can use it later. The first pass will include roads and bridges, and I'm considering world-level walls and tunnels if they won't burn a lot of time. I've (almost) got civs planning out the road/tunnel networks they want to try to build now, and I'll get into the world/local realizations early next week.

    I've also smoothed out cliffs for the most part. There will doubtless be some bugs from this, and we'll definitely want to get occasional cliffs back in (once you can climb, anyway), but they were everywhere and made moving around almost impossible. Now it does some local smoothing first and you can pretty much walk anywhere you want, unless you hit a river or the ocean. The resulting lack of flat patches means that dwarves walking on a mountain side will switch z levels more frequently (rather than using long staircases in cliffsides to switch levels all at once), so I might allow pinning the camera to creatures to help keep tabs on them, but I don't know if I'll get there or exactly what form that will take.
    • smoothed out local landscapes
    • added entity tags for a few world constructions
    • set up infrastructure for world constructions
    • started road network calculations
  • 03/13/2008Toady One I suppose carving fortifications in walls is abusable as far as uncovering bad places underground, but it's the responsibility of whatever you find down there to break through into your fortress, and the critters aren't very good at that in a variety of ways. Feel free to exploit until then. While I was testing construction removal on a glacier, a skeletal polar bear came by and guzzled my wine and stole my plump helmets. Anyway, I just managed to slide in under the cap, so I can start world gen/town roads tomorrow.
    • made digging out ramp walls update connectivity properly
    • gave work dogs and cats names upon adoption
    • displayed number of assigned hunting/war beasts during assignment
    • fixed up problems with continued designation job selection
    • stopped constructions and frozen liquids from floating at the bottom of the chasm
    • stopped construction removal from leaving open spaces in ice
    • stopped ocean waves from pushing merchant and horses free from wagons
    • made carving a fortification unhide adjacent squares
    • made freed tombs respect no pet init options
    • made pregnancies count toward the baby cap
    • made heat/cold damage effects for items work faster
    • stopped dungeon master from constantly putting on cloaks
    • stopped dwarves continuing training if the building becomes forbidden
    • allowed wagons to go through ashes
    • hid adventure mode site compass if not in regular mode
    • fixed display problem with text viewer scroll bar
    • fixed problem with recursive body glosses
    • stopped debris on the ground from coloring flashing ramps
  • 03/12/2008Toady One Well, I thought I'd be able to start stage 4, he he he. I finished stage 3, but I didn't get to any bugs. Stage 4 will begin tomorrow. I'm about 15 bugs off the cap now, so I'll start with there. After that I'll be doing world and local town roads. They won't have much of an impact on your dwarf mode games for this release. It'll take more work to allow your dwarves to link up any roads you've made with roads on the world map and will probably require the ability to send out armies on the map first.

    Some of the technical parts of trash-talking by your enemies are antiquated, so I haven't merged them with the new kill chatter of townspeople yet, but it'll happen at some point. Most of the civilians in town now have a specific profession instead of just being called peasants. The first mayor I talked to had been a mechanic for 35 years and a fishery worker for two, and I later met an elf that bragged about killing two giants by name.

    I've restricted the professions available to the entities (dwarven professions are the same as ever). It's not mod-proof at this point -- if you take carpenters away from a civ you are playing in dwarf mode, you'll still be able to build carpenter's workshops, but you won't be able to bring carpenters with you or select their associated job during play in the labor list. I'll get to the rest of the defects later, but it's not a priority. Right now elves and kobolds have the fewest available professions, because the professions they'll have when they are finished are going to be more exotic.
    • added more explicit job permissions to entity defs and handled some ramifications of that
    • made civilians take entity appropriate jobs during world gen and gain skills over time
    • allowed people to talk about their professions and kills in a basic way
  • 03/11/2008Toady One I almost made it through, but I got stuck on an annoying world gen hunting bug for a while. I'll finish up stage 3 tomorrow, and I'll probably be able to make some progress toward the stage 4 bug cap as well.

    On the bright side, there are now more appropriate people to bring along on your adventures again. I joined up with a married couple. They both used swords, but they weren't part of the town guard so they agreed to come along. The wife was a hunter (and had killed a wolf and two cougars during world gen before I met her), and the husband had been wandering for a few years trying to make a name for himself killing mythical beasts and hadn't met a single one. While we were journeying through the hills on the way to a goblin tower, a pack of seven wolves attacked. The husband got his throat torn out by a wolf that became named Couragebasements. While his wife skewered another wolf, unaffected by dwarf mode thoughts of misery, I killed the other six, including Couragebasements. This wolf was distinguished on my kill list (the other five were grouped together with the region where they were killed). We then went on to rack up some more victims at the goblin tower before eventually dying there. My goblin kill list got a little cumbersome, and it doesn't yet list the primary profession of the goblin, but it gives the names and races, at least (and the undead status). You can view the kill lists in any mode, though you can only view your own kill list in adventure mode (and only your dwarves at this point in dwarf mode).

    Later on I suppose hunters in world gen should be found with clothing and trophies relating to their kills, but that likely won't make this release. They can't even talk about it yet (I got the wife's kills from legends). I'm doing the talking part tomorrow, among other things.

    The dragons and their other megabeast friends are collecting kills as well, though they won't be able to cause real trouble until a later stage of this release. The hydra that survived world gen had fended off 22 heroes, and a bronze colossus that was destroyed in the year 55 managed to defeat five elves, three dwarves and two humans first. By the end of world generation, the majority of the semimegabeasts like minotaurs and giants were dead, and all of the ones that were still alive had killed multiple heroes to stay that way.

    All of these deaths of civilized creatures has the fortunate side effect of keeping the populations below their limits more often, which leads to a wider range of birth dates for races like elves and goblins. Goblins don't try to dragons, but they do hunt regular creatures and suffer losses there. Wars will amplify this.
    • added tags to control world gen adventuring behavior of entities
    • made world gen hunters contest wild beasts and record kills
    • recorded all kills by historical figures during regular play
    • allowed viewing of kills in adv mode, dwf mode and legends mode
    • added framework for world gen civilian professions and tracking time spent working
  • 03/10/2008Toady One There are now plenty of adventurer types floating around, and they'll kill off the large critters during world generation to push the ages forward a bit. I added some extra creatures so that the world looks more or less the same as it does now by the time they are done. Once I get world gen army fights done I'll balance the numbers again (it's stopping the clock around year 300 now). First I'm going to mess with this for another day and I'll also try to get to some other professions in town. I'm also going to incorporate the new kill tracking system into regular play so that it'll know how many of each sort of creature every historical figure has killed (and roughly where), whether or not the kill itself is another historical figure. The reason I'm doing this now is for skill determination after world gen, but it should be fun to view the information for your own population in dwarf mode and for your own adventurers, and I'll set up that display tomorrow if things go smoothly.

    Hopefully the daylight savings cloud over my head will be gone tomorrow. If I have a good day, I should be through stage 3.
    • added addition location/state information to certain historical figures and adventurer/followers
    • allowed hist figs to hold undead information
    • made megabeasts, semimegabeasts and underground feature creatures take on the undead character of their region
    • added more kill tracking infrastructure
    • let civ adventurers kill mega/semimegabeasts during world generation
    • made world generation stopping point depend on era
    • made vegetation removal behavior based on entity tags rather than site type
    • allowed entities at peace with wildlife to settle in savage areas
  • 03/07/2008Toady One Various bugs fixed. We'll probably be back above 350 open bugs in a day or two at the rate they are cropping up, but I won't bring them down again until the next stage. Monday will see various professions among non-players in the adventure mode towns, including mercenaries and adventurers at some basic level (mainly for creating legends during world gen and joining your group).
    • fixed crash from having no items available to bring to the depot
    • fixed problem with slaughter job spamming over inaccessible creatures
    • improved accessibility checks for various jobs
    • fixed problem with the king coming early and not actually showing up
    • fixed problem with wagons not unloading at the depot if you have more than one
    • made smoothed walls display correctly when designated for dig
    • stopped selected embark area from changing when civ is changed
    • placed silk cloth in the correct item category during embark
    • fixed problem with blank thoughts from old caves
    • stopped item names from spilling under point values in embark item list
    • made cage occupant list scroll before reaching instructions
  • 03/06/2008Toady One I lowered a lot of the support numbers and was able to make the population cap a bit softer for world gen. The total number of historical figures in a standard world is about the same, at least in the worlds I've tested, but they don't hit a wall in quite the same way as before, and the removal of a small hard cap allows some human civs to get much larger than others. I also took another look at ghost towns and ended up fixing a problem that was causing more of them than necessary, though they'll still happen on occasion. More images up on Future of the Fortress. You can see one of the large human empires in the northern part of the first standard map. It bumps into the circular influence of a kobold cave at its southern border -- the kobolds claimed the area around their cave before the humans got there, so they were able to make a nice round shape. Once I get to wars, such a round shape will likely be short-lived. You can also see a civilization that crossed the water in the west of the first standard map, and the purple 'U' civilization in the southeastern corner of the second standard map has seven or so components gained in the same way. The humans in the small map tried it out but were stopped at the beach by cursed hills. The elves on that map also chose to live in the 4 tile eastern forest rather than the larger one to the west because the smaller forest was a good forest.

    I removed some of the elven biome support numbers. Now they'll just claim forest territory, so they'll often have strange borders where the trees meet other biomes. Most of the non-elven boundaries are still fairly clean, though there are some doubled-up borders there as well.

    The next step is to get bugs below 350 as the first part of release stage 3.
    • added very small territories around sites in old saves
    • cleaned up the era/maps view in legends a bit
    • added more variability to selected colors for territory symbols
    • fixed problem leading to extra ghost towns
  • 03/05/2008Toady One Entities now claim territories during world generation. It isn't perfect by any stretch of the imagination, but they'll at least tend to form boundaries at rivers when there are others pushing against them and they prefer their favorite biomes when they are constrained.

    I've put some medium map images on Future of the Fortress. These were exported using the new historical maps feature of legends mode. It currently saves snapshots of the world at ten year intervals, and you can scroll around the map and move back and forth in time. You can also flip between the brown territory view and the regular map view. The slight expansion in territory during the later years are a result of the primal savage areas being tamed by nearby cities. The lone red symbol on the left is a kobold cave's territory -- they got stuck in the middle of a savage region and weren't able to spread out.

    The somewhat unsightly map symbols are derived from their civilization's symbol and the color descriptor raws. So some of the goblins in the lower left look like they've got perhaps a blue cave crocodile on their red banners (and the ones below that look like they've got a chest). The humans at the top left have a tree, while the dwarves on the right have a red dwarf on their banner. It doesn't yet pay attention to what sorts of dyes/cloth colors the civilization can actually produce because those are limited at this point. Boundary lines are disconnected in some places because the civilizations in question don't both claim a single square. Ghost towns (now displayed as ruins) are a bit more common now. I'm not sure if I'll change that or not, but I think it's coming from the inferior site selections available to them now that they are restricted to their own territory (rather than a large circle).

    There are a few loose ends to deal with for tomorrow, but I should probably also be able to begin the third stage of this release.
    • made entities claim territory during world generation
    • associated character/front/back color to entity symbols
    • added ability to view historical territory maps from legends
  • 03/04/2008Toady One Mostly thinkering instead of tinkering today. I should be set to blast through a great deal of territory coding now.
    • added framework for civilization territory
    • handled various era odds and ends
  • 03/03/2008Toady One The second stage of this release is up for tomorrow. This means defining claimed territories for civilizations during world generation more explicitly, rather than the overlapping spheres it uses now. I'm hoping to make them more apt to stop at natural boundaries like unsuitable biomes and rivers as they claim areas, but what I'll be able to do in a day or two will probably be less satisfying.
    • fixed a problem that would allow continued designation jobs to mess with other designations
    • stopped export restriction mandates from being violated by trader goods (no dwarves were punished, but noble becomes upset by this)
    • made soldiers lose inappropriate jobs like training when their squad is put on duty
    • stopped journey friendships from influencing leadership selection on embark
    • handled an issue with job persistence when a dwarf joins the guard
    • added some additional checks for well completion for well jobs
    • handled eras in legend mode
    • fixed item contaminant adjective spacing and duplicates
  • 03/02/2008Toady One The Power PC version is up and reportedly working. I also fixed a few things when I was reading bug reports. My brother's days off keep changing, so I'm just going back to a Monday-Friday schedule for the main DF work.
    • fixed gender swap in legends/relationships display of deities
    • fixed problem with infinite rejections in world gen that came from loading custom parameters
    • fixed a few problems with adding/deleting world gen parameter sets
  • 02/29/2008Toady One Snagged a few more PPC critters today. It's running on the PPC Macs now, and some progress has been made on save compatibility between platforms. It's mostly working, but there were still a few discrepancies which have possibly been handled now.

    I've added some details to the next release's write-up on Future of the Fortress.
  • 02/28/2008Toady One It'll now change the name of the Age you are in based on what's happened in a rudimentary fashion. This includes after generation -- I had a completed pocket world go from the Age of <titan name> to the Elven Age to the Age of Dwarves as a direct result of my play decisions. The second transition was somewhat brutal. The world was covered by a good forest, but that didn't mean any elves needed to live there. At this point, larger worlds stay in the Age of Myth during generation because none of the megabeasts/powers die. I'm going to try to get them involved (and sometimes dead) during world generation before the next release, as part of world gen wars/conflict. Ultimately, you'll be able to stop the clock early if you want to keep a lot of them around, but I don't know if I'll get to that this time around.

    Continuing along with Power PC work as well. Two definite problems squashed. If it tests out, I'll be able to put up a new Mac version tomorrow. Otherwise, we'll keep at it.
    • added basic dynamic era naming
    • made at peace with wildlife tag apply only to natural creatures, and updated some of those tags
    • stopped natural creatures from ambushing adventurers that are at peace with wildlife
    • fixed crash bug related to rain destroying webs in evil forests
    • fixed problem causing low baby caps to affect population cap
  • 02/27/2008Toady One Mac-age lately, fiddling with files and breaking Windows saves and fixing them. We've made a lot of progress on the Power PC version -- Kobold Quest is running on one, and we're doing some more tests with DF. If it works out, I can post a new DF version. In any case, I'm starting up on the next Army Arc release tomorrow, and I'll keep working on the PPC version if there's more to do. I'll put up a PPC version whenever it's done, so it won't be tied to the next Army Arc release if there ends up being a delay there.

    The three and a half hour IRC interview I mentioned a while ago has been posted on Gamasutra. It has been edited into a more standard Q&A format, which is good, because the IRC format of the original really led to a lot of interlaced questions and responses that'd be confusing to sort through. Also, conveniently for me, the side rants were removed, he he he.
  • 02/24/2008 Released Dwarf Fortress
  • 02/24/2008Toady One Today was mostly spent vainly chasing after the Mac Power PC bug(s), but the 38c release should include a few welcome fixes anyway, assuming the site sprawl stops. I'm not sure if it's related to the infinite rejections that also sprang up. I can't reproduce either problem here, so it's somewhat difficult to hunt down their causes.
    • fixed problem with cleaning of site support numbers (possible cause of site sprawl)
    • fixed problem with command line generation of non-standard worlds
  • 02/23/2008 Released Dwarf Fortress
  • 02/22/2008Toady One Today ended up slower than usual since I screwed up my back somehow sitting in this chair and needed to move around a bit. Anyway, the new map sizes seem to be working. As I mentioned on the Future of the Fortress thread, an unmodded 17x17 world complete with history and offloading will generate in about 5 seconds (over here at 2.59GHz/1GB), which should be useful for people testing mods, though 17x17 is so small you might step that up a bit.

    The bug count is 332 now. This isn't the 300 I set for my goal in moving on to the next phase of the Army Arc, but I think I've done quite a few welcome fixes and I'll probably be moving on after the release tomorrowish. This doesn't mean I won't be continuing to clean things up. I'd still like the bug number to keep going down slowly if possible, and I'll also be doing work in addition to the Army Arc as usual. I don't anticipate the next phase will take very long -- almost certainly not as long as the first world-gen/religion release, though since I'm throwing in the first pass at leader AI regarding simple diplomacy/warfare decisions, it'll pay to be a bit thorough.
    • forced units on chains to remain on the same z level as the chain unless they stay directly above/below the chain
    • made the at-peace-with-wildlife tag work in adventure mode to stop the elf-unicorn conflict
    • made all undead respectful of one another
  • 02/21/2008Toady One I don't suppose the first dev item was a good idea if I'm trying to cut down on bugs. Smaller maps don't care about biome distribution at this point, so they don't have as many rejects (although that means there are going to be some strange ones buried in there). The 17x17 maps are cute -- in the ones I've made, there've been one or two sites for each race (although I think it puts megabeasts in each of the two caves, rather than kobolds... that'll probably be changed), and there was one peak and one volcano.
    • allowed either world dimension to be set to 257 (current), 129, 65, 33 or 17
    • fixed problem with screwpumps failing to update connectivity map
    • fixed a few problems with plant jobs not being stopped when seasons or settings change
    • fixed problem with digging channels in frozen brooks
    • fixed a problem with map generation of large caves
    • added option to create world bypassing parameters screen
    • made liaison from saves converted from 33g appear
    • stopped swamps from draining into premade dwarven cities
    • stopped goblins and others from being your buddies when you settle on their site after adventure mode
    • stopped sale of uncaged small animals to merchants in adv mode
    • stopped coin and temple engravings from referring to future events
    • made dungeon masters happy with their cloaks and boots again
  • 02/20/2008Toady One The post-artifact lag is gone now, and a lot of the other damage from the last release has been cleaned up. I'd like to make the new "jump back to dwarf mode" behavior of the relationship screen more general, but there's some messiness to it with older screens preventing this from happening immediately. More bugs and little thises and thatses tomorrows.
    • made traps safe for friendly outsiders again
    • stopped hunters from being interrupted by their prey
    • made dwarves place artifact in workshop after creation
    • removed artifact claiming and hiding (until Artifact Arc)
    • cleaned up problem with reclaim squads being placed on edge
    • refined embark aquifer display
    • made falling/pumped water placement respect floors over aquifers
    • fixed problem causing dwarves to target harmless insane people while making evil creatures spare them and babies
    • made thieves and their support groups respect each other
    • fixed problem causing sneaking thieves not to actively avoid dwarves and other potentially hostile creatures from a distance
    • added init option for pause on autosave
    • added init option to show embark confirmation even if there are no potential problems
    • added button to go back to main dwarf screen from relationship/unit view
    • allowed items to be forbidden from the stocks screen
    • allowed zoom-to-dwarf from the military screen
    • made furniture changes to room update rent immediately
    • stopped booze food from melting, even though it probably should
    • stopped chats/art appreciation from happening during pause
    • made scrolling in room list work properly
    • stopped artifact engravings from having incorrect symbols
    • fixed incorrect thief ambush message
    • added tag to force clothing/armor item type to appear in entity realization
    • removed defunct *_SETTLEMENTS tags
  • 02/19/2008Toady One There are still issues of course, but I think Mac DF is ready for people to mess around with now. I'll put it up with the next release, which will be on Saturdayish. Next is four days of bug fixing. I doubt I can get below 300 open bugs this time around, but it might be close enough to count. Recently introduced critters will be first on the menu.
    • made movie file I/O OS independent
    • did a first pass on PPC endian support for all saved files
    • added in eli's Mac sound code
    • extended Mac keyboard support
    • various other Mac tweaks and cross-compile warning code cleaning
  • 02/15/2008 Released Dwarf Fortress
  • 02/15/2008Toady One I had a swordsman sent to assassinate the high priest at the goblin fortress Skullsprofane, so I traveled over there and killed about 30 goblins, including the high priest Stozu Wickedvoice where he was sleeping in the Chapel of Ghosts. There were hardly any goblins left alive when I was done.

    I went back to the human warlord, and he told me to return to Skullsprofane and kill Kutsmob Powermonstrous the goblin hammerlord. I didn't give myself much of a chance, but I managed to break his hip... before he shattered my knee and took me apart. It was close. He and his shield were just too powerful though -- it was an iron masterpiece with a leopard bone image of himself ascending to the leadership of Skullsprofane more than 1000 years before.

    So I did what I usually do -- start up another adventurer to try to finish the job! I tried a swordswoman and was blown apart against a wall. Then I tried a sneaky crossbowman but Kutsmob blocked most of my shots with his shield -- the one that hit him in the wrist he simply pulled out and dropped as he continued to scan the area. Eventually Kutsmob lured me into the tower, after which he jumped out and hit me five times and crushed my chest in. Then I tried an accomplished pikeman with no armor and no other skills to go for a quick killing blow, but still no luck. He was there by himself now, just waiting for more adventurers in a fortress filled with blood, rotting body parts and scattered clothing.

    I figured, okay, I'll give it one more shot, since his fifth kill will give him a name, which I'd then share with you in this story. I started up a halberdier with balanced skills, more or less like my first two adventurers. I took the task from the human warlord and set out for Skullsprofane. As I was walking toward his stronghold, the Doomed Tower of Dread, an iron bolt flew passed me. A guard! I had missed one. And there was Kutsmob, standing on top of the tower, hollering various insults about those that had come before me.

    There was an opening in the fortifications through which I could rush to meet him. And I did -- but when I was just a few steps away I was shot in the back. I pressed on, taking a swing, and Kutsmob leapt backward. I ran at him and another bolt shot by. I charged, slashing down... and split Kutsmob's chest open! All of the major organs were pierced, and he fell over wheezing. I hacked down again and again as two more bolts stuck into my body. Just as he breathed his last, I was shot in the leg and fell over. Crawling now, I made my way over to the body of Kutsmob and picked up the iron shield. Then everything went black...
    • made archery trainees stand instead of firing if necessary and possible
    • formalized caves being different sizes and allowed them to go slightly beyond 3x3 on midmap
    • controlled cave populations more carefully based on size
    • respected frequency in choosing cave/feature pops
    • made adv mode site map handle sites that aren't 3x3
    • added 530 words
  • 02/14/2008Toady One The historical events and end-game fixes took longer than I expected. Things are going all right though. Tests and a release tomorrow, most likely. Tomorrow means Saturday morning, of course.
    • created historical events for various masterpieces created by dwarves and for masterpiece losses
    • made unhappiness from lost masterpieces depend on number remaining
    • did zooming to buildings from building list
    • added baby+child absolute cap and adult percentage to init
    • fixed problem leading to blank engravings in end-game area
    • fixed problem with end-game features not working in reclaim
  • 02/13/2008Toady One I guess it's actually the 14th when this goes up. Any relevant portion of my anatomy having already been absorbed and reassigned to the hermit-center of my brain, this is what I did for Valentine's day.
    • made dwarf chats improve conversation skills
    • added personality/skill/pref compatibility check for dwarf chats
    • made friendship/grudge building dependent on compatibility
    • made suitably compatible dwarves become romantically involved
    • allowed dwarves to get married
    • made starting dwarves have established friendships from the journey
    • stopped parties from being organized during the first year
    • added screen for viewing/zooming to all relatives/friends/pets/etc. of given unit
  • 02/12/2008Toady One Not a bad day, and I might have actually fixed a few bugs that someone wanted.
    • turned off clothing rot thoughts (until Bug 323 fix)
    • made vermin hunting dwarves check periodically for newly available food
    • added init option for rent to always be *0
    • allowed squad selection to occur over Z levels
    • stopped shallow ice melting over the ground from destroying buildings
    • made traps work against map feature creatures
    • stopped work order jobs from being placed in mood buildings
    • allowed adv mode player thief to travel after site is offloaded
    • stopped dwarves that are too injured to hold items from getting moods
    • stopped mood dwarves from occasionally selecting odd workshops they are standing on
    • stopped magma mood dwarves from selecting unfueled magma buildings
    • stopped slaughter and caging jobs from making dwarves drop their babies
    • stopped ponds from attempting to fill themselves from the same activity zone
    • made dwarves fill each component within a single pond zone
    • stopped physically led creatures from triggering traps if leader knows trap location
    • stopped vegetation from growing up in submerged tiles or under buildings
    • made submerged trees/shrubs/grass die
    • made vegetation growth respect dead vegetation values for evil regions
    • gave prepared food temperature information
    • stopped retirement while holding store property
    • tweaked plant gather numbers
    • got rid of mood building conversion (too many new side issues)
    • made metal ranged weapon construction jobs use weaponsmithing skill (mainly a mood fix until raws have more info)
  • 02/11/2008Toady One Blew through some of the easier bugs today. The overall number of open bugs hasn't dropped by much since there were several reports over the weekend. I'm still aiming to get below 300 open bugs -- I'll probably release on Friday and then continue along with it.
    • fixed capitalization problem in conversations and a few other typos
    • fixed a few gender swaps in conversation text
    • fixed problem with river fetching function that screwed up embark texted and placed odd streams
    • fixed problem with blank squad names
    • cleaned up lag on dwarf mode civ list
    • made buildings placed over dig designations remove them
    • stopped dig jobs from working through buildings
    • stopped chasm bottoms from blowing apart falling units
    • fixed problem that caused itemless floor constructions to confuse walls built above them
    • allowed item demands to be satisfied by items in more than just the core room types
    • made jobs that dip into containers check forbidden status of inner items
    • stopped cleaning of forbidden and inaccessible items
    • made rents reset when rooms are resized
    • stopped kobold and languageless entities from crashing name selectors
    • made items supported by trees fall when tree is chopped down
    • added adv mode minimap support for Nx1 and 1xN buildings
  • 02/08/2008Toady One I emptied out the top three levels of the magma pipe into a large underground chamber, and then I watched the lava bubble its way back up the pipe. I did some save compat work with this, but I can't guarantee there won't be some kind of horrible calamity where a previously dormant volcano starts to erupt on load.
    • fixed problem with world generation civ region selection
    • stopped temples from being placed against unallocated areas
    • stopped cave entrance from sealing up after settling in dwarf mode, and other related oddness
    • handled some cleaning problems in world gen
    • fixed mem leak with architectural info
    • added some more checks for stale complaint meetings
    • more robustly handled case where meeting target and meeting initiator are one dwarf with two appointments
    • added filling information to volcanos and made volcanos fill slowly
  • 02/07/2008Toady One The save pile is empty now. Fullscreening on the Mac works. Next up is a lot of bug-fixing until the number feels less oppressive. I'm not sure how long that'll take. It depends on which bugs I pick. Then I'll plot my way through world generation wars, so that the world in-play can be prepped for continued trouble.
    • bit of map code refactoring
    • fixed problem with activity zones in forts that are placed over human sites
    • added some extra checks for hammer jobs
    • added location checks for mechanism jobs
    • fixed problem causing soldiers to stop if they were unable to reach visible opponents
    • tweaked civilian versus wilderness beast behavior
    • fixed problem causing stalled and duplicate meetings
  • 02/06/2008Toady One Various issues dealt with. Tomorrow I'm going to work in some Mac code that I received to try to resolve some of the remaining problems there, then back to the save stack (8 left).
    • fixed problem that stopped pathing critters from walking around each other
    • sped up pathfinding a bit
    • fixed potential cause of infinite fluid bugs
    • fixed problem with pathfinding of building destroyers
    • fixed problem leading to floors not being placed above some constructed walls
    • fixed problem causing magma pumps to not start up correctly
    • stopped blank material coverings from occurring on creatures
    • added extra path check for item storage jobs
    • sped up item placement verification on site load
    • fixed problem with item placement for sites loaded locally
    • sped up item occupancy flag removal on pickup
    • added characters to display floor/wall engraving quality
    • handled bridge stability problem for bridges placed before surrounding constructions
    • cleaned out mining jobs with invalid destinations
  • 02/05/2008Toady One Fixed up a few crash bugs, though I ended up mucking around on the forums a lot because of the new release and the some odd goings-on with the forum software. I've got 19 saves left to check, and I'll be working on those until they are done. Then I'll try to get the total number of open bugs down below 300. I might release a few times while I'm doing this or not, depending on how fast it goes. Once I feel like I've got a bit more breathing room, I'll be continuing on with the Army Arc, following the outline at the Future of the Fortress.
    • updated workshop profile variables
    • fixed crash bug with lava going off the bottom of the map
    • added projectile validity check on load
  • 02/04/2008 Released Dwarf Fortress
  • 02/04/2008Toady One Mac portage... there are still various gigantic problems with the peripherals (sound/movies/BMP export/etc.), but there was quite a bit of progress. I generated a world with the same seed on both of my computers and got the same exact map and history. It was a bit of a chore though since the order of RNG calls between MSVC and XCode was different based on compiler optimizations (so I had to break some expressions up, once I found out what was going on). I can't guarantee there won't be a lot of addition problems along these lines. I then went on to mine a tunnel in dwarf mode and join a temple in adventure mode. Speed was fine, except in a few places where the number of refreshes needs to be cut down (unit offloading is the big one).

    I'm at a point where I can't continue without some email correspondence, so I'm going to release the Windows version now. I'll just be bug fixing with more frequent releases for a while though, so as soon as the main Mac issues are handled I can get the port out with one of those. I have the actual code transfer/Mac compile/archive process down to about a half hour which I can mostly spend working on other release procedures, so once the initial problems are sorted out everything should actually go smoothly from now on.
    • various Mac port work
  • 02/01/2008Toady One I've fixed up the last of the issues I had scheduled and I've written up (but not yet posted) the dev updates for the coming version. I'm still on track for Tuesday.
    • updated in-play civ hist fig list
    • stopped children and babies from joining you on your adventures
    • sped up art creation code
    • handled a problem with incorrect party placement in mead hall
  • 01/31/2008Toady One I'll be done with the non-Mac stuff tomorrow, and hopefully I can pound through the Mac stuff on Monday. Depending on how that goes, I'll have something up on Tuesday.
    • fixed problem that stopped caravans from coming
    • fixed problem with liaison arrival time
    • updated old save goblin towers and building names
    • allowed number of each civ placed to be set
    • sped up some end-of-game cleaning code
    • printed a bit more information about what's going on after history has run but before world generation is complete
    • put drunks back in
    • allowed anybody with an adventurous or excitement-seeking personality to join your party
  • 01/30/2008Toady One I've now begun the testing phase. Most of it is working out. There are some parts of the legends screen that I need to speed up. The caravans didn't come, so I have to fix that, but the human invaders came, this time with a pikeman on horseback with a squad of crossbowmen that killed my starting dwarves. I have two more quick tests to do, and I need to sort out the rest of the problems that I found during testing. It amounts to a day or two of work.
    • added bias toward important events in conversation and artwork
    • allowed adventurer to ask people about their families
    • patched up various small problems
  • 01/29/2008Toady One Continuing along attending to minor issues. People can join the guard of their site now during world generation, and the game keeps track of their skills, so it can use and improve them during the army battles which will come later. I'm hoping to get to the testing stage tomorrow, after which I can do the Mac port and release. Quite a few things have changed within the program, and it might take a few days to sort out any kinks that have developed, especially with regard to save compatibility.
    • added preference for adventurer not starting in ghost town of civ
    • allowed debug information concerning ruler lists and deities to be exported
    • fixed problem causing adv mode citizens not to sleep in their homes
    • updated king arrival for dwarf mode to support current leader and spouse
    • updated site guards to new system and handled their assignment during world generation
    • adjusted some of the moving-in code for housing
  • 01/28/2008Toady One I'm still working through some minor issues. Next I have to figure out why all of the merchants run out of their shops at night to sleep in the mead hall instead of their own rooms. "It is said that the lower floors of The Abbey of Echoing can be thought of as a representation of caverns for the glory of Osman Tinechoes."
    • updated goblin towers to new system
    • handled a problem with excessive temple memberships
    • added some architectural comments
  • 01/25/2008Toady One The minimap is useful. It doesn't take you directly to caves yet, but it gets you within a 48x48, which is good enough for now. It can get you exactly on top of any building you find or are told about in a town. There's also a little list of nearby sites and a compass direction, with quest sites always appearing. It's still sort of unformed, but an improvement over nothing. I managed to run off to a quest cave and get killed by a giant cave spider anyway.
    • cleaned up some broken temple maps
    • added discovery flags to abstract buildings and recorded site entrance locations
    • added adv mode minimap for viewing nearby sites and site locations
    • allowed player to join temple entity
    • allowed non-leaders to give suggestions for service locations based on their memberships
    • allowed viewing of structure histories in legends screen
  • 01/24/2008Toady One Stiiill working on this religion stuff. There was a temple map embedded in a hill that was very buggy that I have to deal with. Religious people now give you very general advice about how to live your life.
    • finished basic temple maps based on architectural information
    • fixed problem with period spacing in art descriptions
    • fixed problem with initial visible world map in adv mode
    • gave priests and high priests outfits
    • gave various buildings names
    • made current building name display at bottom of screen
    • fixed problem creating open space squares at sites
    • added some more conversation text
  • 01/23/2008Toady One I've fixed up mayors and other transition issues that came up at the end of world generation. You can see the high priest and the rest of the priests hanging out in the temples now, and you can set their graphics if you want. I decided to go back to temple maps after that and linked some architectural concepts to the spheres of deities, which in turn can be realized as specific elements of the temple's architecture. For instance, the temple to a sky god is much more likely to have an open ceiling, and the temple to a god of darkness is more likely to be constructed using black stone. The system is specific to temples and deities now, but it can be extended later to cover cultural and personality properties as well as additional building types later on. It would be nice to have every structure in the game operating under the same framework. I'm also going to tie this new information to conversations a bit this time around. I've included some vague justifications for the sphere/arch-concept links to facilitate this. I guess things always take longer than I expect, but I should finally be finished with these temple additions soon.
    • updated the conversion from historical figure to unit at the end of world generation
    • did display for priests and allowed optional graphics for them
    • linked some artistic/architectural concepts to spheres
    • selected from among temple architecture elements through sphere relationships
    • started temple maps based on architectural information
  • 01/22/2008Toady One I did an interview that lasted three and half hours, which was about two hours longer than I expected. It was fun... yet draining. I'll put up a link when it's posted (this one is text instead of audio). I got priesthood inductions working properly and gave names to the temples. Now I'm moving on to mayors and other issues that come up during the transition from historical figure to unit in town.

    Members of the Trustworthy Cheerful Cult worshipped Nosem (healing) in the Clear Cathedral of Consideration.

    Members of the Doctrine of Devils worshipped Tabmik Frothedbloat the Putrid Sucker (disease) in the Ungodly Silty Shrine.

    The goblins formed the Sect of Graves and built a temple for their demon overlord called the Doomed Bad Chapel. Their demon god was named Uktong the Sinful Curse of Nightmares, but because it doesn't yet understand that the bad bad goblins should be building and living in creepy towers, it says "In 1, Ukton the Sinful Curse of Nightmares took up residence in a hovel in Scorpionstunt." The temple wasn't even in Scorpionstunt. It was over in Greaseprofane.
    • added temple names and some more words
    • sped up some legends code
    • worked some more with temple entities
  • 01/21/2008Toady One The people that worshipped the god of luck named their group the Accidental Temple. The god of children and lakes got the Young Order of Lobsters. There's a bit more to do with this tomorrow.
    • set up entities around temples during world generation
    • removed ruin map generation
    • changed how abstract buildings are stored
  • 01/18/2008Toady One Well, not a bad week, even if there wasn't a release... again. I walked around town in adventure mode, and after seeing a lonely and empty temple there, I'm definitely going to flesh them out a bit Monday. Then Mayors and Macs. Maybe I'll put off updating nomads, since they aren't so important.

    I also recorded some more information during world generation (marriages, becoming shopkeepers, moving, building construction events, etc.), and the stories were fun to read, though somewhat sparse of course. A dwarven couple got married and were tending shops for 9 years in one town, but when it was time for a new town to be founded, they moved out of their hovel in the capital and one of them became the Mayor of Minesavant while another continued as a shopkeeper at a new shop there. They lived on like that for 80 years. It has little histories like this for 160,000 critters right now... 720,000 historical events... so I might need to stick some of them on the disk and do some culling. This could affect the quality of generated artwork though, and some other things, so it'll have to be careful. The numbers are only going to get higher when the temples are peopled and wars cause displacement and battle events to pile up. It's kinda cool to bump into somebody now though, anybody, and know that you can trace their ancestors back 1000 years to the 10 founding couples of their civilization. It made me think about the dev notes involving heredity and passing natural and supernatural traits of all sorts down in varying degrees... it would be pretty straightforward now, once the traits themselves exist.
    • made people in world gen build and work at shops
    • added historical events for site/histfig link changes
    • made people in world gen build mead halls, temples and keeps
    • cleaned up some housing odds and ends
  • 01/17/2008Toady One I've gotten through the home building/upgrade part of the world generation buildings update. Next it'll be shops/shopkeepers, keeps and possibly temples.
    • made families build and move into homes during world generation
    • sped up the legends screen
    • added display for all histfig/entity links in dwarf mode thoughts screen
  • 01/16/2008Toady One Preeetty much finished the first pass on religions. This release still requires buildings, migrants and hist fig finalization. None of that should be difficult, though I suspect finalization will throw a bug or two my way. I suppose that will cause me to blow apart.
    • did legends write-up for deities/hist figs
    • added duplicate name checks for deities
    • allowed deity race to be appropriate local animals
    • 60 or so new words to fill in some sphere/deity gaps
    • associated dwarf mode units to available targets of worship
  • 01/15/2008Toady One My interview with GeekNights has been posted. A god of fate was named Sahthet Seersmoke the Creepy Silence of Owls. Doing names took longer than I thought it would... working with symbols+spheres was sorta painful, though many of the deity names are passable (at least under the current guidelines that bind all names into the "name compound the stuff of stuff" format), so it was worth it. I put up a new world generation log.
    • associated hist figs in religious civs to targets of worship in varying degrees
    • did names for deities and forces
  • 01/14/2008Toady One Continuing along with world generation basics. Civs can now be given religion in a few ways. The gobs now worship a demon that actually exists on-site to break things up a bit (the tags give you a bit of control over the class of creature it uses). Dwarves have specialized pantheons, humans have fully randomized pantheons, elves worship regional spirits, and kobolds worship nothing. I don't really want to get bogged down in specific stock cultures, but it's good to have lots of tokens that it can tweak/randomize later on.

    I'm going to do a bit more with religions tomorrow -- enough so that the pantheons are visible in game on the legends screen at least. I also have to update building creation/storage, nomad placement and mayors, and perhaps successions of shopkeepers/merchants for the buildings, though that might wait. That should leave the game in a playable state more or less like it is now. Non-nomadic migrants will probably wait for wars to cause displacement.
    • added religious information to entities during world generation
    • added a few entity tags for controlling religion
    • fixed some entity spreading issues and sped it up
  • 01/11/2008Toady One They spread out now. It's a bit sluggish during the first 30 years or so when the most breeding and initial town founding is going on, but it seems to be leading to a pretty satisfying pattern of settlement throughout the world, except in the savage and inhospitable areas. We'll see how the pattern holds up when they start fighting. First I have a few loose ends to tie up (mayors, migrants, etc.). I should be able to get those fixed up halfway through next week, then I'll probably fix a few bugs and put a version up before I start world-gen wars.
    • did creation of new sites spreading into sphere of influence
    • added spheres of influence around entity sites
    • worked with succession and breeding a bit more
  • 01/10/2008Toady One I successfully navigated around a few pitfalls today, such as marriages to immediate relatives and marriages to the dead. Perhaps later for plot stuffs, but not now. The civs start out with 10 married pairs each, so it's already sort of a white rhinoceros situation, but hopefully it will work out. If you have a non-breeding immortal race forming an entity, it creates singles instead of pairs at the beginning, and that's all it every makes. Mortal races that don't have genders can't currently form civilizations, since they'd just disappear before play starts (unless the lifespans are very high). The numbers can be modded.

    I've compiled a list of the rulers of all the civilizations during a test. There are 10 civs for each of the 5 races. The list is here. Even though there aren't any wars yet, the population cap causes some of the lines to break because the rulers were unable to have children.
    • did marriages and child birth during world generation
    • did baby/child/adult state changes during world generation
    • finished basic succession for vacant positions during world generation
    • sped up binary insertions somewhat
  • 01/09/2008Toady One Getting started on the breeding and the spreading. Yesterday I did an interview for a podcast which I'll link to when it goes up -- should be early next week.
    • started succession for vacant positions during world generation
    • made hist figs age and die during world generation
    • updated creation of leaders and starting populations
    • added entity tags for world gen population size/control
    • removed lieutenants for now
    • barred non-breeding creatures that don't live forever from world gen civs
  • 01/07/2008Toady One Starting civ placement has been updated, and you can do a lot more with it now that the entity tags are sorted out if you like to add your own entities. It still picks just a few neighbors for you to interact with for each dwarf mode game, but one of the main goals of the Army (and Caravan) Arcs is to eliminate that system. The next major goal is to get them to spread and fight during world generation. Some of the infrastructure there will carry over to the regular game, but things happen on such an accelerated scale that a lot of it will be more abstract.
    • updated placement for regional entities
    • updated placement for cave entities
    • added start biome tag to entities
    • unified creature/wood/plant biome tags
  • 01/04/2008Toady One Ended up working on dev pages and mucking around with forum registration with the Lord Packman. There have been some dozens of non-posting bots signing up every day. Hopefully there will be fewer of them now. It was also my mom's birthday. The bear statue was appreciated and is now in the center of the living room awaiting transport to its final destination outside.
  • 01/03/2008Toady One Okay, I've sorted out the entity tags now, and I'm ready to get back to civilization placement and the new histories/wars. I won't be able to release tomorrow since civilizations aren't currently placed on the map, but I'll do my best to slip out some release with a few bug fixes while I'm working on this stuff.
    • changed how neighboring entities are selected
    • updated how the invasion flags work together
    • added entity tag for skulking invasion types
    • added entity tag to control general grouping
    • added entity tag to control diplomacy type
    • added entity tags for season and progress contact conditions
    • added entity tags to control whether bodyguards are present
    • made bodyguard types depend on entity
    • added entity tags for diplomats/merchant nobility
    • added entity tags for biome support
    • added entity tags to control leader/lieutenant unit types
  • 01/02/2008Toady One The current entity tags were too general to start the history rewrite, so I've started a process of breaking them apart that will continue tomorrow. This will also allow modders to have quite a bit more control over civilization placement and properties. Tags like "MOUNTAIN_SETTLEMENTS" and "BABYSNATCHER" shouldn't have any hidden or wide-ranging implications when I'm done.
    • added entity tags for default site type and site preferences for migrants and hist figs
    • added entity tag to allow use in undead ruins
    • added entity tag for friendly color
    • added entity tag to order adventure mode char gen entity site listings
    • added entity tags for sphere alignments and art modifiers
    • added entity tags for forest-type trade rejections
    • added entity tag for body abuse
    • added entity tags for forest-type target behavior/equipment
    • added entity tags for nuisance-type skills/equipment
    • added entity tags to tease apart animal/plant use in place of forest/babysnatcher
  • 01/01/2008Toady One Since we don't have the resource tracking that the Caravan Arc will bring yet, I've added some religious information to give them something to fight over. For the next few days, I'm going to be messing around with how the initial civilizations spread and how their histories are created. Then I'll get them to fight during world gen, and once that's working, I'll get it to happen during regular play, first on the world map, then in adventure mode, and finally in dwarf mode. Here are some very basic example pantheons from what I've done today (they don't even have names yet, since I'm going to handle that through entities that spring up). Of course, there are lots of extensions possible with religions and how they work, but I'm just going to leave it in a skeletal form for now.
    • created sphere-based pantheon during world generation
    • defined sphere relationships
    • added various new (effectless) spheres to the game

Current Log
2019 Log
2018 Log
2017 Log
2016 Log
2015 Log
2014 Log
2013 Log
2012 Log
2011 Log
2010 Log
2009 Log
2008 Log
2007 Log
2006 Log
2005 Log
2004 Log

Dwarf Fortress started October 2002, this log was started around the same time as the "back to the dwarf game" thread.