Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 2 3 [4] 5

Author Topic: Levers and grudges  (Read 3575 times)

Aquillion

  • Bay Watcher
    • View Profile
Re: Levers and grudges
« Reply #45 on: August 22, 2009, 11:09:41 pm »

if they know based on what the lever is attached too, then i atach it to a support, wich punches through the bottom of a lake, which drains into a nobles room, who then drowns. drowning has nothingto do with supports. how does the dorf ai fallow that rube goldburg logic?
Easy.

1.  When the dwarf pulls the lever, they are assigned responsibility for the support.  This is easy.

2.  When the support collapses, whoever was responsible for it at that time becomes responsible for any cave-ins in a short period of time following it.  (This could result in misplaced blame, but I think it's believable misplaced blame.)  Therefore:

3.  When the cave-in happens, the dwarf becomes responsible for that.  Any damage it does directly is, of course, that dwarf's fault.  More subtly, when the lakebed is damaged, the dwarf gets assigned responsibility for the hole -- tracking responsibility for open spaces is not a big deal.

4.  When the water flows through the empty spaces that the dwarf has acquired responsibility for, they become responsible for that water, too.

5.  The water starts drowning people; the dwarf is now responsible for those deaths.

This is the kind of thing that computers can do well; it's a set of simple rules and data structures, which don't require very frequent processing (responsibility can erode over time, after all, and only requires 'reactive' processing in response to other things happening in limited situations, not constant 'active' processing like pathfinding -- hence, it's computationally cheap.)

It looks hard.  And, certainly, a perfect system for responsibility would be hard.  But I think a "good enough" system, one that at least gives the appearance of thought in most cases (and takes deliberately convoluted things to thwart, which might reasonably thwart actual investigations) would be fine.

Of course, there's also a very cheap route.  When a dwarf pulls a lever, they acquire responsibility for any deaths in a period of time afterwords, if it's not caused by an enemy.  This would be very easy to defeat, and would result in many false accusations -- but honestly, it would be 'good enough' in most cases.  It would look like random blame-slinging by the sheriff, but so what?  That fits.
Logged
We don't want another cheap fantasy universe, we want a cheap fantasy universe generator. --Toady One

Pilsu

  • Bay Watcher
    • View Profile
Re: Levers and grudges
« Reply #46 on: August 23, 2009, 06:13:46 am »

I'd rather not have a system at all if it's going to be that broken and patchy. And really, unless you're a coder yourself, I don't think you can argue with the engineer!

Spike traps are direct cause and effect. Tracking those might be realistic. Gets a bit more complicated if you don't want dwarves automatically sentenced to death for activating the trap while the soapmaker straggler was still on them along with 30 goblins. I suppose that could be handled with manual pardoning
« Last Edit: August 23, 2009, 06:16:26 am by Pilsu »
Logged

corvvs

  • Bay Watcher
    • View Profile
Re: Levers and grudges
« Reply #47 on: August 23, 2009, 10:34:56 am »

Idea: how about instead of an "official" blame (laid down by the Hammerer or Sherriff), why not just have the people who liked the victim grudge against the person they feel responsible?

That way you still get the "oh, it was an accident!" excuse since Rube-Goldbergian death traps are hard to distinguish from bona-fide "oh crap! how do I stop the flood?!" disasters, but then you get to see people pick fights with the lever-puller (who would also feel responsible for the death, to a varying degree based on personality of course).
Logged

Sunken

  • Bay Watcher
  • Wabewalker
    • View Profile
Re: Levers and grudges
« Reply #48 on: August 23, 2009, 02:27:57 pm »

if they know based on what the lever is attached too, then i atach it to a support, wich punches through the bottom of a lake, which drains into a nobles room, who then drowns. drowning has nothingto do with supports. how does the dorf ai fallow that rube goldburg logic?
Easy.

It may be doable - but never "Easy." - to hard-code any given causal chain. But generalizing it is not going to be doable. Learning is the only way of doing that sort of thing and that's just what AI has been unable to effect in all the decades since its inception. It's mostly due to abstraction being so darn difficult, IMO.

Quote
1.  When the dwarf pulls the lever, they are assigned responsibility for the support.  This is easy.
Again, never "easy", but doable as far as it goes. It would have to be done for everything a lever can do or will be able to do, though. And other effects won't be as seemingly straightforward.

Quote
2.  When the support collapses, whoever was responsible for it at that time becomes responsible for any cave-ins in a short period of time following it.  (This could result in misplaced blame, but I think it's believable misplaced blame.)  Therefore:

This will work, again as far as it goes, because a cave-in is a discrete entity in DF. Many other phenomena don't have this abstraction.

Quote
3.  When the cave-in happens, the dwarf becomes responsible for that.  Any damage it does directly is, of course, that dwarf's fault.
Here we're getting into trouble. Determining the causal link between a cave-in (discrete event) and damage (numerical, many-dimensional, and even subjective property) is not trivial.

Quote
More subtly, when the lakebed is damaged, the dwarf gets assigned responsibility for the hole -- tracking responsibility for open spaces is not a big deal.
I beg to differ. This is spatial abstraction, which is again just what I'm working with and is damn difficult.

Quote
4.  When the water flows through the empty spaces that the dwarf has acquired responsibility for, they become responsible for that water, too.
Even provided we could isolate the "hole", what about water spilling over the edges of a reservoir due to falling debris? There's an infinite amount of consequences entailed by a hole. You'd have to think about, and explicitly program, each one. Exponential work for diminishing returns.

Quote
5.  The water starts drowning people; the dwarf is now responsible for those deaths.
Here's where it becomes obvious that the responsibility (philosophically speaking) is ambiguous. Why were they there at that time? Can it be someone else's fault that a dwarf couldn't escape because a drawbridge was closed? Is it their own fault they were loitering there? Though this isn't a programming-based problem.

Quote
This is the kind of thing that computers can do well; it's a set of simple rules and data structures, which don't require very frequent processing (responsibility can erode over time, after all, and only requires 'reactive' processing in response to other things happening in limited situations, not constant 'active' processing like pathfinding -- hence, it's computationally cheap.)
This specific example could perhaps be made computationally cheap. It would be implementationally very costly, and would only cover this specific scenario. Any other would require additional code. It would only be justified if this particular scenario was really important, but it isn't (or so I think most would agree).

Quote
It looks hard.  And, certainly, a perfect system for responsibility would be hard.  But I think a "good enough" system, one that at least gives the appearance of thought in most cases (and takes deliberately convoluted things to thwart, which might reasonably thwart actual investigations) would be fine.
Agreed, but I don't think you appreciate what you're asking when you say "most".


Again, I do think it would be monstrously cool if it worked. My recommendation is still "don't".
Logged
Alpha version? More like elf aversion!

Aquillion

  • Bay Watcher
    • View Profile
Re: Levers and grudges
« Reply #49 on: August 23, 2009, 04:37:45 pm »

Quote
3.  When the cave-in happens, the dwarf becomes responsible for that.  Any damage it does directly is, of course, that dwarf's fault.
Here we're getting into trouble. Determining the causal link between a cave-in (discrete event) and damage (numerical, many-dimensional, and even subjective property) is not trivial.
It is trivial, in fact.  A cave-in is represented mechanically by a few specific things -- falling objects, a few 'crush' events, and clouds of smoke.  Once we have responsibility assigned for the cave-in event, and 'know' it when we're generating its direct causes, it is trivial to have that convey this responsibility to them.

Although I didn't state it specifically since I thought it would be assumed, there is an additional step here where the falling object (which the dwarf holds responsibility for as a result of causing the cave in that generated it, assigning responsibility at that time) hits the floor of the lake.  At this point, when one object damages a wall or floor, a responsibility-zone for the open space in that area would have to be generated and assigned to the object doing the damage:

Quote
Quote
More subtly, when the lakebed is damaged, the dwarf gets assigned responsibility for the hole -- tracking responsibility for open spaces is not a big deal.
I beg to differ. This is spatial abstraction, which is again just what I'm working with and is damn difficult.
No, again, it is easy.  Empty spaces are not magically more difficult to store information about than doors or supports.  While I don't know exactly how Dwarf Fortress stores data, it already stores it for lots of different zones; assigning a hidden 'responsibility zone' for any square that emptied out by a collapse is not a particularly complicated problem.

Quote
Quote
4.  When the water flows through the empty spaces that the dwarf has acquired responsibility for, they become responsible for that water, too.
Even provided we could isolate the "hole", what about water spilling over the edges of a reservoir due to falling debris? There's an infinite amount of consequences entailed by a hole. You'd have to think about, and explicitly program, each one. Exponential work for diminishing returns.
The goal is not to catch every case, but to catch enough to make it look believable at first glance.

Quote
Quote
5.  The water starts drowning people; the dwarf is now responsible for those deaths.
Here's where it becomes obvious that the responsibility (philosophically speaking) is ambiguous. Why were they there at that time? Can it be someone else's fault that a dwarf couldn't escape because a drawbridge was closed? Is it their own fault they were loitering there? Though this isn't a programming-based problem.
This isn't.  As I said, it doesn't matter whether the dwarf is really responsible; what matters is that it be at least somewhat believable, in most cases, that an angry sheriff-dwarf would arrest the dwarf he does.  The sheriff can arrest the wrong person, as long as it's reasonable for the sheriff to make at least some connection between them and the event they're being arrested for.

Quote
Quote
This is the kind of thing that computers can do well; it's a set of simple rules and data structures, which don't require very frequent processing (responsibility can erode over time, after all, and only requires 'reactive' processing in response to other things happening in limited situations, not constant 'active' processing like pathfinding -- hence, it's computationally cheap.)
This specific example could perhaps be made computationally cheap. It would be implementationally very costly, and would only cover this specific scenario. Any other would require additional code. It would only be justified if this particular scenario was really important, but it isn't (or so I think most would agree).
It wouldn't just cover this scenario, though.  In the process, many other scenarios would be covered, and the groundwork would be set to handle many other cases.  For instance, in the process of handling this scenario, we've handled most of the potential direct cave-in results (crushed by falling rocks, etc), and set up an easy way to handle responsibility for digging an area out to cause a flood, or similar things.

There will always be some cases that aren't handled, of course, but in the long run assigning at least loose responsibility for crimes is something that will be required for Adventure mode if you don't want adventurers constantly slaughtering everyone with deathtraps.  It has many interesting opportunities for storytelling and for dynamic, engaging events.

I'd rather not have a system at all if it's going to be that broken and patchy. And really, unless you're a coder yourself, I don't think you can argue with the engineer!
I am obviously not the coder of Dwarf Fortress, but I do have a masters in Computer Science; I'm not just randomly speculating.  When I say that I think it's easy, it's because I don't see anything particularly complicated, conceptually, in implementing it -- a lot of cases of responsibility-transference to handle, sure, but you'll get more and more return for each one you cover in terms of the game-world reacting unexpectedly believably to a wider range of situations... and there's no need to handle every one, just the ones that are most likely to crop up.
Logged
We don't want another cheap fantasy universe, we want a cheap fantasy universe generator. --Toady One

qwertyuiopas

  • Bay Watcher
  • Photoshop is for elves who cannot use MSPaint.
    • View Profile
    • uristqwerty.ca, my current (barren) site.
Re: Levers and grudges
« Reply #50 on: August 23, 2009, 08:42:42 pm »

As I said once days ago, before a browser load error destroyed it, it should track the trigger time and compare it to each dwarf's prefrences if they ignore it because the countdown computer put in a 6 month delay, or if they get mad even if the murder lasted 2 years to completion.

It should also track multi-blame.

For example, if  dwarf dug a magma channel nearly to a noble's room, and a few months later, a diffrent dwarf dug the last space, the first dwarf should take a minor portion of the blame, though not nearly as much as the last action dwarf. Most of this blame would likely be self-blame, as the others are more focused on the actual trigger dwarf. On the other hand, if there was only a day or two diffrence, it should be closer to equal.


In all cases, it should be more of a dislike than a lynch, with only actions N steps or shorter triggering a hammering(I say N is releasing magma directly by mining the last tile, opening the floodgate or other blockage, or triggering a spike trap) with each N level reducing the chance of major punishment(also scaled with appropriate dwarf's prefrences, IE a sheriff who was especialy strict with punishments would be more likely to order a hammering), fading from execution to ignorance.
Logged
Eh?
Eh!

lucusLoC

  • Bay Watcher
    • View Profile
Re: Levers and grudges
« Reply #51 on: August 24, 2009, 02:13:39 am »

@ Aquillion

if the dorfs had the kind of spacial reasoning that you are talking about, i. e. this support caused this collapse, which caused this hole, with cased this flooding, then it would be reasonable to assume that they would no longer need the A* path finding algorithm to plot a path, as they would have an intricate knowledge of how the fort was laid out. they would be able to "look" at the map and see the best rout (just like the player does) without having to do a path search. it is easy for the comp to figure out if a collapse should occur, since all it is doing is a fill check on tiles. what is hard is for the computer to understand the what and the why of a collapse. was it the missing support, or the dorf channeling on the other side of the map? both caused a change in the map data, how does the comp know which is the actual cause? the computer would have to do something like test the map with one and then the other change not taking place and compare the outcomes, or some such silliness. and no, a "proximity" check will not cover all possibilities, case the miner could have been on a diagonal, or channeling a floor right above the collapse, both of which have no real affect on the collapse, but are still adjacent to the tiles involved.

flooding too is just a fill algorithm, and is not the computer understanding anything about the actual map. it is just "can the water flow to this tile? yep, ok there it goes. . ." there is no computer concept of a channel, or pool, or even "hole that water flows through." that is something the player puts in place, because we have the capacity to conceptualize it. if there was we would not need funny things like teleporting water, because the computer would be able to see "ah, the water is going to flow down this channel and wind up in that reservoir over there" and make a nice flow of the water (which would solve the waterwheels not working in 7/7 "flowing" water problem, by the way. currently they only work on a full water tile if it is a brook or a river, because that situation is hard coded.), instead of the teleportation we have now.

now, all these thing may be able to be hard coded on a case by case basis, but you wold need to implement things like tracking connected bodies of water, adjusted on every map change update.  or tracking what, exactly, is attached to each other, again updated with every map change update.

some of these things will be needed, in simpler forms at least, for things like realistic cave ins. for those the map would need to know things like that 1000 tile block of granite is supported by that one floor tile of chalk. i think that is one of the reasons that those are not implemented yet. it's a very sticky concept to teach a computer, and usually wind up being computationally expensive, even if they are "reactionary" in nature.
Logged
Quantum dumps are proof of "memory" being a perfectly normal dimension in DF. ~Gazz

Aquillion

  • Bay Watcher
    • View Profile
Re: Levers and grudges
« Reply #52 on: August 24, 2009, 07:00:26 am »

You're looking at the problem entirely wrong.  Everything in your post about "spacial reasoning" and making the computer "understand" this or that shows that.  The computer understands nothing.

What it can do is break a complicated problem down into small easy problems.  In this case, we only need to know the direct and immediately proximate cause for individual events.  Blame can then be assigned to individual structures, events, fluids, areas or whatever without any complicated higher understanding like you seem to be struggling with in your head.

For instance, with fluid:  Give each tile a potential blame value, the same way we would assign it to objects.  When flooding water into a tile, copy the blame value from the source tiles, if it exists.  This is no more complicated than water picking up a bloodstain.

I do not know why you brought up channels and pools and holes.  Channels and pools are not meaningful terms.  'Holes', in this context, just mean that the game will assign blame for a blank space to the dwarf that dug it out (or, if it was hit by a falling object or some such thing, it will assign blame to whatever blame-value was assigned to that falling object.)  Assigning blame to blank spaces like that is not some complicated and strange thing.

Collapses are slightly more complicated, and I don't know exactly how they're handled, but I already explained why that's not a problem, because we don't care about assigning exact blame, just enough to look like some thinking, arbitrary dwarf could assign blame.  Grabbing responsibility from the nearest mined-out section or destroyed support is perfectly fine.  (As collapses are rare, this is not a check that will have to be done often.)  Sure, it'll assign blame to the wrong dwarf sometimes -- so what?  Most of the time, it will incorrectly assign blame in a believable manner, which is all we care about.

If an innocent dwarf channels the floor right above the collapse and gets blamed, well, sucks to be them, but it's not an unreasonable leap of logic for the sheriff (or whoever) to make, so it's good enough for our purposes.
Logged
We don't want another cheap fantasy universe, we want a cheap fantasy universe generator. --Toady One

lucusLoC

  • Bay Watcher
    • View Profile
Re: Levers and grudges
« Reply #53 on: August 24, 2009, 02:20:45 pm »

I understand your resoning behind propigating blame like a flow, but i think you misunderstand some of the shortcuts the game takes when calculating flows and other map change issues. If you can propigate blame, then you should be able to propigate flows as well. That is something the game does not currently do, or is capable of. How do you propigate blam through teleporting water (how do you propigate a flow that way? It is the same question. The only resonable answer is to use pathfinding for every bit of flowing water.)

There are other issues to. How long does the blame propigation last? Is there a refresh? If so how do you prevent someone who just fell in and drown from also being assigned to the lever puller/miner? How about nobles starving in locked rooms? How do you assign blame there?

Also, what about accidents? What is it is not the lever pullers fault that urist mcstupid was grabbing a rock for the stockpile from the demolition zone? Is urist mcdemoman still held responcible for the "murder?". In a similar vein, what about urist mcstupid dallying around in the new cistern? Still a murder, even though the player always intended it to be filled with water? How about locking urist mcnoble outside for a siege? Or, as mentioned erlier, making his room outside fortress defenses? Whose to blame for that? There are just to many variables to track.

As i said, it is not strictly imposible, but each scenario would have to be hard coded, and the effort is not worth it in my oppinion. Getting the system "good enough" would require too much work.
Logged
Quantum dumps are proof of "memory" being a perfectly normal dimension in DF. ~Gazz

Sunken

  • Bay Watcher
  • Wabewalker
    • View Profile
Re: Levers and grudges
« Reply #54 on: August 24, 2009, 02:44:39 pm »

You're looking at the problem entirely wrong.  Everything in your post about "spacial reasoning" and making the computer "understand" this or that shows that.  The computer understands nothing.

What it can do is break a complicated problem down into small easy problems.

Look, Aquillion - we're apparently not going to be able to convince you of the monumental uphill battle Toady would be facing if he was to try to implement blame for physical processes with even the slightest generality. No doubt he would see - or will have seen - that himself. If we're right.

But just for argument's sake...

Quote
In this case, we only need to know the direct and immediately proximate cause for individual events.  Blame can then be assigned to individual structures, events, fluids, areas or whatever without any complicated higher understanding like you seem to be struggling with in your head.
You don't even see the leaps you're making. "Structures"? There are no structures, only individual cells. (And buildings like workshops, but those won't remain atomic for long, I think). "Events"? Do you have a working definition for that? How do you make a lake draining an event, for example? Ponder the field of event calculus and the frame problem for example. "Areas"? How do you decide which cells form an area? Are you perhaps just assuming that areas are available for you?

You make light mention of some extremely complicated notions that still have AI researchers working full-time to understand them. "Struggling with in my head"? Yes, trying to make a living understanding them, as a matter of fact. Why aren't you in spatial abstraction research if these things are not complicated to you? Were you being willfully offensive or just unaware?

As for the blame flag idea, specifically:
Quote
For instance, with fluid:  Give each tile a potential blame value, the same way we would assign it to objects.  When flooding water into a tile, copy the blame value from the source tiles, if it exists.  This is no more complicated than water picking up a bloodstain.
The blame value corresponds to a certain dwarf, correct? It can't be a causal link back to its cause because that cause might no longer exist or might have acquired some other blame in the interim.

When does blame time out? Is it a flat timer, or dependent on events? Is it a different scheme for each type of thing that can have blame attached?
Urist catapults a stone into the sea, creating ripples that extend indefinitely (because all water mixes eventually). Is Urist responsible for all the water in the sea? How does diffusion of blame work?
Urist dams the river with a cave-in and the mines flood. How does the fluid engine know that the cave-in was the cause - no new empty space involved? Will the miner who dug the mine entrance be blamed now?

Quote
I do not know why you brought up channels and pools and holes.  Channels and pools are not meaningful terms.  'Holes', in this context, just mean that the game will assign blame for a blank space to the dwarf that dug it out (or, if it was hit by a falling object or some such thing, it will assign blame to whatever blame-value was assigned to that falling object.)  Assigning blame to blank spaces like that is not some complicated and strange thing.
You make it easy for yourself by talking about cases where the effects of the empty space are easily measured. A fluid running through a mined-out cell - fair enough. A goblin slipping through said cell? Tougher. What about channeling out the floor so that your fellow dwarf can't get out of his room and starves - how will you handle that? Or will that require some entirely different scheme?

Quote
Collapses are slightly more complicated, and I don't know exactly how they're handled, but I already explained why that's not a problem, because we don't care about assigning exact blame, just enough to look like some thinking, arbitrary dwarf could assign blame.
"We don't need to have the computer understand English, it just needs to look like it does."
If this argument made things easy, the Turing test would have been beat decades ago.
Sure, it can be made acceptable for special cases. But they tend to create outrageous results when you try to generalize.


Quote
Grabbing responsibility from the nearest mined-out section or destroyed support is perfectly fine.  (As collapses are rare, this is not a check that will have to be done often.)  Sure, it'll assign blame to the wrong dwarf sometimes -- so what?  Most of the time, it will incorrectly assign blame in a believable manner, which is all we care about.

If an innocent dwarf channels the floor right above the collapse and gets blamed, well, sucks to be them, but it's not an unreasonable leap of logic for the sheriff (or whoever) to make, so it's good enough for our purposes.
Again, the trouble is when the miner is executed for the flood caused by the cave beavers eating your dam.
Logged
Alpha version? More like elf aversion!

Pilsu

  • Bay Watcher
    • View Profile
Re: Levers and grudges
« Reply #55 on: August 24, 2009, 09:30:53 pm »

Basic system would be a good start. A noble dying would be automatically the royal guard's fault and spike traps have a direct link to the lever puller
Logged

buman

  • Bay Watcher
    • View Profile
Re: Levers and grudges
« Reply #56 on: August 24, 2009, 10:14:22 pm »

The bad thoughts generated from the death in general could be increased to make this possible without having to add anything extra.
Logged

Aquillion

  • Bay Watcher
    • View Profile
Re: Levers and grudges
« Reply #57 on: August 25, 2009, 01:45:27 am »

You don't even see the leaps you're making. "Structures"? There are no structures, only individual cells. (And buildings like workshops, but those won't remain atomic for long, I think). "Events"? Do you have a working definition for that? How do you make a lake draining an event, for example? Ponder the field of event calculus and the frame problem for example. "Areas"? How do you decide which cells form an area? Are you perhaps just assuming that areas are available for you?
Structures are things like statues, supports, and buildings.  Events are things like cave-ins and the removal of structures, which the game models discretely.  I am only talking about tracking centered around things that the game models in a discrete fashion.

I assumed that this fact was obvious enough to not require stating; the fact that you immediately make the leap to vague and hand-waving

Quote
You make light mention of some extremely complicated notions that still have AI researchers working full-time to understand them. "Struggling with in my head"? Yes, trying to make a living understanding them, as a matter of fact. Why aren't you in spatial abstraction research if these things are not complicated to you? Were you being willfully offensive or just unaware?
Are you perhaps just skimming my posts?  As I stated earlier, I have a masters in Computer Science, and I do, in fact, make a living with it.

I have no idea why you are bringing up spatial abstraction; I never mentioned it, and I do not believe it has the slightest relevance to the problem.  It is the wrong approach for this.  The goal here is not to provide a perfect map for all possible alterations that dwarves could make to the system.  The goal is to find a dwarf that has done something that is vaguely related to what happened, so the Hammerer can go hit them with a hammer.

Quote
Quote
For instance, with fluid:  Give each tile a potential blame value, the same way we would assign it to objects.  When flooding water into a tile, copy the blame value from the source tiles, if it exists.  This is no more complicated than water picking up a bloodstain.
The blame value corresponds to a certain dwarf, correct? It can't be a causal link back to its cause because that cause might no longer exist or might have acquired some other blame in the interim.

When does blame time out? Is it a flat timer, or dependent on events? Is it a different scheme for each type of thing that can have blame attached?
Urist catapults a stone into the sea, creating ripples that extend indefinitely (because all water mixes eventually). Is Urist responsible for all the water in the sea? How does diffusion of blame work?
Urist dams the river with a cave-in and the mines flood. How does the fluid engine know that the cave-in was the cause - no new empty space involved? Will the miner who dug the mine entrance be blamed now?
Most of these questions are implementation details that are not so important for giving a general overview of how the problem can be solved.  Tracking every specific case is, as I noted, not necessary -- a cave-in that causes floods does not have to be covered, since it's distant enough that it's believable that the dwarves could fail to pin the blame on anyone.  Objects striking water would not need to be covered, for the same reason.

Quote
Quote
I do not know why you brought up channels and pools and holes.  Channels and pools are not meaningful terms.  'Holes', in this context, just mean that the game will assign blame for a blank space to the dwarf that dug it out (or, if it was hit by a falling object or some such thing, it will assign blame to whatever blame-value was assigned to that falling object.)  Assigning blame to blank spaces like that is not some complicated and strange thing.
You make it easy for yourself by talking about cases where the effects of the empty space are easily measured. A fluid running through a mined-out cell - fair enough. A goblin slipping through said cell? Tougher. What about channeling out the floor so that your fellow dwarf can't get out of his room and starves - how will you handle that? Or will that require some entirely different scheme?
Death to enemies would be blamed on someone from the guard, if they exist -- grab someone who was off-duty at the time and scapegoat them.  Happens in the real world all the time.  Doesn't matter that a miner damaged the cell; from a setting standpoint, it's ultimately the guards' responsibility.

Quote
Quote
Collapses are slightly more complicated, and I don't know exactly how they're handled, but I already explained why that's not a problem, because we don't care about assigning exact blame, just enough to look like some thinking, arbitrary dwarf could assign blame.
"We don't need to have the computer understand English, it just needs to look like it does."
If this argument made things easy, the Turing test would have been beat decades ago.
Sure, it can be made acceptable for special cases. But they tend to create outrageous results when you try to generalize.
That's what I said.  We only need to cover a few special, common cases where we can apply vague and general responses that let the system to look believable enough.  Pulling levers to activate spikes, smashing structures, things like that.

We don't have to convince the player that there is an actual real dwarf out there finding responsibility; we have to make it so they can suspend their disbelief that the dwarves are real.  Showing the dwarves arresting someone -- even if it's just the kind of approximation that we get with the Dwarf Eliza -- is better than having them fail to respond at all.

Quote
Quote
Grabbing responsibility from the nearest mined-out section or destroyed support is perfectly fine.  (As collapses are rare, this is not a check that will have to be done often.)  Sure, it'll assign blame to the wrong dwarf sometimes -- so what?  Most of the time, it will incorrectly assign blame in a believable manner, which is all we care about.

If an innocent dwarf channels the floor right above the collapse and gets blamed, well, sucks to be them, but it's not an unreasonable leap of logic for the sheriff (or whoever) to make, so it's good enough for our purposes.
Again, the trouble is when the miner is executed for the flood caused by the cave beavers eating your dam.
That's not trouble.  That's an interesting story.  The Hammerer blamed a random dwarf who was doing some mining in the general area for causing a cave-in or a flood that was actually caused by something else -- so what?  Things like that happen in the real world all the time.

Giving the appearance that the Hammerer is going after someone -- and that the dwarves, as a whole, take what happened seriously enough to try and find someone to blame -- is much more important than actually catching the right dwarf.

Blame starvation on the mayor if you want to.  It doesn't really matter.  It's good to be able to recognize that the dwarf who pulled the lever that directly caused spikes to kill another dwarf is responsible, but it isn't necessary to know exactly who filled in a noble's door and made them starve (wouldn't the other dwarves have heard the screams, anyway?)  It's much more important to show someone being blamed...  tracing a chain of responsibility to a particular dwarf is only a way to make it look a bit more believable under certain situations.
« Last Edit: August 25, 2009, 01:51:39 am by Aquillion »
Logged
We don't want another cheap fantasy universe, we want a cheap fantasy universe generator. --Toady One

Pilsu

  • Bay Watcher
    • View Profile
Re: Levers and grudges
« Reply #58 on: August 25, 2009, 01:43:49 pm »

We already hate the nobles and now you want to add to the random killings? :P
Logged

lucusLoC

  • Bay Watcher
    • View Profile
Re: Levers and grudges
« Reply #59 on: August 25, 2009, 04:11:33 pm »

Aquillion, you forget that dorfs do not have a choice when preforming actions. untill they do random blame scattering is pointless, and untill they have an acurate way to determin the consiquenes of their actions they have no real choice, even if they have a "choice." the whole system hinges on accuratly understanding cause and effect, or else it is just a giant game of russan rulet. played with a pistol. while on fire.

what you are sugesting is similar to the current mandate punishemnt system. perhaps a little more refined, but still random. i dont want my legendary weponsmith killed because he was standing by the door when the barron drown in his room, because a cavin blocked the drain to the waterfall.

what is more belivable is the king sending guards that cause general problems for you population. they were not there, they do not know, they do not care. and what is more, the player does not care about them either, so they feel free to incite a civil war. no one liked the barron in my fort anyway, or so the reasoning goes. it is a system that is both belivable and does not require tracking blame in any way. the player made the action, the player has to deal with th reprocusssions at a fortress level, and does not have to worry about protecting urist mcunlucky (lever pulling job assignment or otherwise) from his own units. the simpler the system to acompish that the better.

there are a million and one ways to obfuscate a deathtrap, and unless you take into account every way (or actualy succed in making a generalized function that recognizes all million and one ways), dorfs will have no way of making a choice for good or ill, or assiging blame in any decent way. you need both to make the system work.
Logged
Quantum dumps are proof of "memory" being a perfectly normal dimension in DF. ~Gazz
Pages: 1 2 3 [4] 5