Bay 12 Games Forum

Please login or register.

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

Author Topic: Dwarf Organizer v1.3  (Read 25755 times)

Intrinsic

  • Bay Watcher
    • View Profile
Re: Dwarf Organizer v1.14
« Reply #30 on: April 11, 2012, 02:14:55 am »

That version of DT gives bad results currently, skill weightings are completely out of whack and the results unreliable. It's usable if you disable skill weightings though. Last i saw thistle was working on a new formula. Just something more like DGC would perfect, i never had a bad result from what it fed me back.

PS yet to give DO a decent go as my current fort is too far along, had a look around though. My next one i'll try purely using DO :)
Logged
Start Duelyst with a bonus 100gold, use referral code: Buttfungus
Enter during signup or ingame under Settings.

Antalia

  • Bay Watcher
    • View Profile
Re: Dwarf Organizer v1.14
« Reply #31 on: April 11, 2012, 04:08:59 am »

Quote
Just something more like DGC would perfect, i never had a bad result from what it fed me back.
Yeah, DO uses the formulas from the wiki, which are the formulas DGC uses. If you run them side-by-side, they get the same results. Except, of course, I'm displaying and using skill potentials as percentiles, instead of further writing them out into English descriptions like DGC. (Dwarf Organizer reports "58%" under Mining Potential, where DGC reports "an above average Miner".)

DO is also capable of showing potentials in color-coded English, but I didn't find it incredibly helpful considering the nature of the tool, and took it out of the UI. The ability to do that type of display might return when I add further capabilities to the view.
Quote
Are you aware of the suitability-function work going on in the Dwarf Therapist thread?
I have seen the DT conversation about implementing something kind of like what Dwarf Organizer does, in DT, but it doesn't look to be off the ground yet. (I don't really understand the problems they're having, so I haven't been able to help.) I think DO goes a little further with labor assignments than the DT feature intends to (as I understand it). So these tools are probably for slightly different audiences.
Quote
I implemented setting labors in the dfhack protobuf API this evening and sent a pull request
This is very exciting! (And, a good excuse for me to get back to custom jobs and masks soon.) I was reading about protobufs last night and it looks like, shockingly, Java apps can make use of them 8). That is if we're talking about Google protobufs (I'll have to look at DFHack and see what it's really doing, to understand correctly). If so, this is really great (and my long weekends spent with DO will not be coming to a close anytime soon)!
Logged
Author of Saga of Nutscaves, a tale of unsafe working conditions, plague, and worse

Creator of Dwarf Organizer, a Java application to help assign labor in your fortress

Antalia

  • Bay Watcher
    • View Profile
Re: Dwarf Organizer v1.20
« Reply #32 on: April 11, 2012, 04:58:23 pm »

I've put up v1.20, which restores the Columns menu to normal working order again. (Hopefully I'm done breaking things...) Also, column choices and the view are no longer reset when loading files. (But I've decided to wait until I'm done improving the whole view scheme a bit, before saving the view between sessions.)

