Solved & Confirmed 0.7d - Really weird storage/imps behavior
#16
I have some weird behavior to share too Big Grin

[Image: cuKxxpf.jpg]

I built an antroot mine, then some corner shelves into it, and the imps won't use it. As you can see, the storage is at a steady 65%, as there are 3 storage structures built, 2 full/1 empty.

So I decided to build a fourth structure to hold goods, but the game won't acknowledge the 3 logs at the flag. If I had to guess, I would say that they are marked by the storage's imp as "gonna put on the shelf" but never does because half the shelf is a mine and that's weird, so no one else comes to pick them up and take it elsewhere.

EDIT:

So, I sold the mine and the imps started putting stuff on the third shelf. Not the resources at the flag though, they remained on the floor as unpickable, because... reasons. I tried changing the flag to another tile, but those resources where continued to be ignored. The only way I found for them to pick them up was selling that storage room floor tile. Only when they where sitting on a generic tile the imps "saw" them again and proceeded to pick them up.
Reply
#17
Nice visual representation Excess Smile This will definitely help me reproduce the issue!

I haven't started on the bugs yet, but I have started looking over some of the issues with weird storage room behaviour, and this thread feels like a general storage room issue tread. I remember it was being said somewhere that once the player decides to empty a storage room of a certain item all production gets halted. The reason is that all the queued work in a room is listed straight up, so the imps will almost always choose the work that has been laying around the longest. But this is a problem when it comes to emptying storage rooms, because if the player has 50 rocks he wants to get rid of the other jobs will have to wait until those 50 rocks has been moved out of the storage room.

So I will solve this be letting the rooms scramble the job-list now and then and try to avoid having similar jobs listed directly after each other.

So for example. If the you type is defined by a letter the worklist may look like this in the game:
B, B, B, B, B, B, B, B, B, B, A, A, A, A, A, A, A, A, A, B, B, B, B, B, B, B, B, B, B

In this example all the "B" jobs will be finished before the "A" jobs. This creates a situation where "B" becomes over-productive and "A" under-productive. When the workers then start on "A" then the "A" becomes over-productive and "B" under-productive.

So each room from now on will have the responsibility to scramble the worklist as much as possible so that the list displayed above looks something like this instead.
B, A, B, A, B, A, B, A, B, A, B, A, B, A, B, A, B, A, B, B, B, B, B, B, B, B, B, B, B
Reply
#18
That should help solve a lot of problems.
[Image: 11619898803_7d3a89e6bd_n.jpg]
The Golden One!
Reply
#19
Added a new function to solve the issue when the workload suddenly increases.

[IMG]replace_photbucket_link/ExtraWorkers.jpg[/IMG]

In this screenshot I put all 80 irons on "out", and I sold some of the storage shelves so that the storage room got a lot of jobs all of a sudden. This is something that happens naturally during gameplay and in previous versions actions like this could halt the whole production chain. What I have done is that when a room gets a very heavy workload the game calculates how many workers the room should have to solve the clogging, if the room has less workers than that amount the game will add extra workers to that room until the crisis is solved. These extra workers are "hired" from the workers that aren't assigned to a room (free workers).

For the room to be able to "hire" a free worker these conditions must be met:
- There must be at least two free workers out there that don't have anything to do.
- The number of free workers that has nothing to do must be larger or equal to the free workers that are doing something.

The room will "unhire" a free worker if conditions must be met:
- There are no free workers out there that don't have anything to do.
- The number of free workers that has nothing to do is less than half of the free workers that are doing something.
- Only workers that aren't doing anything can be unhired (this is so that the jobs don't get interrupted.)

Hopefully this together with solution in my previous post will solve some of the clogging issues.

Another thing I have noticed is that it is to easy for the player to put linked rooms to far away from each-other. When this happens the imps run like crazy, and the player will have to assign an unrealistic amount of imps to a storage room just to coop with the work delay because of the distance.

I have said before that I am interested in having some kind of a transportation system between the storage rooms. This is still something I intend to implement, but for now I was thinking about setting an extra info bar in the room info menu that tells the player how efficient the imps are, how long time it takes for them to complete a task after they have started with it. If there is a situation where the imps have to run long distances and average time is between 10 and 15 seconds, then this can work as a warning system for the player that he should redesign this part of his dungeon.
Reply
#20
All of those will greatly help for sure Big Grin

