I did some research on the subject
http://www.bay12forums.com/smf/index.php?topic=121573.msg3944723#msg3944723 and my conclusions are that:
* Speed (based on agility, strength and encumberance) and not attributes directly influence how fast a task at a workshop is performed.
* Much to my surprise, attributes seem to influence quality, but I didn't make enough beds to be certain.
if you have the role stuff off of the labour columns the weights don't affect anything. it's purely sorting on the rating and the skill rate. the problem is that it's combining those two elements, which you disagree with. I'll run some tests to compare with your suggested method and consider changing it, since I think it was you who asked for it in the first place.
I agree with combining skill and skill rate, I just disagree with combining them incorrectly.
Yes, I asked for skill rates, but I won't be the only one benefiting from them. For example Masterwork Mod has castes and learning rates too.
hey i've got no problem gutting the default roles if people think they're downright awful. you're the first one to complain so vehemently, and i'm willing to look past the blatant insults to listen to what you've got to say.
Hey, I was restraining myself, damnit. Well, I guess some of what I said may have been seen as insults. Anyway, at my best I can provide lots of useful feedback and at my worst I get into arguments.
if you're saying the wiki is full of shit, well i guess i'd like a few other people to back that up. again it sounds like you're have a major issue with the default roles right? have you overridden most of them, or you're just upset because you feel it misleads new users?
Well, I said that some info on the wiki is useless, but overall I think the wiki is good, it just doesn't have all the data and formulas, even those it used to have for 40d. Vague statements that "Archery affects ranged combat", when the research says it barely influences enemies' dodge chance or "These attributes are related to this skill" just don't tell me much when I need numbers and formulas for calculations. Don't tell me, this wasn't frustrating when you were implementing the hints for best roles.
As to roles, well I used to rely on them, because "hey, a guy with 80% marksdwarf has to better than one with 20%, right?" For unmodded game it didn't really matter much. Besides I assumed that whoever implemented this feature based it on some solid information and not guesswork. Even when DT sorted things mixing high and low skills, I still believed that it was because attributes changed the amount of XP per job (they don't). I only discovered how flawed this system was when I got a mod with skill rates and the recommendations became too misleading to bear. My guess is that most people either ignore the recommendations or assume they're right and don't question them. Besides, providing hints based on some heuristics is OK, but sorting by them should be an option with sorting by XP as default.
Include a sortable grid view with stats. (The one we have works for sorting, but not displaying stats.)
what stats aren't capable of sorting? do you mean attributes?
Yes, I meant attributes. They are sorted correctly, they are just displayed with a few discrete values tied to descriptions in the character sheet and it can and should be improved. I already gave you an idea to just put numbers from 0 to 00. Another possibility is to find the minimum and maximum for current population and scale that from -20 to +20. The only downsides are that this will be weird for a small number of dwarves (could be remedied by say, having minimum be no greater than 700 and maximum no less than 1200) and that as the military progresses, the civilians will seem to regress.
you don't need to know the weights, the weights are whatever a user decides. the system doesn't care. you love your skills, go ahead, weigh them as 10x that of everything else. maybe you want to override that on a specific role, or leave skills out of the next role. what's so wrong with that? what's wrong with the design that a user should be able to decide what to value more for a particular job?
There are default weights. My guess is that few users will be capable of improving them. I also don't think an aggregating function based on weighted arithmetic mean is much good here. However, after all this discussion, I'm inclined to agree that this system can be usable for some things, tweaked or even "disabled". Oh, and since I'm a user, this is a contradiction: "you don't need to know the weights, the weights are whatever a user decides".
speaking of wrong assumptions, in the role calculations, the raw level and experience are never used. it's capped at legendary +5, since for a job in DF higher than 20 doesn't matter. they are tied to the current level of skill, they're just valued equally (which i think i clearly mentioned may need adjustment).
If the XP level for a Legendary +5 is listed as "29000+" or "MAX" and all those dwarves are treated as equals, I'm fine with it. However for two nearly identical dwarves, one of whom is 90% to next level and the other 10% to next level, the more advanced one should be higher. This is why I think sorting by (capped) XP rather than skill level would be a good idea.
Give warning to any tooltips with the roles that the values there are arbitrary and should not be relied upon.
really now, if you can't compose yourself enough to have a decent discussion i'll be hard pressed to keep taking you seriously.
So now you're insulting me back. I am serious, at least add this info about roles to the manual. Speaking of which, a manual for DT would be a good idea. It is easy to just use DT for labour management, but it has some more esoteric stuff. For example I've read somewhere that it is possible to make lists of skills and assign those lists to dwarves, which would be faster than clicking each square separately for each wave of migrants.
I think I see why we disagree. When selecting a Dwarf for a job, I think you ask "Which one of you will work the best at Legendary +5?" For me the question is "Which one of you will get to Legendary +5 the fastest and wasting the least materials?"
I think this is key. you don't want attributes, traits or preferences in your roles at all. so is the system totally flawed in it's concept, or are you just unable to figure out how to make it work for you?
I had to think a bit on this one. The system has been working against me so far and I still say it is flawed in it's concept. There are some ways to aggregate functions: first normalise them, then use arithmetic, geometric or max / min methods. There is also a method with distance from an "I'm happy with this" spot. All of them have their own problems, if only in choosing weights that make sense.
Of course, attributes, traits, and preferences have significant roles as well, and so must also be weighted (Especially as the majority of DF games played have no differing skill rates). As such, perhaps an option to weigh/not weigh skill rates would serve as a compromise?
They are either different and matter or uniform and don't matter. It is automatic; making an option for this would be pointless, except maybe to avoid dwarves with low skills being above those with higher skills, but poor learning rates.
That's why skill ratings (before being combined into a role rating) take into account the caste's skill rate learning. I believe it's something like skill rating * % of skill increase rating. Example, if a wood savant (not sure if wood savants learn carpentry faster) has a 130% increase in skill learning, than the skill % * 130% would be the new skill rating before being combined with attributes and traits and preferences % before being combined into an overall percent.
This is wrong, because for very low skill the skill rate wouldn't matter, while an unskilled wood savant is obviously a better choice for a carpenter than a Novice, since he will get to Legendary +5 faster. You want to take ((29000 - current_XP) / skill_rate), since that's all the skill rates affect in the end. Now, for this not to screw up your current system and assuming you want to normalise to <0,1> at 100 skill rate, where 1 is more desired than 0, you'd have to take (1 - ans/290.0). So this should work:
int XP = (current_XP > 29000) ? 29000 : current_XP;
int rate = (skill_rate < 1)? 1: skill_rate; // 0 or 1 doesn't really matter.
double jobs_left = (29000 - XP) / rate; // Ignore division by 60.
double normalised_XP = 1.0 - jobs_left/290.0; // This can be as low as -28999, but you don't want to train a skill with 1% learning rate anyway.
// For things like 0 skill and 30% learning rate this will be -2.3333, which is quite sane, but you might still want to "cap the bottom".
// For good learning rates, like 200%, this formula "pretends" that half the XP has already been generated.
Well, some edge cases, like a Legendary+5 at 1% learning rate and fast skill rust aren't considered, but for most things this should be fine.
Creativity (in my experience, repeatedly, but I have not kept hard numbers leads to much higher quality works in Masons/Carpenters/Craftsdwarf's/Weaponsmiths etc., and Analytic Ability to higher quality meals and mechanisms. At least for moderately skilled dwarfs. Perhaps this effect disappears at Legendary+5?
My own research inconclusively indicates that you are correct. I assumed the info for 40d about quality was still valid, because newer versions of it don't have a nice spreadsheet.
the nice thing about applying the skill rates with a weight is it's easy to allow the user to set a weight themselves.
You might as well say that the nice thing in trying to emulate multiplication with weighted addition is that the user can adjust the weights himself. It just doesn't work that way. What you might do with your current system is to include weights for raw skill and the value that my formula spits out. That way it is easy to disable one of them, but for 100% learning rates they are synonymous anyway. Once you have access to the learning rates, using them for calculations and adding things to options are a low hanging friut.
there's been a lot of effort (myself and others) put into the branch, but the direction is always community driven. regardless of the amount of tact when providing feedback, i still appreciate it and try to make whatever changes are necessary.
Thank you. I am more rude than I need to be, but it stems from me wanting DT to work better, for me at least.
no it's not doing that, and that's one of the major problems he's got. i used an equally weighted average between the skill experience and the skill rate, because i figured i wouldn't want a low level with high skill rate jumping up over a higher skill level with lower rate. this may not have been the best decision, which is fine! that's the reason there's patch notes and i asked for feedback, so it can be adjusted, because i don't get to play to know, i'm always coding.
I've actually considered the problem of unskilled peasant jumping ahead of someone experienced, when the skill rates are different enough. On one hand, the dwarf who is skilled now can already produce better items faster, on the other a high skill rate will let someone else catch up and exceed his skill relatively quickly. My conclusion is to allow "jumping ahead" for these reasons:
* Whoever wins the race to Legendary +5 should get the job anyway.
* I can easily see out-of order skill levels in the grid. I cannot see out-of order skill rates, except by looking at lots of tooltips.
* Meaningless in vanilla and people with mods and castes will likely want to use them to their fullest anyway.
* As of now, the grid sorts by a compound value rather than skills, so this is already happening.
Malak, I think you need to pull your head in a bit mate, as we say here in Australia. Coming in to a thread demanding that the volunteer developer change his code to what you want, questioning why nobody has noticed this obvious bug before (and therefore implying everyone else in the thread is an idiot), and generally using confrontational, aggressive and overbearing language is no way to win friends and influence people.
I know I'm antagonising people and that this is a recurring pattern, no matter the social group. To date, I haven't found a solution to this problem. If I just wrote what I wanted to say, waited for two days, edited it and posted it then, this discussion might have looked differently, but what's done is done. There isn't even much room for "damage control".
current xp/29k * skill rate.
Incorrect and I explained it above as well as gave the formula for determining who maxes out the skill the fastest. One way of looking at it is that XP rates generate "virtual XP".
it's also important to note that what's used in the roles doesn't have to be used for the sorting. they're calculated separately.
I don't mind hints about roles in tooltips much, even those I disagree with. It is just that everything is sorted by them, but as someone already explained, the workaround is to set weights to 0 to everything except skills.
currently if the levels/xp are equal the higher rate will end up with a bonus and thus a higher rating.
Well, I still have tooltips to hunt down a candidate for a job, but sadly they don't display XP rates for skills at 0. Even then, I have the bigger tooltips to guess the caste by description and check it in the big file in the RAWs if I have doubts, it is just time-consuming and inconvenient.
So if I'm reading this correctly [...] how does that make sense?
It doesn't, that's part of the point I'm trying to make.