There is also a new feature, the Exclusion Manager, which allows you to save rules concerning the "Include" checkbox. So, for example, you can automatically exclude the pesky list of dead or hand-less dwarves who keep cropping up in the XML export. You can also create rules to exclude citizens from work based on their gender, age, name/nickname contents, and currently enabled labors. (Don't tell Human Resources.) You can also set up lists of dwarves mimicking, for example, your migration waves or military squads, and exclude citizens based on membership in any active lists.

There's also a new section in the tutorial about the Exclusion Manager, with pictures, under "Advanced Concepts" in the table of contents.

(Apologies about the recent frequency of updates. I think I've put out all the fires now.)
Logged
Author of Saga of Nutscaves, a tale of unsafe working conditions, plague, and worse

Creator of Dwarf Organizer, a Java application to help assign labor in your fortress

Antalia

  • Bay Watcher
    • View Profile
Re: Dwarf Organizer v1.21
« Reply #33 on: April 24, 2012, 08:38:08 am »

I've posted a revision with some minor interface enhancements. There's also a new section at the end of the tutorial, explaining how the skill potentials are calculated.

Help->Tutorial should also now open the tutorial properly, even for systems not implementing the Java 6 Desktop. (Let me know if your experience differs.)

At some point this week, I plan to post another revision with the Dwarf List view overhaul (saving the view between sessions, among other things), if all continues to go well. I just wanted to get the many small improvements out there, in case it doesn't :)
Logged
Author of Saga of Nutscaves, a tale of unsafe working conditions, plague, and worse

Creator of Dwarf Organizer, a Java application to help assign labor in your fortress

Antalia

  • Bay Watcher
    • View Profile
Re: Dwarf Organizer v1.21
« Reply #34 on: April 24, 2012, 09:15:34 am »

Hopefully this doesn't affect anybody...but in case it does:

Logged
Author of Saga of Nutscaves, a tale of unsafe working conditions, plague, and worse

Creator of Dwarf Organizer, a Java application to help assign labor in your fortress

Intrinsic

  • Bay Watcher
    • View Profile
Re: Dwarf Organizer v1.21
« Reply #35 on: April 24, 2012, 02:26:59 pm »

My fort is still alive so yet to give this a proper go, maybe next week :D
Logged
Start Duelyst with a bonus 100gold, use referral code: Buttfungus
Enter during signup or ingame under Settings.

Antalia

  • Bay Watcher
    • View Profile
Re: Dwarf Organizer v1.3
« Reply #36 on: May 10, 2012, 09:18:37 pm »

A new revision is available, making the Dwarf List more customizable. Columns can now be frozen, and you can save and switch between different ordering. (See Version History for more details...or just have a look at the new View menu options.)

If you're updating and you use a customized configuration--you may be relieved to learn that I've moved the installation default configuration files into their own directory. This is separate from any customized files. It greatly reduces the chance of accidental overwrites (at least for me, hehe).
Logged
Author of Saga of Nutscaves, a tale of unsafe working conditions, plague, and worse

Creator of Dwarf Organizer, a Java application to help assign labor in your fortress

Intrinsic

  • Bay Watcher
    • View Profile
Re: Dwarf Organizer v1.3
« Reply #37 on: May 11, 2012, 12:15:30 am »

Nice :) my current fort i mentioned is still going lol...the games only sent pathetic sieges at me so far so nothing to tax it. I may just start up a new one to test this out but won't get a chance until later next week.
Logged
Start Duelyst with a bonus 100gold, use referral code: Buttfungus
Enter during signup or ingame under Settings.

thistleknot

  • Bay Watcher
  • Escaped Normalized Spreadsheet Berserker
    • View Profile
Re: Dwarf Organizer v1.3
« Reply #38 on: May 22, 2012, 06:59:50 pm »

Wow, I was working on sometghing like this to use with splinterz ver of dwarf therapist...

thistleknot

  • Bay Watcher
  • Escaped Normalized Spreadsheet Berserker
    • View Profile
Re: Dwarf Organizer v1.3
« Reply #39 on: May 22, 2012, 08:10:10 pm »

Okay, I've been working on this concept for about a week to implement into Splinterz version of Dwarf Therapist, but... if you already have most of it coded, it really only needs a static input list (dwarves.xml).

Here's the spreadsheet I was working on

http://www.mediafire.com/?wsthn5n8es8k5bz

The concept involves a few variables.

I have a time variable, but I called it "attention required"
I have a priority variable (3 to 1), which is multiplied by TWO NEW VARIABLES
a quality/speed weighted average variable to create a sorted list of what jobs to fill first.

here's the full set of instructions

Spoiler (click to show/hide)

I'm still working on making the sheet better, but IF I can figure out a better dwarfexport, then I can import everything I need and can prolly just use vbs to do the assignments.

UPDATE:
I updated my spreadsheet, all instructions are on the sheet now

http://www.mediafire.com/?o5rvjg74aq714lx

Update 3:

I think... I can sort this stuff without the need for it to be implemented into DT, or even... without the need for an xml file, it would need to be done by hand, but it could be done one role at a time, wouldn't take that long.  just as long as it takes to assign dorfs to a single labor * # of labors.

Here's an updated spreadsheet that calculates the # of shops

http://www.mediafire.com/?ygcf0khufdj2faz

here's a sheet that shows my attempt at using DT and my spreadsheet to assign labors

http://www.mediafire.com/?k8lx43i9rk768c3

Update again:
Here it is super charged (all labors) see f8 for copying instructions
http://www.mediafire.com/?8c3twchdb0bqgbe

I think though, that priority is not needed.  Before I thought about basing it on attention (like Antalia does)...
but, what if it's a job that is not that important.  Like a low priority.  I mean... what if making armor is more important than plant gathering?  What if armoring is less important than woodcutting (cuz it takes wood to make fuel?).  I don't know, that's why I had it, but I still think a quality/speed variable is important to adjust it by to sort the jobs to be assigned first.  If it takes a non skilled dwarf to do it, then best assign it last.F
« Last Edit: May 23, 2012, 08:32:23 pm by thistleknot »
Logged

Antalia

  • Bay Watcher
    • View Profile
Re: Dwarf Organizer v1.3
« Reply #40 on: May 24, 2012, 08:03:31 am »

Hi Thistleknot -
Let me just say first, I only had a brief chance so far to look at the spreadsheet! I should be able to look more closely by Saturday.

At my initial look, I could see some of these factors are in my planned rewrite of the Jobs screen. For example, I'd like to include speed and quality factors for each labor (mainly just for display, however). As you've probably noticed, the current weighting only uses one factor...it has the (perhaps more than) mildly misleading title of "Job Priority". But priority isn't all it covers. The tutorial section about it is probably nebulous at best, and is in dire need of a rewrite. I'd been putting it off a little--there are several things I'd like to address about this screen all at once. And I haven't totally fleshed out all of them.

First, I'd like to draw these two labor factors, quality and speed, initially from the information available at the wiki (like my other labor data). Initially I imagine that each of those factors for each labor will start with a value of, say, "true" if better stats affect that factor, or "false" if they don't.

For example, a job like Brewing, which does not generate products with quality, would initially have a speed factor of "true", and a quality factor of "false". A dwarf can speed up Brewing by having better Brewing stats, but (s)he can't ever produce better quality booze with better Brewing stats. This will probably just be shown in a tooltip, or maybe with some nifty glowing or not-glowing icons, depending whether I feel artistic.

Here comes a long example of where I think (if I understand correctly) our ideas seem to differ, though. I can see that we might want to change how important it is that Brewing gets done quickly, in our fort. Perhaps we might want to pull a "speed importance" slider down to, for example, 60% or something, based on the fort's needs. Any "quality importance" slider for Brewing would be disabled, of course, unless we go into the labor settings and change the quality factor for Brewing to "true" (maybe we're using a mod that allows quality booze). We're on the same track, I think, so far...