As for storage room, can you confirm that when a production room is linked to a storage room, the goods needed for the production have to be in that room too ? If that's the case maybe being able to link 1 "out" storage and multiple "in" storages would be neat Smile
Computers are like air-conditionners, they stop working properly when you open Windows...
Reply
#21
Yeah the game should work as you described. If a cookery room is linked to a storage room then the cookery room will get the items they need from that storage room. As there have been reports on some odd behaviour with the "in" and "out" I would recommend only using "in" in that storage room connected to the cookery room and not use out on the others.
Reply
#22
(26-06-2014, 02:09 PM)Rasmus Wrote: Yeah the game should work as you described. If a cookery room is linked to a storage room then the cookery room will get the items they need from that storage room. As there have been reports on some odd behaviour with the "in" and "out" I would recommend only using "in" in that storage room connected to the cookery room and not use out on the others.
I think that Yamitatsu is talking about a different "in" and "out" than you do. What he is asking for is to letting us assign two different storage rooms per room, one (or several) from where the ingredient items will get fetched, and another one where the finished product will be delivered.
Reply
#23
Yes Excess, exactly, thank you ^^
Computers are like air-conditionners, they stop working properly when you open Windows...
Reply
#24
Ah gotya Smile
Interesting.. Maybe I will implement this in the future (it is a big change to the linking system), but first of I need to get the current system working as it should. I will try to remember this feature, but if I don't, please don't hesitate to remind me Smile
You can make a topic about it in the Suggestions forum. From time to time we revisit a lot of those topics.
Reply
#25
(26-06-2014, 01:12 PM)Yamitatsu Wrote: All of those will greatly help for sure Big Grin

As for storage room, can you confirm that when a production room is linked to a storage room, the goods needed for the production have to be in that room too ? If that's the case maybe being able to link 1 "out" storage and multiple "in" storages would be neat Smile

That would be great, in addition to an idea I suggested earlier of having the ability to set minimum and maximum amounts each store room would hold, different from it's capacity, this would create another way to prevent incurable production clogs.

IMO the one major flaw with the current storage system where all production rooms both draw their ingredients from and send their finished products to the same store room is, the issue with the "catch 22" scenerio, where a store room can be filled up with the ingredient items so that no finished product can be delivered to it, therefore it can't be made, and because it can't be made, the ingredients can't be used up to clear more room for the finished products... and so it goes back to the original issue in a circular problem.

Having a secondary "out" store room that the items could be sent to and the ability to set how many ingredient items a store room will accept and how few it will accept, both give ways to prevent that catch 22 scenario.

For example, if store room A supplies a cookery room which needs antroots and water and makes beer, then you could set store room A to stop storing antroots and water as soon as each takes up about 40% of the capacity (total of 80%) so that always leaves 20% capacity free for the beer. You could also set a maximum amount of beer that store room will keep and if it goes over that amount it would automatically send the overage on to another linked store room.

That would also prevent the other side of the catch 22, can't produce more beer because there are no ingredients and can't get more ingredients because there are none in Store room A which can't take on any because it's already full of beer.

Then add in Yamitasu's idea of separate "in" and "out" store rooms, which could also be modified to be a primary and a secondary store room and that would also work, and you now have 2 layers of protection against a catch 22 stoppage, and all that without the need to micromanage and baby sit your store rooms with one finger on the store/don't store toggles at all times.
[Image: 11619898803_7d3a89e6bd_n.jpg]
The Golden One!
Reply
#26
Having only on storage for both "in" and "out" kinda forces us to have 1 big storage room, or make sure every storage rooms have some of the supplies needed wich is more difficult.

I'm gonna add the sugestion for the multiple links Smile
Computers are like air-conditionners, they stop working properly when you open Windows...
Reply
#27
Another issue found (Thanks to SU's savegame) is that when the player creates a too big room with farmspots for example there will halt in the production because only three items of each type can be stored in a non-storageroom at once. Instead of having a constant number for this I will make it so that the maximum number of antroots that can be stored are 3 + ((num farms) * 2). This will give the farms a buffer so that they can keep harvesting antroots even if the storage room imps that are suppose to collect it gets a little behind.
Reply
#28
That's great. I read about that in the request for savegames thread. The thing is, big rooms should be more efficient then small rooms, overall. In economics they call that "economies of scale", so your making the storage limit for production rooms dependent on the size of the room makes it work that way.
[Image: 11619898803_7d3a89e6bd_n.jpg]
The Golden One!
Reply
#29
@Excess: I have not been able to reproduce your bug with the items not being picked up from the floor. It is possible I have solved it already, but I am not sure.. Do you still have a savegame of this issue?

@Yamitatsu: The main issue in this topic has been solved. I didn't solve it in a way that I think you guys and gals will like, what I did was that I removed the "out" option for the storage rooms because I found that they interfered with the "in" options. I will probably re-introduce it in future versions, but right now it is getting to much in the way and I want to clean up all the other production chain related bugs before I introduce it again.
Reply
#30
New version released, this bug is solved but need confirmation!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)