Development in 2013 (RSS Feed)
Here's a Future of the Fortress reply (two parts): FotF one, FotF two.
I should be getting back to the remaining core issues with site-to-site fighting tonight. The main complication is that something important can be happening nearby as you shift back and forth between different levels of abstraction. If you are walking away from a place where somebody is demanding tribute from a site leader mid-conversation, it has to make sure the more abstract system occurring at the "realized site" level picks up at the proper point and moves forward at the proper speed, more or less, and that negotiations occurring at the "non-realized site" level jump to the correct building if the site's building map becomes realized, and that they further jump to the correct room if you get the actual tiles generated. I'm not going to try to have the game jump into the middle of conversations at this point if you zoom in, but you might arrive at a location just as a conversation is starting. There's also the matter of multiple groups trying to attack or make demands of a site at the same time.
Sometimes people can't all get together on the proper day, and arrangements end up being made to accommodate schedules. So instead of any normal kind of dwarfiness, it appears that we'll be doing lutefisk and subsequent trauma today. I will try to avoid getting checked off the dev list.
It was a reasonably bookkeepery day of handling civilizations between invasions, to get the critters to eventually move on after completing one of their tasks. There isn't any economic data or army-to-army fighting (unless you are involved), so it isn't very interesting at this point. I also handled some issues with armies not returning from patrols properly.
I finished up the refugee stuff I wanted to do. It was cool to see a group of bedraggled humans make their way from their threatened town on the coast around the edge of a small nearby mountain range over the course of a few days and park themselves right outside the limits of a computer-controlled dwarf fortress. They could just as easily have chosen an active player fort, and that'll really matter around the time we get to the player-controlled inns and taverns. Right now you'll probably just hear about any nearby camps from the caravan.
I started to work on the refugee conversations, and instead found it was going to be one of those days where goblins run away from themselves, it crashes intermittently, and instead of moving evenly across the sky, the sun sort of jitters back and forth on its journey as if being viewed from an earthquake. I fixed those bugs and some other issues with plants that were screwing up Zach's testing process (the sun issue was caused by one of three timers having been corrupted, so the sun made backwards progress in small increments while making normal forward progress in larger increments). It looks like next time I'll be starting around where I left off last time, with fewer lurking problems.
I figured I'd continue the theme of tangential issues to armies -- some of the remaining army stuff is still a little ill-formed, code-wise, and by doing the related features that I have a better handle on, it sort of pounds the core ideas into a more technical shape from the outside while they are mulled over. So today's project was trying to finish refugees. If a site gets a rumor that a force of critters is coming to eat them or torture them for fun (checking the ethics of the invading civ), many of the citizens decide it is worth it to leave. There'd normally be refugees with regular wars as well, but we don't have large-scale regular wars and related economic/agricultural hardship etc. yet, so I didn't bother with anything there at this point. In any case, the groups look for a safe spot to head for, often ending up together in a camp outside of a nearby non-hostile market town. Having historical figures going to live with their relatives will also be a possibility. I still need to finish some parts of it up (mainly the conversations again, which seem to take more time, even for simple options, since there are lots of moving parts now), which I'll try to manage tomorrow. You'll also be able to convince people to leave with you, if they haven't left town yet, and you can take them to existing refugees or another town, with a corresponding change to your reputation with any involved local groups (the entity controlling the refugees and the possibly multiple local cultures that are a part of it are now separate things, and they'd all be affected). Dwarves from abandoned fortresses fall under the refugee framework and will act accordingly. They should still be able to come to future fortresses, but they'll arrive from wherever the refugees are at, rather than from a randomly chosen dwarf site or wherever in the world it has been putting them.
The fact that the refugees leaving town are initially urged on by a rumor and not actual knowledge of the game world should prove fodder for the "legendary liar" skill in a later release. You're still restricted to telling the truth at this point, but I imagine you could cause quite a bit of trouble once that restriction is relaxed. Even if listeners start disbelieving certain rumors, that could get them into even more trouble when it turns out the rumor is true. It's hard to say how that'll play out game-wise when you (as the recipient of rumors) are just trying to sift through basic information. We'll have to get a feel for how much of a handle on the actual facts the player needs to rely upon to enjoy themselves, given the overall limits of what we'll have programmed when it goes in at first, but the option is sitting there now, anyway.
More handling of tangential issues related to all the new people running around. The main goal today was to get something in place to deal with the passage of time between games. Since there are people running all over the map now, it can't just set the clock forward when you want to play again, at least not without being very weird and time-freezey for any pre-existing travelers. The basic rule of the current release is that the next fortress starts at the beginning of the next year, and that new adventurers push time forward two weeks, and I haven't changed that -- this means that sometimes quite a bit of time is passing. The first step was to take that time advancement out of a single function and make a new screen for it. There'll need to be work done with abstraction -- passing a pre-fort-mode calendar through almost an entire year to the next spring is actually pretty fast, since not a lot of fine-grained detail is going on in fort mode outside of the fort, but in adventure mode it still insists on handling things like tracking information, which can be slower in highly-populated worlds when you are trying to crunch it all through rapidly. Ideally, you'd keep some details from what it does in the two weeks it passes for adventure mode, so that you start off with accurate trails to follow and so on, and you'd also prefer to perform every decision made in diplomacy and war and so on as they happen, but we'll probably end up making some concessions there depending on how optimization goes. At least overall, it seems like it'll work out fine for the amount of information it is handling.
Theoretically whatever the screen becomes could be used to pass time arbitrarily between games later on if we decide we want to do something there, but right now you just watch a little calendar go forward to the standard target date. A fuller "resume world generation" option might fit here as well, although it would be a different creature than regular world generation, even after all of the world generation mechanics work in play. The same screen more or less could also be used later to handle dev goals relating to passing longer-than-sleep chunks of time in play (with training or study or work or whatever, if you don't want to play a fort or another character in the non-adventurous downtime), and it would be reasonably easy to make it sensitive to interruptions (like your training area being attacked three weeks in).
I also tried to handle a bug from an old email concerning regenerating histories correctly over near-identical world gen parameters. I didn't manage to get it to reproduce in the development version, but generating all of those worlds led to the fixing of two newer world gen crashes, so at least you won't have to deal with those.
Today's project was to make good on a statement from back in May that I'd need to handle population duplication issues for all of this new fighting to work correctly. As people that have toyed around with adventure mode generally figure out sooner or later, populations tend to come back in weird duplicating ways, and that is very inconvenient when trying to clear out the sewers, etc. Now that consistent populations matter much more, the issue needed to be tackled, so I gutted various code today and built up a new system of tracking non-historical populations as they move between the three main levels of resolution (in play, as abstract building/dungeon populations, and as abstract site populations) and also as individual population members become elevated to historical status. I ran some characters around a bit and tested some population data dumps over a number of games, and things seem to be working much better. I also updated the player targeting code for shooting and throwing to respect the new conflict system -- nothing special like aiming or anything, but as a side effect you can choose to shoot non-hostiles now (there is still no friendly fire if it isn't intended, but you have the option to select them).
Another day with gallavanting around doing crayon and errands, but I managed to check off some more miscellaneous items. Fixed a problem with necromancers no longer raising the dead, made critters perform their head bumps and so on again, updated the enragement/trance code, and so on. It's notable for this release that the underlying changes to the dwarf AI have touched just about everything, so there are lots of little items like this to catch and clean up (and obviously some will be missed, as usual), but it is the thing that'll make job prioritization and a variety of other customization possible after the release.
A day spent mostly across the water and otherwise wandering around on various missions. I used the time left to do some sloggish updates with the personality data that didn't take much thinking power (such as which new personality facets determine which ghost types or the writing styles of books, that kind of thing). Tomorrow is only half normal, but I should get a little more done.
In part for preparation of restoring governments after completing insurrections and otherwise turning over sites to other people, but also just for the mess of village-to-village fighting, you can now claim a site when you are there. Which site claims from which entities take precedence in a given site should be pretty complicated later on, but it's not time for more complications, so the recognized claim (for purposes of diplomacy and site disputes and displacement after invasions and all that) is just based at this point on who is physically holding the main building (whether that's a keep or a mead hall). A neighboring site entity maintains old grudges and other diplomatic info with a site entity even when it has lost its site, but the neighbor won't act on that for the time being, and the newly recognized site entity will be the one it now treats with. Regular citizens have their various factional loyalties (which we'll work with as we head into more insurrection notes), but they basically don't care who is in charge as long as the new leaders aren't real trouble (like goblin occupiers). That said, it's quite possible for this release that there'll be enough variety that you'll have more trouble taking over a site where citizens appreciate the current leadership more than average, since they'll be willing to jump in.
In order to make a claim, you have to tell somebody else about it, since an entity can't just exist in your own mind (although there might be reasons for something like that later, to establish rules for retired hermits in a ruin or something). Once you state a claim, you become the leader of a new site entity based on your current culture, but it is meaningless (other than as a new rumor) if you don't take the main building from the previous owners (at which point you get a handy announcement). What you do with control of the site is going to be up to you, in a few limited ways anyway. Once you've got a successful site claim, if you don't just want to retire, you'll be able to pass it off to a subordinate or give it to your former leader to handle as they please. Or you can run around the world with some of your own guards (in which case you'll probably lose the top site claim shortly after somebody looks your town's way).
In this simplistic system, the overall power of people is basically determined by the total population after considering the number of abstract tribute relationships they maintain. Note that taking over a site doesn't necessarily involve killing everybody in the main structure -- the upcoming plan is that if they yield, they can become regular citizens of the new entity, or if they run (or are sent away), they'll become bandits (taking their old entity and its site claim with them). You should also be able to leave a defeated leader in charge without ever making a site claim of your own in the first place, forcing them to send (abstract) tribute to whomever you want (including one of your own site entities elsewhere) for as long as it takes them to reassert themselves and break the agreement. So yeah, it still needs work, but it should be reasonably fun to mess around with even in its current form.
I turned on the in-play AI for site leaders (just humans for now), coupling the stuff goblins and bandits were already doing with some of the considerations from world gen (like site disputes and the qualities of leaders). The result for a medium world was an addition of three dozen village raids right at the outset, on top of the existing goblin invasions, including one corner of the map where the village leader worshipping Mirding Fairwaves, the goddess of the sun, the sky, light and day was fighting with the leader of another village that worshipped the Scraped Webs, god of night and nightmares. Normally their shared culture can keep a lid on that sort of thing, but the opposition was so fundamental and the faith so strong that it didn't even take any generic land disputes to set off hostilities. I guess while I'm working on this part, I should be happy to accept a bunch of villagers beating each other up for their zealot leaders as our randomized version of an epic battle between light and dark. In any case, direct player participation in such trouble should be coming soon.
There wasn't a lot of programming time today, so I just did conversations related to village disputes so that you have more background on what's going on and what options you have. Leaders and guards'll now give you more information about which wars and historical site disputes are current so you can act in ways that advance their goals.
I finalized the most basic conflicts (wilderness creatures, bogeymen, etc.) and started looking at guard activities and put in some conversation there. As I mentioned back in August (the log from the 13th), there's a lot of information now in world gen that governs what each village thinks of each other and what they have been bickering about, but it had only thus far been carried over to play statically, with the new leader/guards/mead hall thingies. That'll change now, and the village-to-village fighting should take off once I give the guards a little more AI to work with regarding strangers, non-compliant individuals and violence, and the individual villagers get a spectrum of feelings about their current leaders so they jump the right way when others come in for trouble. Since you won't need to be present for any of this to be going on, hopefully it'll make the world a mess of activity. We'll soon see how it plays out!
I mainly handled some loose ends with the unit realization code that I needed for guards and similar critters to think correctly moving forward, regarding their army/squad/etc. information. The squad system from dwarf mode I want to co-opt only supports historical figures (in particular, your dwarves), and I'm coming up to the edge of the number of historical figures I feel comfortable elevating for squadly purposes. I'm trying to elevate the extra guards it needs from the city populations at the last possible second, when they are realized in the local area, so it should be fine. Until then, they exist in an abstract form that still recognizes their overall squad structure, alongside guards that are already historical. Once somebody becomes historical, they eat up more resources and are hard to put back in the bag, so it's important to be careful. I'd prefer to keep them non-historical for longer, particularly guards in large cities that just walk by you on the streets, but that rewrite would be more severe, so it'll have to wait unless it really becomes necessary. Next up we'll experiment with how my daytime sleep schedule interacts with neighbors, their television and a Sunday Seahawks game. Previously when I've tested this, the sleep job cancelled, I couldn't crash again, and there was lag all day. This time I've been forewarned about the test conditions, so hopefully I can have better results.
A little more than a third of what's left has to do with fighting in or between sites, both some missing basic mechanics and fluffier stuff like how regular people react to certain conflicts and if or how they take sides, etc. I had to further pull together a lot of different population code today (between armies, sites, buildings on sites, people walking around sites, and siteless world gen groups), in preparation for understanding guards/soldiers at sites a bit better and to give myself more control over them. There shouldn't be any armed people anywhere now that don't have some sort of reason for being there tied back in to either individual motivation or a command structure (for example, the heroic historical figures in the pseudo-taverns, guards on patrol under a captain, favorites -- perhaps you -- under the village leader on a raid, occupying soldiers, and whatever else we have). There were older fuzzy cases where it was making some soldiers as a simple percentage or based on the fact that they were living in a keep, which made their behavior difficult to govern now that it matters.
Mostly various bookkeeping today. Added an in-game-weekly cleaning up of zeroed populations that tend to accumulate slowly, messed around with bandit equipment/loot, consolidated notes, that kind of thing.
I mixed opponent's bragging about prior violent acts into the new conversation setup (which means they won't drone on and on in a separate screen). This also has the effect of allowing you to brag to people, though there isn't an effect from that at this point. In addition, you can demand that an opponent yield or request a cease to fighting without anybody surrendering. It helps to get you out of accidental or non-accidental fist fights, for instance, and it'll likely come up as we get to the last village-to-village pass and other antics. I also cleaned up the trading stuff a bit more and fixed an odd bug where telling one companion to wait while having another companion follow you caused them to hack at each other until only one was left, due to the waiting companion thinking of itself as an army camp guard and getting all antsy about the suspicious activity along his very short patrol route.
You can trade objects with pretty much anybody friendly now, without the requirement that you be in a store, and as long as they'll make out alright, they'll go for it. You can also give anybody anything. It should probably be restricted a bit, since people are more than happy to tear off their shoes for an equal value of food or whatever while they are standing in the mud, and so on, but it does let you give whatever to whomever, which'll help some of the dire equipment problems companions have until we have more time to do something better.
I handled very basic companion orders today, in conversation and in practice. You can just tell them to wait in a place or follow you again, but the framework is the same one already used by every army, so if there were any point to issuing orders having your buddies patrol an area or occupy a city or something on their own right now, it would just take adding the conversation choices for it to be done. I might get some more out of the system for this time when I finalize site-to-site fighting, but it won't be interesting until you are able to run your own group out of your own site, which is planned for some release after this one. The same stuff will also work for fort-mode dwarves once you can send them off map, and it was nice to get the very first taste of that sort of interaction today, even if it is still down the road. It's fun to imagine your little dwarfy critters off on their own with even less control over their shenanigans, and what sort of trouble they could bring back to your doorstep, he he he. The whole world will be a sock outside during a siege. In any case, back in current release land, I'm pretty sure you'll be able to give your companions items in a day or so, so that's good.
Finalized some details with guide agreements and cleaned up various issues there (people recommending violent criminals as guides, a broken status from world gen leading to rulers holding court in taverns, constant tearing down of keeps and mead halls in an alternating fashion year by year in world gen, etc.). I just need to handle the termination of guide agreements after the goal is reached, which I'm going to do when I handle the general termination of agreements (over infractions and so on, which is coming up).
The December 2013 report is up. Here's to a calm and workful month.
Here's a Future of the Fortress reply to wind things up for the month: FotF.
Continuing along! Mainly stuff to do with the revised idea of a heroic reputation and reputations in general (which won't always be heroic now that you can start random fist fights with people), and quite a bit of amplification to asking for directions, including being able to drag somebody along with you, although that still isn't strictly necessary (we are worried about the lethality of that job and how often you might need replacements, so well-travelled individuals can direct you to sites and also join up if they want to).
Continuing along with more issues. Broken activity saves, periodic cleaning for stale incidents, witness reports and rumors, repaired undead AI, additional crushed bodypart announcements, fixed some new broken wagon pathing, brought market banter and the new combat interjections under the new conversation umbrella, messed with mead hall maps... that sort of stuff. Back in the September report on 9/1, I was thinking the list would be done in mid-November, and I suppose a combination of the October trouble and my usual crappy estimation skills has seen mid-November arrive with the list still alive. On the upside, I finished 75% of it. So progress continues and the work continues.
More list, more stuff, more continuing along with. I cleaned up various starting paragraph and character background paragraph stuff, added some more conversation text, moved monster quests over to the new information system, moved bartering over to the new converstation system (in part, you still get to do the transaction itself automatically), that kind of thing. Yet another indexing error has been causing demons to get murdered in world gen way too often for quite some time, and that has been corrected.
The list is being continued along with. I ran through some kidnap rescues and added various conversation bits to allow you to know where to go to reunite them with their relatives and so on, and set up the companion agreement for that case, so they know why they are with you and when they should leave. I also made world animal populations restore themselves slowly (including the local populations in fort mode), handled non-historical population management for sites, respected the world pop cap for historical figure conceptions, and fixed an indexing error that has apparently been around for years involving families not being placed together in buildings (I noticed when I returned a child to a town and the parents were living in different houses).
We've been continuing along with the list. I just finished a bunch of bookkeeping with invaders picking out buildings to operate from -- when a site's map is realized and all the citizens are spread out between buildings, an army that arrives for occupation also needs to sort itself out in a more specific way, and any historical figure that is staying in town needs to have a home, and so on. Generally they'll displace the current leadership and take over whatever castle or mead hall structure is around. I also cleaned up how they set up the new government -- during the first test, a kidnapped child that grew up to be a scout for the goblins was the one they selected to be the ruler of the town under occupation. It's cool that things like that are happening during play now, though of course the really juicy stuff relating to relatives and so on hasn't been done yet.
The November 2013 report is up. I also did a Skype interview with the University of Minnesota Video Game Development Club, and it has been posted over on YouTube here. Scamps makes an appearance or two.
Here's a Future of the Fortress reply: FotF. Zach is back home and we've been catching up on rewards and various stuffs. Recently I've been doing reasonably routine items like conversation cleanup and horseplay rules for use mostly in the arena for completeness. We're just going to try to get everything administrative settled through the end of the month, and then start what is hopefully the last big push in November.
Things are proceeding along. I cleaned up the demon site maps... 3D maps always seem to gobble extra time, probably because there's one more letter to mistype as one of the other two letters, but we're still on track. I also got the game to respect the light activity periods of predators as they wander around, messed with camp guards some more, various fixes to tents, and so on. The remaining list is so random I don't think there'll be any structure to the next set of updates. It should take us up to around November 15th, at which point we'll just continue to test things out for a bit and see where we are at.
I suppose it's strange but also kind of typical that I felt a warm glow seeing the high priest impaled on a pole right in the temple grounds where I expected it. There's been quite a bit of work getting elements of rampaged-upon cities to reproduce properly through successive realizations through their different levels of abstraction, so that a city destroyed far away can be loaded and reloaded correctly with damaged buildings, and that a city destroyed nearby can be offloaded and reloaded with the same buildings affected. Also lots of stuff with army pathing, camping and guard patrols. And amazingly enough, the work leaves basic development on track. Zach's doing much better, though he'll still be laid up a couple weeks.
The plan to get up more logs this month isn't quite working -- there's been some hospital trips and related stuff and so on. The situation is improving now. Bay-12-wise, work'll resume on the main list tonight, but rewards are going to be delayed a few extra weeks.
I've continued to work through my list. Tracks vs. brooks, strange issues with patrolling armies disappearing, forgotten beasts appearing on the surface, duplicate army populations, rampaging soldiers suddenly hitting beaches and stopping forever to admire the waves, that sort of thing. Chewed off a good chunk of notes and continue to be on schedule.
The October 2013 report is up. Now to chew through some notes!
Wow, that was a little longer than I expected. In any case, here's a Future of the Fortress reply (there are some images of unusual dwarven personalities there in the lower spoilers). Generally, development's the same story pretty much. I'll try to post more next month, even if we are just continuing our walk through random issues land.
We're still on track to be through with the main list by mid-November as stated in the report, but there's not all that much new to say about it. Lots of issues with combat, vision arcs, tracking, conversations, and so on. In any case, things continue to go well.
Finished up some hundreds of new personality sentences. There are also values, which mostly come from the culture, and dreams, which mostly grow out of those. So dwarven society, of course, highly values craftsdwarfship and many dwarves have a dream of creating a masterwork or mastering a skill. Each dwarf also has a few values that differ from the cultural norms in general, which'll lead to different dreams and behaviors (these are printed in a different color so you can easily find what's special about a given dwarf). As usual, the system isn't used everywhere it could be, since it is a large project, but I'm finding myself much more enthusiastic about the new personality facets and values vs. the old system which was a bit wishy-washy, and this first release will use them at least as much as before, with some new stuff. The value system (combined with the old ethics) also makes it pretty clear to me now that philosophies/religions are going to be able to be generated and impact play immediately once that rolls around (not for this release).
On the other hand, the paragraph writeups do criticize dwarves a bit harshly at times (since it highlights the extremes and doesn't mention the average personality facets at all), and they can be fundamentally worse people than before. The presentation can be a little overblown, since some good/useful things about dwarves (like high skills) do not appear on the personality page, so it might be good to give them a chance before you rush to the drawbridge or magma lever.
The multi-tile trees fall over now when chopped down by a dwarf. I went with having logs from the trunk segments fall down like projectiles, so you get a primitive sort of animation, and the tree doesn't go anywhere it shouldn't be able to. And critters get a chance to dodge out of the way if they end up in the way. You can choose the direction of the fall for larger trees by choosing which tile to chop, but for smaller trees, it'll just be away from wherever the woodcutter ends up, which you can only control indirectly at this point. I also messed around with the new personalities a bit and taught the new dwarven brain how to stand up again, which has been an ongoing issue.
As a result of meeting a zillion independent developers over the last weekend, we ended up with a Twitter account, @Bay12Games. Zach and I are both on there, at random, and we're not really sure how it'll be used.
Here's a Future of the Fortress reply, finally. I should be doing the last of my hectic stuff on Friday, and today should be a good work day, so hopefully we're returning to normalcy.
The September 2013 report is up. This weekend has seen the now-typical end-of-the-month Future of the Fortress reply late-ified a bit, but I should have that together in a few days.
Continuing to work through companion issues. You can form freeform lasting "adventure" companionship agreements with unaffiliated people again, provided they want to go with you in the first place. I'm also partially through guide agreements. You can also start as a crony for one of the town lords if you want, which'll let you start right off to work at the price of influencing how other town leaders/subordinates treat you, or you can start off as an unaffiliated civilian of a town or a townless wanderer, in which case the leaders of towns won't include you in their plans at first.
Sorry for the delay! There was a bit of a delayed birthday celebration for Zach in Seattle over the weekend, where the two of us wandered around town for a few days. Near the end of the trip, we were recognized by a DF player in a bar, which was a first!
Back on the dwarf peninsula, I reintroduced the manor houseish mead hally hybrid places for the petty lords to reside in, and I'm now finishing up conversation and reputation issues surrounding companion agreements to get your role as a participant in the village-village bickering established properly.
So yeah, the gear switching since the last release had sort of scuttled one of the major thrusts of the game part of the game we were initially planning to add with bandits, or at least timed it out for this version. We're trying to salvage that portion into a playable segment without extending the length of the to-do list (which is possible since it had some defunct notes). Adjacent human/gob sites now squabble between themselves and each other in world gen, and tensions over various abstract topics (livestock, fishing, water, right-of-way, etc., depending on the entity/site) boil over into raids and sometimes the establishment of site-to-site tribute relationships and nepotistic (nepotic? words are hard) rulership changes. Generally, all the world gen leaders respect family a bit more in terms of how the tensions play out, and they don't make position holder selections so randomly.
That's it for world gen though. Now that we have that little bit of small-geographic-scale history to work with, this'll all be combined with the existing non-lethal combat and army stuff to give you some more things to do that have some lasting consequences, without having to deal with large army engagements/tactics. Aside from the things you'd normally be doing with goblin towers and monsters and all that, you'll have the option to pick sides or otherwise interact with local squabbles, going into other villages and causing trouble, to the point of changing leaders. Additionally, some of the bandits will naturally arise as displaced village leaders that wouldn't mind getting back in place, and so on. Hopefully this'll remove the dead-end that the existing bandit harassment had become. I'm going to keep working on this while my head is in it, since the list is shrinking rapidly, but there are still dwarf notes on the table of course, regarding fortresses/retirement/you-reclaim-NPC-forts etc.
I've continued going through DF issues not related to non-player dwarf fortresses, since I've been on a roll munching away at random quibbles. We've also pulled together the remaining release notes on bandits, position claims, personal goals, armies, insurrections, guards etc., and come up with a course of action that'll keep our current work in the game without having to do all of the hero role dev arc (this was a problem I mentioned in an old Bay 12 Report, that the bandits were on hold since we felt we needed the rest of the hero arc for our bandits-in-town to be fun as they are currently implemented). The revision co-opts enough of the stuff we already needed to finish that development time shouldn't be impacted. We'll see how it unfolds probably over the next few days, but overall it involves focusing a little more on unpleasant interactions between human villages and small towns than we thought we would be able to this time. Then I should circle back around to the fortresses. I've also finished half of the notes related to demon sites.
Now that the livestock aren't getting weapons any more, the only parts of the under-the-mountains dwarf areas left to do coincide with stuff that'll also be in their outside-to-caverns fortresses, like workshops, so I'm moving on to those. Dwarf fortresses are the last dwarf-site-related part, and it covers their maps, retirement issues and reclaim issues. I also went back and did a few climbing issues still on the table -- there is a climbing skill now, and things like constructed block walls are harder to climb than constructed rough walls (smoothed natural walls can't be climbed at all, at least while we are still dealing with tool-less people). Failing a climb move can be reasonably traumatic, depending on where the ground is. You can still grab hold of walls/etc. when you fall as you could already when jumping etc., but it is more difficult now.
The August 2013 report is up. Here's a Future of the Fortress reply.
Family came up so there was sort of a non-work period. I got a look at the old tunnel code yesterday and developed a pretty good feeling for how the underground travel stuff is going to go tonight. I expect you'll be able to travel into a fort, and then use a stair key (>) to move to the first layer, then through the layer-tunnel connection which runs through the deep sites and unsettled areas to another fort, and finally up and out with the other stair key. I also expect there will be travel allowed "off-road", out into the layers accessible from the fort, since the distances are too long to force local-view travel from point to point. I'm still ambivalent about that though, since part of the fun of exploring underground is seeing the giant mushrooms and so on as they come up, so there could still end up being a kind of middle ground in terms of where you are allowed to move in the travel view, depending on which obstacles you face and so on.
Hill dwarves are up and running with their little gardens and the other tidbits that needed doing. This also means that human plots in villages have gardens as well now, finally, instead of that furrowed waste that has surrounded them forever. Now for a protracted stay underground with our thoroughly cave-adapted buddies in the deep mountain halls without direct exits up outside. They have little living areas set up already, but I want to differentiate them a bit from the fort layouts, and of course there's the main feature of underground travel to do.
I've got the elf sites up to where they need to be. The last thing I updated was the firest -- they affect trees differently now, tile-by-tile. They tend to burn off leaves and smaller branches and keep larger parts intact or dead-but-still-around, depending on the intensity of the overall fire, so all the grass usually goes with some blackened stumps/branches left behind. There are still tree chopping and the continuing raw entry as I mentioned, but I'll work those out as we go.
Next up are the dwarf sites. Vaguely, this finalization is broken into parts corresponding to the different sites: the hills, under the mountain, and the forts (including your retired forts and reclaiming world-gen forts). These are all in various states of decay. I started today fixing a crash with deep sites and resolving various issues with elevating a baron from your dwarves (it needed to be updated after all of the changes with dwarven nobility from other sites, since dwarven nobility are now civilization-level positions with multiple associated profiles, and that has various ramifications for appointments, etc.).
The elf caravan rolled in with chestnuts, mangos and coconuts, and also some grown oak items that won't make them angry if you try to resell them later. I've got their sites sorted out (at least in some releasable way, if not a satisfactory one), with some of their largest trees 30 tiles across now. So this section is pretty much handled -- I have a few more days of issues, new tree/vegey data entry which'll be ongoing up to the release, and dwarves chopping down trees left to do. That means I'll be getting on to finalizing dwarf sites pretty soon.
Plants and stuff. Many more loose ends sorted out. There are now properly gigantic underground mushrooms. In the open caverns the tower caps can become quite voluminous, but they can also squeeze into tunnels at times. While working with falling leaves and fruit, I put in the format for item cloud breath some people had asked after (although it doesn't understand how to hurt people beyond temperature, so it wouldn't understand little daggers or something until later), and I also handled the raw format for using plant growths as items... this culminated in making a test cave floater spray maple leaves at people in the arena, leaving a litter of them over the stone floor. I also got a knapping reaction to work that made one rock chip the other into a maple leaf. So that seems to work as well as it needs to.
Here's a Gamasutra article by Mike Rose. Next we'll see how many elven forest retreats burned down it takes to get this section sorted out.
The July 2013 report is up. Here's a Future of the Fortress reply. The transcript for DF Talk #21 has finally been posted on the web site. Thanks to the community for putting that together.
At least half of these elf notes just relate to tree errors. I've stopped trees from breaking apart roadways and sewers, and some problems with indoor/subterranean map markings vs. trees. I fixed some tree display issues and made trees shorter at higher elevations, and some branch placement issues that caused cave-ins to trigger. There was also that error that has been around for years with the little elevated block that appeared at the top left of map sections on occasion, with the ramps on the right and bottom sides. I cleaned that up, and the resulting better edges have removed some of the squareish map artifacts in general, which is good. River connections still cause some overall blockiness, but I'm leaving that for another time.
I've finished the goblin sites. I crept through the living passages and cells and out into an open bone carving cavern, then climbed down the garbage pit and through the discarded goblin skeletons into the first natural underground layer. After negotiating a few waterways (climbing over the pools along the rough stone walls), I found some more corpses in the water and climbed up a different garbage pit. In the second work cavern there were found troll shearers and many, many trolls... so that seems to be going okay.
Next up I'm going to finalize the elf sites.
I've mostly been discovering and repairing broken gob map connections, which is a pain since the largest structure can be more than 150 Z levels from top to bottom (mostly underground). Any lurking bug can burrow and hatch later as a broken door, ramp or stairwell several routines down the line, and the routines are all seed-sensitive and so too-often disturbed by test alterations, producing a completely different map rather than isolating errors. Many sheets of graph paper have died in good service. In any case, I've manually walked a character from the top of the tallest towers down to... well, wherever they go, and I can create many dozens of gob sites in succession and the game tells me they are in good repair, though I expect problems to continue to crop up. I'm down to varying patrols (they only send out large clumps at the moment), additional residents etc. now.
I decided to finish up all of the goblin site map notes. I fixed their (sometimes magma) leaky rooftops, handled their possible connections to places down below, various broken entrances and so on. I still have some things to do with their citizens and other innards. It's all pretty routine, and I'm cranking away at the pace I'd like to keep.
I finished those idle issues and also went through all the invasion and wilderness animal and other such code, updating it to the new action system. I'm going to jump through some random stuff now, as we continue to work through the remaining notes. Hopefully some of it will go quickly!
I've handled all of the side issues with dwarven behavior, except for the ones classed in "idle" behavior, which includes parties, fishing, hunting as well as just going to place to hang out. It shouldn't be too hard to finish that tonight.
So as I said in the report, the current idea is to figure out just how much fort mode has been affected by the various move/combat/vision/etc. changes and get things back up to speed. It didn't start well, since none of the dwarves could move. I got combat back up in the arena, and then started dropping dwarves into the water, which they no longer knew how to escape -- so I have to convert most things, more or less. Jobs are working now, but I still need to handle the side issues like diplomats, complaints, caravans, and so on. The upside to this revision is that whatever job priority system we come up with is almost touching the ground as far as low-hanging fruit go, so it'll definitely be one of the post-release features we work on with the bug fixes and other upgrades.
The June 2013 report is up. Here's a Future of the Fortress reply.
The year-old bandit stuff I wrapped back around to had a bunch of stupid bugs, and now those are gone. We're still in bandit stuff, but at least they aren't appearing in walls, harassing themselves and other features. Overall we've carved away exactly 20% of the notes this month. A bit frustrating, but at least they are reliably shrinking day to day now, instead of staying the same length (December to March ended up that way, despite the progress). In any case, we're now in month-end obligations mode, and we'll continue whittling away in June.
The transcript for DF Talk #20 (not #21) has finally been posted on the web site, so if you missed it on the forum, you can finally read that episode!
Here's Dwarf Fortress Talk #21, where we talk about current development and Threetoe appears to answer questions with me: forum thread, DF Talk page with download.
I worked on track detection and presentation quite a bit, and added some variability in the quality of tracks to make skill matter more. Now I'll be wrapping all the way back around to the bandit stuff from last June where we started and make sure that ties into the invader/tracking stuff properly as I continue to finalize all of the elements.
Standard sort of things: removal of tracks if spatter disappears, crutch imprints, fixed speed at which wet feet stop leaving prints, old grass trampling vs. new broken vegetation as spoor, track overwrites vs. the ground becoming an indecipherable mess, marks from falling, cleaned up some descriptions... next category of finalization has more to do with detection of tracks and following trails than the physical side of it.
Last bits with hiding in grass or in shrubs, effect from being prone or next to an obstacle (it gives a bonus there, even if it wouldn't always make sense, until we have things like being able to look around corners). It also gives you quite a bit of feedback now on what factors are influencing your visibility.
I was starting in on tracking finalization when I became dissatisfied with having to hunt down certain situations, so I added some more options to arena mode. The map file can be given grass, dirt or sand, and the temperature, time, weather/clouds and fog level can also be set. You can pump the temperature up to dragonfire if you want to see the arena water channels boil off and the grass ignite, or you can put it down to deathly cold if you want to watch everything freeze. Playing around with stealth in heavy fog is also entertaining.
Same story with another 20 things or so. Mostly technical, with how vision arcs are displayed, how they restrict travel in conflict and what they mean and all that, but notably we have night/fog/etc. affecting all creatures now instead of just you as well as attacking most critters outside their vision being much more effective (which wasn't done). There are only a few bits left there, and then we'll be able to give tracking the same finalization.
I've gotten through a number of the promises I had written down for stealth over the months, mostly arising from my Future of the Fortress replies: you can set the angles of the full/peripheral vision arcs within the raws, creatures with multiple heads etc. can be set to have the full vision circle as long as their multiple parts have working vision, size and movement impact stealth and attempted sneaking affects maximum speed, and so on.
A final link from the trip, if you didn't find it elsewhere, here's a video of the CCP panel itself on YouTube: Games as Art.
Here are a few things while I continue refamiliarizing myself with the stealth and tracking stuff (and botching the DF Talk Q&A recording, etc. -- we should have a new one up as soon as we redo that part):
At the end of last month, during our visit to Iceland for the EVE Fanfest and their art panel, we encountered a Giant Bomb camera crew and they've posted the little interview over there.
And just yesterday, MrSavaGhost began a YouTube video game series with a Dwarf Fortress interview that was recorded while he was playing the game. If I remember, not all of the adventurers survived, which is always a source of great joy to everybody.
Guards and occupying soldiers wander the streets now, issuing forth in multiple small groups from the strong places of the site that they hold and then coming back. Now they just need to act the part a bit -- so it's a good time to finalize all of the stealth/tracking loose ends as well. I'll also be dealing with duplicate population spawning issues that have been around for a while, since the requirements of leading a successful insurrection upgrade those problems from annoying to critical. It's very important now that every critter is catalogued and accounted for correctly, since actual group/faction sizes are key.
I can now cheerfully watch people walk in from the side of the map, hang out around the well or elsewhere, then walk down the street and back off the map, and then more abstractly continue their journey back home hopefully at what is roughly the same speed. They don't actually do anything meaningful, but that's okay for now. I also fixed a bug that caused the wilderness populations of underground areas and rivers to slowly vanish and die when the area is realized tile-wise repeatedly, and some other such problems that popped up playing with the world debugger. I don't think this solves all of the population diminishment problems, but it was a pretty bad one. Guards and soldier patrols actually next now.
I'm messing around with bad behavior involving people piling up at intersections and other silliness, and I should be at occupier/guard patterns in a few days, which'll be cool.
Here are some pictures from Iceland.
The May 2013 report is up. Here's a Future of the Fortress reply.
I should have some pictures of the trip ready once my poor camera gets a replacement cable.
Scamps had to be secured from his new burrow up in the now-mutilated box-spring (what's this hanging lump under the bed?), but he's staying with his grandparents now and we'll be back in time for a dentist's appointment, Future of the Fortress and a mass art mailing after the weekend. Hopefully there'll be a calm and developy May ahead of us, but this April continues to be a fun change of pace in any case.
It turned out to continue to be busy, of course, since many internet people ended up celebrating the birthday and we drew 34 crayon pictures for them on Friday. Zach and I are also preparing for a trip in three days, for a CCP panel discussion on art over in CCPland. As I said back on the 6th, it's a quite intense month aside from the programming. All the same, I got my civilians wandering around and improved my world debugger so I can zoom in on the streets and watch them go about their business at the tile level. Next up are the guards and occupier patrols also under this framework.
The busy weekend is over, and I can get back to things. Next up, I'm going to rework occupation street patrols and get some civilians outside as well, and that'll also include regular watchpeople/guards for non-occupation civs, though their actions will be limited to responding to incidents they can understand (so there isn't a new notion of crimefighting or anything). The main goals are to give insurrections opportunities by dispersing the occupiers some more, and to give your enemies more mobility by supporting more moving groups in the city. Overall, finishing up the insurrections, stealth, refugees and related companion stuff is a little more than a quarter of the remaining notes, so hopefully it'll feel like a good healthy chunk when it is complete, but as usual, there's a lot to be done.
Let's see, you can set the combat state in the arena now, from lethal combat without quarter down to brawls and horseplay, and you can also turn morale on and off -- I did that mainly to test yielding and to fix some issue there with aardvarks surrendering and so on. Unarmed combat is more survivable, and on the other hand you don't have to actually damage somebody's brain to knock them out now. I didn't go too deeply into that, though, so as to move onward. That's the last of what I wanted to do with the combat changes. The next few days are going to be pretty busy though, with continued non-DFish stuff, so I should have some details of the next steps after the weekend. I'll probably be going back to the insurrections I had detoured away from to finish combat, unless other things need taking care of (stealth cleaning, perhaps).
It looks like the hydra is working correctly. Two heads snatched a lower arm a piece and then shook around and ripped them off at the same time. It's reasonably dangerous. The heads can each choose a different style of attack that have different times to strike and recover, so they get pleasantly out of sync as they roil around. The attacks are marked in the raws as independent so the hydra doesn't suffer a multi-attack penalty (which encourages the AI to go ahead with them as well). I also hacked apart a lot of undead corpses and skins and things to test that out, and it seems to be working fine. Next up'll be some tweaks to non-lethal combat damage and yielding, which'll get us out of combat and back to other things.
In the localest DF news to date, today's Kitsap Sun (the county paper) will feature a Dwarf Fortress article by Tad Sooter. It's also available online. Amy Phan produced a video online there as well, on the left of the article (or here).
There have been a lot of DF Talky, pressy and taxy things going on (with all the events scheduled for later, this may end up being one of the busier months on record non-programming-wise), but I managed to get most of the way through pulping as well as making some strides toward the definitive hydra test. For pulping, I just need to hit a bunch of things in the arena now to get the numbers to feel correct. Once a key body part is pulped, associated corpses won't be able to be re-animated. If a dwarf gets hit enough times to have a part pulped and still survives, which is reasonably extreme, they can still recover, since pulping isn't actually a state of being, just an accumulation of enough serious wounds -- if enough of the serious wounds heal, the dwarf can recover, but it's likely to be a mess of multiple horrifying fractures and nerve damage and so on. The "hit points" for animated creatures that were a band-aid for the damage problem have been removed.
I finished the enemy combat AI actions, so they can also attempt to actively defend. As I've mentioned before, this also lets you use active defenses when you press toward somebody if the computer thinks it is a good idea. I have five more minor combat flow bugs to work out (sometimes they just skid underneath you like baseball players for no reason, for instance), then I can finally start pulping.
The April 2013 report is up.
The Cartographer's Guild is using DF maps as the starting point for their map-making challenge this month. It should be interesting to see what people come up with!
Here's a Future of the Fortress reply, which seems to have settled more or less into an end-of-the-monthly thing.
In addition to cleaning up random unfunny bugs, I've been entering all of the gait data into the raws now that that part of combat is definitely settled. Creature variations can now take argument strings which replace argument markers in the variation definition (the arguments are different speed numbers in this case). The use of lines of the variation can also be made conditional on these arguments. There isn't enough resolution in the game's time system for speeds to make sense entirely, without letting critters like cheetahs understand moving more than one square per click. Fixing it isn't as easy as making projectiles go more than one tile per click. In any case, critters that should be faster than a dwarf or human at full speed are much faster at their full speed, while one creature's full speed is generally much faster than its walking speed, so it'll be an improvement.
As I continued along with repairing combat flow the last few days, the reaction moments I had added ended up being subsumed entirely within the new action menus. Technically speaking, the game will still interrupt you when you press wait, if a new attack is incoming or an enemy moves nearby. So if you want to play reactively, you can just wait until something happens, and you shouldn't get caught off-guard before you can react, but it does mean you aren't the one attacking first. I've worked in more "observer" skill effects into this, so you get more information about incoming attacks as you become more skilled and so on (other critters will also get to use this information). I've also been cleaning up various general problems (playing as an aardvark I was able to somehow grasp a cliff falling down but unable to climb afterward since I didn't actually grasp it with anything, etc. etc. etc.).
The reddit Ask Me Anything has started. Here is my alien user name picture..
That lasted longer than I thought it would, but I'll be back in the dwarfy saddle tonight. Yesterday I managed to set up the active parry/block/dodge menu I mentioned last time. It works as sort of an extension to the old shift-A strike-or-wrestle menu for detailed combat actions. As before, you'll still have reflexive chances to do some of these things when attacked without having to set them up, but it won't be nearly as effective as making the choice to respond in a certain way (although committing to, say, batting somebody's attack away with your own weapon might heavily reduce your reflexive dodge chances). Making active decisions will also lead to your ability to counter-strike or to otherwise give you an opening to take initiative. Your dwarves and the enemies you fight will have access to any new combat features as well, of course, and the AI they use'll be the same AI you use when you press toward somebody (that is, when you don't use the new menu and just walk into people to fight).
Another side effect of actionifying everything is that attacking multiple enemies is far more dangerous now. Even at the highest skill levels, parrying eight attacks simultaneously with one weapon is no longer possible, for instance, whereas before you could do it without any negative effects at all. Dodging out of your square would still work, and having multiple incoming attacks might be a good reason to choose this action. Committing your weapon to defensive actions also means it is not attacking, although creating opportunities for counter-strikes should mitigate that and allow the direction of combat to flip back and forth.
Some of the redditors from /r/dwarffortress asked me to do an Ask Me Anything (see http://www.reddit.com/r/IAmA/), and if I understand how scheduling works, that'll now be happening on Saturday, March 23rd at 7PM EDT, and last for an undetermined amount of time.
Zach and I both managed to get a nasty non-flu (thankfully) thingy, so I've been sleeping a lot and hating the sun even more than normal. I did get some indicators to pop up during combat that sort of flow out and show you what actions are on-going, and you'll make some more active decisions about defending and counter-attacking once I recover enough to not add a zillion bugs by working sick like an idiot. I still think you'll be able to just click toward somebody if you don't want to bother thinking about a combat, but you'll be subject to the computer's sub-par decision-making as usual, and there'll be many more potential decisions to be made. Overall, things'll still be a little nuts since there aren't really any lulls in the action, but the flow should be more varied and interesting. We'll see how it turns out.
Now all of the necessary actions have been converted over to the new system, and the current project is to feel satisfied with the way fighting works with respect to timing and reaction moments, at least enough to move on. Right now it's too vague about when you might get attacked or who gets to strike first -- it was always kind of like that, but now that attacks outpace standard movement, movement during combat will need to be made more sensitive to the situation so that you don't walk into repeated strikes and become overly frustrated.
Various sudden relatives and other stuff going on the last few days in such a way that whipping out the DF laptop would have been massively antisocial. So, we'll be continuing with the last dev log, starting tonight! I guess it's okay to have a few surprise days off every once in a while.
Next up is a list of old combat mechanics that need to be moved over to the new action system. Every creature's "turns" used to work more or less with a single delay variable which was used all over the place, and many non-combat actions will still work that way in the next release (since I don't need to put it off further converting the 80 remaining minor cases), but there are some combat activities that should be converted now so that that system at least is homogeneous -- dodging, twisting weapons, that sort of stuff. In particular, the last tweaks I need to do for combat reaction moments rely on getting all of the timers interlaced, and I'll need all the combat actions for that to avoid weird arbitrary waits that the reactions don't see. Once that's more fluid, we'll have a clearer picture of exactly what sort of combat mess we have overall. Hopefully a mess that'll be ready for lots of wholesome undead pulping. I guess living things would get pulped too by default sometimes, although rotten tissue should probably be more pulpable, like those month-old forensic cubes they find in trash cans and stuff.
I finally finished the basic simultaneous attack option today and spent some time double-stabbing rib cages in the arena with shiny blue daggers, that kind of thing. Charging works the same way now, using a move action and an attack action, but you won't have to run directly into somebody any more to get a momentum bonus if you have a velocity pointing in more or less the right direction. You can set the move with the attack or press a move once you've got an attack in your list. You can still just bump into people if you want to avoid the menus.
So, as I mentioned in the report, I'm going to try to finish off the combat changes as my first project this month, since the incomplete parts were messing with my insurrections. I've moved the arena over to the new conflict code so that people will start fighting again, and I fixed a few bugs with reaction moments. Now there are a number of mechanics that need to be cleaned up and made more satisfying, and I need to finalize the raw format. It's mainly just timing and display issues, especially as it concerns ongoing and simultaneous actions, but I'm going to do undead pulping as well (to put an end to perpetual re-raises) and I think there are also some outstanding non-lethal combat issues. Once everything is working, I'll need to run some fortress mode combats to see how that holds up.
The March 2013 report is up.
Here's a Future of the Fortress reply: FotF.
The Museum of Modern Art people wanted me to pass along that the video game exhibit is opening this Saturday, and that their senior curator is going on The Colbert Report tonight to talk about video games and the exhibition.
Lately I've been standing in the keep with a skill-inflated hero, stabbing the site's goblin overlord in the head with a spear, and seeing what happens. Now that the entities occasionally make decisions through their leaders and people also claim positions that are open, my project is to insert a possible period in between where an entity has a decision to resolve, doesn't have a leader step up when it thought it had one, and has a moment of discomfort. This places a rumor in their entity about the missing leader. Related rumors also show up when you tell somebody about the killing or when somebody sees you do it and makes it out of the loaded area. For the goblin military occupation, this might be a condition that gets them to leave town, especially for this release where I need to force it a bit. This time, you'll be hunted by site patrols exclusively before you get to the site leader, if you are causing trouble before you attempt the overlord. It'll be different later I suspect, but I need to settle on a few workable scenarios now while I get mechanics in.
There's also the matter of the body and finding the body, which is a bit more abstract sometimes than what happens in dwarf mode, but fortunately I've got all the dwarf mode witness/incident stuff lying around for the easy half of this. The troublesome case is when you've left a body without any witnesses in an area where there'd normally be some traffic, but nobody finds it before you split -- when an area is offloaded, and everybody's location is abstracted, it just has to wing the event of finding the body, but later on when it isn't beneficial for a body to be found you'd want to be able to have a body not be discovered for a long time if it is in an out-of-the-way location. Right now, if it doesn't let the entity know about the body, the goblins will still figure out their leader is gone, but they'd have to wait until they try to set up their next set of patrols (since the leader is involved in that decision). It would also be nice to tie the body finding event to the... bury or otherwise deal with the mess event, since people just don't live clean lives at this point.
The next step in my little insurrection is examining what it means for somebody to join you. Since you'll now be running around not just with experienced death-seeking fighters but also weavers with a piece of cutlery and so on, I want it to keep track of why they are with you, so that they can leave instead of going off to fight dragons after the battle is won. I've got a new class for agreements, and a new historical figure link that tracks your companions more thoroughly, including whatever agreement was reached as a basis for your travel together. This should also allow some sensible companion banter to start up, like "Why are we going into this cave? The goblins are back in town" or whatever is appropriate, and ultimately it'll allow me to have them assert some autonomy. It's also getting to the point where you'd want to be able to walk into a house with a bundle of swords to hand out or something. Together with the new agreements, this raises the spectre of the potential critical game design flaw "NPC suddenly leaving with my stuff". I'll try to be careful, he he he, but you should be careful too.
The agreements will eventually be used to handle actual contracts you make with mercenaries and so on (and I also have them in mind to gobble up all the dwarf mode agreements in time as well), but for now I'm just tracking the basic understanding that you've reached with your buddies. I haven't handled drunks yet -- the "hey, that sounds like fun!" agreement is kind of a loose sort-of-understanding, and not really a "meeting of the minds" since one party to the agreement is pickled. In that case, I'm not sure there really needs to be an agreement but rather a periodic BAC check on the companion link. I'll probably still add an agreement there to keep things within a single framework.
The new conversation approach is working out well enough. Each statement takes about as much time as a regular step, so if you find enough to talk about in some later release, you'd be able to chat until the sun goes down. This also means that conversations are susceptible to interruption, and each statement made by people you are talking to is a "move" they are making either simultaneously with their other actions (like walking and fighting) or instead of them. Incidents you are a part of or rumors that you hear now go into your head, and you can pass them along or bring them up with whoever you talk to. Right now these incidents include every time you strangle a wolf out in the woods, so I'll probably have to find a way to manage the lists according to how interesting they are. In any case, since you can now bring up the occupation and related events, it's a matter of adding some reactions and conversation options geared toward getting the ball rolling.
In our ongoing 'moments of restraint' boss rush, I'm currently up against the conversation engine. I've decided I pretty much have to get conversations out into regular play so that I can tell a room full of people that I just killed a goblin patrol, but I'm trying to avoid a completely monstrous overhaul. Bartering will remain an instanteous activity for instance -- pulling that out right now is unnecessary and would take a bit of time. It is a continuing process, but the result should be cool, and it'll allow you to spread news in a more satisfying fashion (rather than telling one person and having it magically spread around instantly, though they will still spread news after a time once they are offloaded). I should have an honest insurrection in place before long here.
Here's Dwarf Fortress Talk #20, where we talk about current development and Threetoe appears to answer questions with me: forum thread, DF Talk page with download.
Rare moment of restraint! The information and mechanics I need for the initial stages of the insurrection against occupying armies is more or less the same as the information and mechanics I need for the criminal role for later adventure mode. The existing dwarf mode crime stuff is enough to get me through, so I won't be adding the entire thief role to adventure mode now, he he he. In any case, your efforts against the goblins are going to be entirely dependent on who sees you and whom you talk to, and whom they get a chance to tell about it, so you'll be rewarded not only for stealth, but at times for discretion.
Scamps is four! His favorite game now is the fishing pole game. Repeated meter leaps with twisting and showboating are common, as are volleyball sets, one-pawed side swipes and running in circles. He enjoyed being a cat today, as usual. I have the bleeding cut on my little finger to prove it.
Meanwhile, back in the year 2, the Taut Evils, led by the demon Rafovi Larvaboil, pillaged the capital fortress of the dwarves. The evil hero Olngo Scourgewet killed the dwarven queen in a duel and skinned the mayor, while Larvaboil killed random civilians, including the parents of the newborn Bembul Matchspear. A few years later, the tragic orphan was snatched by the eventually notorious quadruple ace-snatcher Dang Demonnotched and grew up as a troll shearer in the pits of Greyhexes, working alongside Olngo's son Usbu Flyroars, and various humans abducted by Dang. Some of the humans were murdered in squabbles as the wars raged on, but Bembul survived.
This brings us to the present day, and the small market town of Meadowabbeys, now under the dwarven overlord Bembul, commander of the goblin army that marched into town on the previous afternoon. There were five humans among them, all but one also snatched by Dang, some from the outlying hamlets. I suppose the humans that were snatched in their late childhood were happy to be able to visit the Shrine of Hating, which for some reason the humans built for the worship of the goddess of torture and misery. Bembul himself was snatched so young that he does not worship any of the dwarven gods. Also with the invaders was Bembul's fellow troll shearer Usbu, along with his mother Olngo the hero of the war two decades prior and his father Ozud, an able hunter of gigantic pandas and mantis men. More than fifty well-armed goblins round out the force, which is sizeable for this early year (21), and enough to take Meadowabbeys by surprise (that is, there aren't any army fights in this release). Bembul remains in the keep while the others go on patrol or hang out in the fake-taverns that I put in to aggregate soldiers, monster hunters, scouts and drunks.
So, now that that is done, and various bugs with people wearing the wrong clothes and so on were worked out, I can finally add conversations with the town's citizens concerning their newly dire situation. Hopefully they'll be able to talk a bit about the individual historical figures that arrived, how they are situated and so on. I don't have any specific torments in mind for the citizens, and right now the goblins are just grumpy and say "don't talk to me" when you try to chat to them. This needs to be brought up to some reasonable point, including the eviction of the occupiers, and then I can move on -- refugees and flight will need to be handled here too. Right now the old leaders are just depressed and hanging out in the town, not leading anything but not particularly subject to any hardships.
I've got the goblins mostly incorporated into their conquered towns, with the former citizens properly differentiated and a bit grumpy. I still have to fiddle with the overarching war-type historical events and other debris, but the next main part is to talk up one of the citizens living under the new regime. That needs to be brought up to the point of playability, so that you get some feedback and direction.
The February 2013 report is up.
Here's a Future of the Fortress reply: FotF.
The next challenge is setting up factional information for entity populations so that conquered people don't inherit their clothing and so on from their new masters, and so that they understand how to talk about their situation with you and so on. I should also have my first city street patrols soon, now that "armies" can finally move through the streets correctly.
I've mostly been working on finalizing army path-finding on the map near sites, which have areas popping back and forth between different levels of resolution. So armies might be in "the city" one moment, and then in specific sections of the city streets the next, and then in tiles, and then back, and they have to be able to adapt to that without getting too confused and without overtaxing the processor in indecision. It was very satisfying the see the squads walk around on the half-zoomed-in city map properly, turning at intersections and using bridges. This shouldn't have any impact on dwarf mode speed, since city maps aren't loaded (so it just uses straight-line algorithms for most movement, and I can make it even rougher if necessary), and adventure mode seems fine so far as well (since time moves slowly there, so the actual calculations are rare).
I needed to add more coordinate information to all of the active historical figures, and that had to be respected all through everywhere, so there went a day, he he he. People are eminently huntable now, though, even when they aren't traveling. I'm also working on a debug mode that lets me zip around and look at all the armies since it isn't easy to get the whole picture just running it in the standard play modes. I'm not sure if it'll be used directly later, but it's at least good to start thinking about that kind of thing. The next real step is to get the goblins to think about controlling the villages associated to the town they are taking simultaneously, so that they can still feed their captive humans once food use goes in (at least some of them, since the largest cities will depend on food from farther away).
I'm now working on having goblins run around the town in groups, hunting for the leaders and trying to stop people from fleeing. As usual with this new army stuff, it has to occur at three levels -- from far far away when nothing is loaded, when the site map is realized but no tiles are created, and when a portion of the tiles are generated (because you are there). When leaders are found and dealt with in whatever fashion, it also has to be careful with succession and so on now, which is cool. Once everybody is done running around, we'll move into a more stable occupation, and these'll likely be places you don't want to visit unless you feel like a hero.
We've now at least touched upon everything that'll be in the next release. I've been looking through my planning text file and sorting through issues that need to be addressed. There are, of course, a whole lot of them. The current idea is to go back to goblin invasions and handle them occupying towns instead of outright destroying them, and then let that guide me through issues related to bandits harassing the town and so on.
That worked too well, he he he. We now have lots of questions, eighty of them, and Zach and I will be answering some small fraction of them when we record our segment. I'm playing with the claim AI now, and it's nice to finally have some functions to write from a historical figure's perspective rather than an entity/civilization perspective, since that's what the game is actually supposed to be about.
We're working on DF Talk #20, and I've found there's a shortage of questions from December, so it'd be good to replenish our supply if possible. I thought I'd put up a reminder -- if you have a question you'd like Zach and I to answer in the recording, you can send it to firstname.lastname@example.org with the subject "Question for DF Talk".
Entity position succession (and the filling of open positions) is underway. It'll recognize when succession is necessary and try to schedule things effectively, and I set up a claim system so that there can theoretically be more than one person that says that they hold a given civilization's position (three dwarven counts vying for an open monarch position, for example). Competing claims don't have a resolution yet, and I need to work out appointment lists properly. I probably need to further specify some of the positions in the raws as well, since we don't want things like bookkeepers in every hill dwarf site.
Children grow up throughout the world now, as you are playing, and new relationships are scheduled properly. There aren't always people available, especially in the smaller sites, so they can look down the trade network at times. Members of a new pair don't move to each other's sites yet, though. I'm going to handle that with entity position succession, which is next, so we should see various travellers on occasion when that is done. I'm looking forward to the world being a bit more of a churning mass of activity, and it'll be nice for fortress mode especially to have proper replacements for all of the people that eventually pass on, so that you can keep up successive games for longer in the same world at the same level of involvement as time goes on.
The January 2013 report is up.
Dwarf Fortress started October 2002, this log was started around the same time as the "back to the dwarf game" thread.