However, as far as I know, the same stats still affect both quality and speed equally, for the same labor. So for a labor like Masonry, which has improved quality and improved speed output for better dwarf stats--I must ask whether weighing the quality and speed we desire separately, accomplishes anything more helpful to the end user than not. That was one of the questions I originally asked myself, before I released the Jobs screen the way you can see it now--with its one nebulous "Job Priority".

I thought about users having to invent multiple arbitrary weights for each labor, and having to keep all these arbitrary values up to date as the fortress grew. (I even tried it out--it was the original design!) I decided, right or wrong, that this was probably going to confuse and/or annoy users, more than just having the one arbitrary weight per labor. I believed that I was already asking for a great deal of creativity/guesswork, with just the values that we see there now :). There is also the consideration of how it works, mathematically, if there are separate weights for quality and speed. When it worked that way, the program just averaged them and used the result as the weight in the end. After all, it's all the same stats involved, and improvements to those stats cause equal linear improvements to both speed and quality performance in-game (as far as anyone knows, anyway).

I'd like to be convinced it's incorrect to use just one arbitrary weight which is composed of both arbitrary quality and arbitrary speed factors, and anything else arbitrary we can think of besides priority (priority, I think, is a separate matter). But I am not convinced, as yet :) Alternatively, if I were sure it would be helpful for some users to work with "advanced" arbitrary weights, I'd be fairly happy to provide an optional, alternate view for that screen.

So anyway, the result of my design decisions there, makes up one part of the "Job Priority" being used now. The other chunk is, of course, that the "Job Priority" can be arbitrarily increased to give the optimizer a better sense of priority. This is another planned change to the Jobs screen that I noticed you've hit on :)

When I rewrite the Jobs screen, I visualize the user being able to drag and reorder labors, pulling them around so that the most important ones are at the top of a priority list. (Labors with equal priority would occupy the same virtual "slot".) Any labors the user wants the optimizer to ignore, would sit out of the way in some bin on the other half of the screen, ready to be plucked out if and when they're wanted. (In the current version, 1.3, and everything before it, there is no way to make the optimizer totally ignore a labor. That will be addressed.) I want to make the whole process more visually (and logically) clear and easy to use and understand, than it is now.

TLDR: Separate quality and speed weights: I need convincing. Priority: Yes, I'm separating it, eventually, but I intend that this is only in a more user-friendly way than things are now. Spreadsheet: I should be able to have a more thorough look by Saturday (I apologize if I missed anything, which I probably did--I just wanted to reply back in a more timely way). This is unless my Android project milestone runs over, in which case I'll have a look during next week!
Logged
Author of Saga of Nutscaves, a tale of unsafe working conditions, plague, and worse

Creator of Dwarf Organizer, a Java application to help assign labor in your fortress

thistleknot

  • Bay Watcher
  • Escaped Normalized Spreadsheet Berserker
    • View Profile
Re: Dwarf Organizer v1.3
« Reply #41 on: May 24, 2012, 11:36:49 am »

Quality/Speed Variables:

  Ye, I figured speed/quality were gonna do the same thing in the long run (affect priority) so why have separate variables?
  I like ur approach of reading if speed/quality r specified (in the wiki).  I updated my spreadsheet using a flag.

  I still think a value should be allowed for the user to specify if he cares about the quality or speed of said labor though.  And if he does... then the priority is affected by this value (if speed/quality flag are true).

Defense of Quality/Speed variables:
  Splinterz seems to agree that a bunch of arbitrary values for labors may confuse end users... However, I think the option should be there, just everything is set at the same setting, your slider bar idea is a good example.  Say a user wants to adjust quality/speed (if the flag is true, the slider should work) for leatherworking armor, so he moves the slider bar to higher quality, therefore affecting priority and recommending a higher skill dwarf to do that job.  ;)
The main reason for this is say early on in a fort, you know you can't produce quality armor.  So you leave quality for leatherworking alone, but later on, say you have 50 dorf's, now you feel you can spend the time to adjust the quality of it, therefore giving a higher skilled dorf an opportunity to be picked for that labor first as you go through the job priority lists.

Priority/Job Frequency
   Job Frequency = Attention * # of Dwarf's
   I think a separate priority is a good thing.  I implemented drop downs in my spreadsheet (4th sheet) as a way to use drop downs.  I wish I had good descriptive terms to help a user decide on how to quanity priority for different jobs.  I mean, what makes Mining a high priority?  I guess it depends on the number of jobs you intend to queue up.
   At first I thought saying hauling job's had a high priority didn't sound right, but when they are weighted against quality factors (which are 0 for hauling), then they get the bottom of the barrel pick.
     Originally I was using just 3 values, then I tried adopting your 1 to 100 range, then I went back to pre-defined variables (via drop down) between the value of 0 to 1 that uses descriptive words to help a user decide what to set it to.

Role %'s:
  I'm working with shishaush or something like that to see if I can get role %s exported to csv.  Hopefully I'll have something this weekend.

Question:
  Where do you find quality information on the wiki's?

Coverage variable:
  I've included a variable that is used to determine how many dwarf's should be available at any given time to do a job.  It's probably similar to Priority, but priority says how many jobs are queued, but coverage says how many dwarf's are available to do it at that time.  This variable affects the attention variable.

Hiearchy of labors?
  What of a hierarchy of labors?

  If I don't have bituminous coal, I need a wood furnace to burn at a higher rate than my smelter smelts and that before I can smith anything.
  I would think a hierarchy of related labors to priorities would be in order.  Of course, that doesn't account for when I do have bituminous coal, and even when I do, it may be limited.

  Same can go for tanning vs leather working (until a trader shows up!).

Latest Iteration of my spreadsheet, I started some work on a need variable and it affects attention as well as the # of dwarf's assigned to a job
http://www.mediafire.com/?b0n9aiwcbvuhask

:) fellow dwarven engineer

BTW, I may be sending you occasional spreadsheet updates.  I'll probably pepper here, as well as Therapist, but most likely I'll email you my latest copy.

It's hard to quantify these things, I wonder how you were able to do it so well.  I had to think and think and think for like 2 weeks before I came up with the variables.
« Last Edit: May 25, 2012, 07:09:49 pm by thistleknot »
Logged

thistleknot

  • Bay Watcher
  • Escaped Normalized Spreadsheet Berserker
    • View Profile
Re: Dwarf Organizer v1.3
« Reply #42 on: May 26, 2012, 06:29:40 am »

Here it is.  My finished spreadsheet'er

I just assigned all my dwarf's to individual labors (in the spreadsheet) in the hopes that no one is over assigned.

I'm going to try my hand at coding up the algorithm for use in DT.

If anyone's interested, you guys can "optimize" your fort using this spreadsheet and a version of DT Shish coded up that allows exporting of grid views to CSV's (which is needed for the spreadsheet)

Old update history
Spoiler (click to show/hide)

I added a Dwarf Therapist Grid Layout so assigning labors is easier to do by hand
http://www.mediafire.com/?6znle279i4voxjs

See pic here
Spoiler (click to show/hide)


shish's csv dt based on splinterz 11.1
http://www.mediafire.com/?v02nwj1arncnpxn

Unfortunately, you need office 2010 (sorry guys).

It may work without office 2010, but there is a vbs script to sort.
« Last Edit: May 26, 2012, 01:00:46 pm by thistleknot »
Logged

Antalia

  • Bay Watcher
    • View Profile
Re: Dwarf Organizer v1.3
« Reply #43 on: May 26, 2012, 05:14:16 pm »

Quote
Question:  Where do you find quality information on the wiki's
Hmm, I was thinking of a section I can't seem to find again, when I wrote that. Anyway, I suppose I'd go from here:
http://dwarffortresswiki.org/index.php/DF2012:Item_quality

I don't currently have access to MS Office. I'm somewhat able to view your sheet with LibreOffice Calc (but of course there is no vbscript, and no dropdowns).

I can see the spreadsheet variables are a bit more complex than the input for my program. I think Dwarf Organizer can do the things you've mentioned, but it does them with less separate inputs. For example, I just bump up the number of positions, time, or weight when a labor increases in importance. This data is as atomic as I could make it--I think it's fairly critical that the user doesn't have to update multiple related fields. My decisions in that regard are probably influenced by writing a lot of software with very high usability requirements, in the past.

I sometimes play with ideas of further generalization or labor hierarchy, but I had decided not to introduce them in the interface. This way, the program input closely matches the way labor assignment in Dwarf Fortress works. And, the optimization results are about as transparent as I can make them.

There are, of course, planned changes to the weight/priority field, and to assigning multiple sets of the same labor (such as to allow separate labor assignments for a battery of Masonry shops producing no-quality blocks, and for a Masonry shop trying to produce masterwork statues). I will probably be addressing this next, now that I've recently finished migrating the project to a new IDE.
Logged
Author of Saga of Nutscaves, a tale of unsafe working conditions, plague, and worse

Creator of Dwarf Organizer, a Java application to help assign labor in your fortress

thistleknot

  • Bay Watcher
  • Escaped Normalized Spreadsheet Berserker
    • View Profile
Re: Dwarf Organizer v1.3
« Reply #44 on: May 26, 2012, 06:40:18 pm »

You responded!

Yeah, there is a lot of stuff in there.  Not too complicated.  I had to include an importance variable because I found my militia isn't used as frequently and was ranking low, so I had an importance variable that weighted the frequency by how important it was for them to do their job when they were needed.

I also introduced a "coverage" type variable

Instead of trying to create attention/time variables, you specify how much coverage you want a specific job to have at any one time.  Default values were .50 to 200%.  So when you have a job queued, you had that much labor at hand to do it, then your # of dwarve's were divided by the coverage variable to get the attention/time variable.

It was pretty ingenious.  Splinterz pointed out you can't control what a dwarf does.  So I implemented a way to ensure a dwarf was available to do the job instead.

Lastly...  I'm having a problem with having too many left over dwarf's.  I'm not sure in my labor sheet how I'm supposed to get # dwarf's assigned x labor to end up with exactly that many haulers at the end to assign.  I find everytime I'm assigning about 26 haulers.

http://www.mediafire.com/?5syauoi0bznbmii
« Last Edit: May 27, 2012, 08:41:55 pm by thistleknot »
Logged
Pages: 1 2 [3] 4