Nick:  
Pass:     
Help Register


Post Reply 
Brainstorm Creature Mechanic - Imp priorities
Author Message
Seriously Unserious Offline
The Ninja Dinosaur

Posts: 1.607
Joined: Jun 2013
Reputation: 69
Post: #46
RE: Imp priorities
Nice farmer suit, MG. +1 for the work. Smile
[Image: 11619898803_7d3a89e6bd_n.jpg]
The Golden One!
02-02-2014 07:56 PM
Find all posts by this user Quote this message in a reply
Rasmus Offline
Main developer of Dwelvers
Dwelvers Developers

Posts: 3.619
Joined: Sep 2013
Reputation: 502
Post: #47
RE: Imp priorities
Yeah +2 to you Wink
Something I was thinking of, maybe tear his clothes and hat just a little so that they don't look so new Tongue
02-02-2014 08:17 PM
Find all posts by this user Quote this message in a reply
Mastergoose Offline
Realm Conqueror

Posts: 70
Joined: Nov 2013
Reputation: 18
Post: #48
RE: Imp priorities
Thanks! And yes it is the farmer haha.
Good idea Rasmus, I'll tear the cloths a bit up! To be continuedWink
02-02-2014 08:28 PM
Find all posts by this user Quote this message in a reply
Seriously Unserious Offline
The Ninja Dinosaur

Posts: 1.607
Joined: Jun 2013
Reputation: 69
Post: #49
RE: Imp priorities
Also, try adding some patches to them too. To make the clothes and hat look like they've been torn and mended several times.
[Image: 11619898803_7d3a89e6bd_n.jpg]
The Golden One!
02-02-2014 09:11 PM
Find all posts by this user Quote this message in a reply
Rasmus Offline
Main developer of Dwelvers
Dwelvers Developers

Posts: 3.619
Joined: Sep 2013
Reputation: 502
Post: #50
RE: Imp priorities
So here is a little update on what has happen so far.

This is what I wrote down before I started to work on the Imp prio system:

- If a job is in a room, then the jobs roomID is the same as the room it is in.
- A room is either defined as a storage room or not.
- A room can have other rooms linked to it, the only rooms that can be linked to a room is storage rooms.
- The storage rooms also keep track of what regular rooms are linked to it.
- There are 4 types of jobs in general, jobs that don't give anything, jobs that gives items, jobs that takes items and building jobs.
- Workers can be assigned to all rooms.

So with this information we need to figure out what jobs the workers can do.

Things that watch out for:
----------------------------------
- Building jobs can be assigned with a roomID because the things that needs to be built can be in a room.
- Eating and sleeping jobs is also defined with a roomID because these jobs are inside a room.
The solution is to make exceptions for these jobs, building jobs should only be avalible for those workers that don't have a room assigned to them. Eating and sleeping jobs should be avalible for all creatures no matter if they are assigned to a room or not.

If a creature isn't assigned to a room:
---------------------------------------------------
- He should be able to dig.
- He should be able pick up items that aren't assigned to a room.
- He should be able to deliver building materials to the building sites even if they are in a room or not.
- He should be able to build buildings even if they are in a room or not.
- He should be able to deliver items to storage rooms.
- He can not work with any jobs assigned with a roomID with the exceptions above.

If a creature is assigned to a room that isn't a storage room:
----------------------------------------------------------------------------------
- He should be able to do all the jobs that are assigned with the same roomID as him.
- He can't work with jobs that don't have a roomID assigned to them.
- He can work with jobs that have a roomID assigned to them if the room he is assigned to have this roomID linked to it. And the only jobs he will be able to perform outside his own room is

fetching and delivering items.

If a creature is assigned to a storage room:
-----------------------------------------------------------
- He should be able to do all the jobs that are assigned with the same roomID as him.
- He should only be able to do jobs that means that he is delivering items to storage room.
- He should be able to do transport items between the linked storagerooms depending on the storagerooms needs.*

I am finished with all of except the last list item (*).

So far everything have gone smoothly, and I have to say that I really think this was the right track to go. The production feels much more controlled now, and the player is practically able to build a how large dungeon he wants to without losing control over the production. All that is left is maybe to make it more visible what is linked to what, but that is something I will address later.

Right now I am working on what items should be transported to what storagerooms and from what storagerooms. What items a storage room needs depends on what rooms it is that are linked to it. Here is a image of what I had in mind:

[IMG]replace_photbucket_link/StorageRoomItemPrio.jpg[/IMG]

As seen here we have different buildings (that are in rooms) assigned to the storage room. All these buildings requires different resources, when we look at the bartable and the iron smelter there are no competition between the resources, the storage room connected to the ironsmelter is the only room that needs coal and iron, therefore 100% of the coal and iron should be transported to that room. The same with the bartable, it is the only one that requires beer. But it is different with the water, as seen we have four farm land buildings that requires water in one storage room, and two brewing vat buildings that requires water in another storage room. So by doing a simple calculation we can see that 66 % of the water should go to the storage room with the four farmlands, and 33 % of the water should go to the storage room with the brewing vats.

When I say percentage, I mean that the game will distribute the water buckets so that the the storage room that needs 66 % of the water always will have 200% more water delivered to it than the storage room that requires 33 % of the water.

So the idea is that if the player would be able to modify these values himself and lower the amount of water in one storage-room, the other storage rooms will automatically get more water delivered to them. I could probably set a max value to the storage rooms, saying that it is not allowed to store more water than a certain percentage of the maximum storage, or so and so many water buckets. When this is done, and the storage room exceeds its max limit, then the storage room will be treated like it only wants a certain percentage of the total number of water buckets in all the storage rooms that goes well with its max value.

I am thinking something like this:
If there are 100 water buckets out there. We have two storage rooms that needs 50% each of the water buckets. But one storage room has a limit of 25 waterbuckets, which means that the other storage room will have to store 75 water buckets, this is the same as if the storage room that has a limit of 25 water buckets would only need 25% of the water buckets and the other storage room would need 75%. So what happends if both storage rooms only wants 25 buckets each? Then we have 50 water buckets that don't know where they should go. If we have 7 storage rooms out there, only two of them needs the water buckets, but they have both sat a limit of 25 water buckets each. Then the other 50 water buckets needs to be distributed between the other 5 storage rooms. This is the same as letting the those storage rooms with the water bucket limit require 25% each (50%) of the total amount of water buckets in the dungeon, and the rest of the storage rooms require 10% of the total amount of water buckets in the dungeon.

The above example is mostly how I figured how the computer would calculate the distribution of water buckets if the player wanted to modify the values himself. When the buildings that don't want any water buckets are forced to receive it, then the water bucket production should be automatically turned off.
04-02-2014 03:20 AM
Find all posts by this user Quote this message in a reply
Mastergoose Offline
Realm Conqueror

Posts: 70
Joined: Nov 2013
Reputation: 18
Post: #51
RE: Imp priorities
Wow, great work Rasmus! This looks well worked out!
A few questions though:

(04-02-2014 03:20 AM)Rasmus Wrote:  If a creature is assigned to a storage room:
-----------------------------------------------------------
- He should be able to do all the jobs that are assigned with the same roomID as him.
Do you mean with this that imps assigned to the storage room can do all jobs which are linked to the storage room?

(04-02-2014 03:20 AM)Rasmus Wrote:  If there are 100 water buckets out there. When the buildings that don't want any water buckets are forced to receive it, then the water bucket production should be automatically turned off.
So If understand you correctly, when you change the values of 2/7 storages to 25 buckets each, the other 50 will be distributed among the other 5 storages?
I'm guessing the other 50 buckets were already in the 2 storages. Is there a need to move them? Can't you just stop the water collecting and let the 50 buckets run out until the storage drops below 25, on which the water collecting will start again?
If the 50 water buckets are not in storages but are in transport or something, they will be forced into storages like you said. Or will they be forced into production (farm/beer) to create new items?

And if I'm not mistaken you can only link 1 storage room to each work roomID. So what happens if you have the forge but the storage room (1 out of 4) linked to it does not accept coal? How will coal be handled and distributed (among the other rooms) then?

I'm just asking to understand how the system will calculate thisAngel
04-02-2014 07:55 AM
Find all posts by this user Quote this message in a reply
Rasmus Offline
Main developer of Dwelvers
Dwelvers Developers

Posts: 3.619
Joined: Sep 2013
Reputation: 502
Post: #52
RE: Imp priorities
(04-02-2014 07:55 AM)Mastergoose Wrote:  
(04-02-2014 03:20 AM)Rasmus Wrote:  If a creature is assigned to a storage room:
-----------------------------------------------------------
- He should be able to do all the jobs that are assigned with the same roomID as him.
Do you mean with this that imps assigned to the storage room can do all jobs which are linked to the storage room?

No, that comment could be made clearer by me. It means that the imps assigned to a storage room can only work in the storage rooms. With the exception that they are able to deliver items to storage rooms that are linked to it and needs the items (or needs the items to deliver one step further).

I also wrote: - He should only be able to do jobs that means that he is delivering items to storage room.
This one is a little fuzzy, but as the storage room are linked to other rooms as well that needs water buckets for example, I don't want the storage room workers to fetch water buckets to that room. They should be confined to jobs that only affects the storage rooms directly.

(04-02-2014 07:55 AM)Mastergoose Wrote:  
(04-02-2014 03:20 AM)Rasmus Wrote:  If there are 100 water buckets out there. When the buildings that don't want any water buckets are forced to receive it, then the water bucket production should be automatically turned off.
So If understand you correctly, when you change the values of 2/7 storages to 25 buckets each, the other 50 will be distributed among the other 5 storages?
I'm guessing the other 50 buckets were already in the 2 storages. Is there a need to move them? Can't you just stop the water collecting and let the 50 buckets run out until the storage drops below 25, on which the water collecting will start again?
If the 50 water buckets are not in storages but are in transport or something, they will be forced into storages like you said. Or will they be forced into production (farm/beer) to create new items?

Hmm, so when I wrote that the "the water bucket production should be automatically turned off" I meant that the player don't want to store any more water than the 50 water buckets distributed between the 2 storage rooms, meaning that there is no point in introducing new water buckets into the production system. The water buckets that already are in the system will need to be stored somewhere, therefore they will be distributed between the other storage rooms. The water buckets will still be used for manufacturing new items, it is just that the buildings that produces water buckets will stop producing them. When the total amount of water buckets goes below 50 water buckets, then the production of water buckets will start again.

(04-02-2014 07:55 AM)Mastergoose Wrote:  And if I'm not mistaken you can only link 1 storage room to each work roomID. So what happens if you have the forge but the storage room (1 out of 4) linked to it does not accept coal? How will coal be handled and distributed (among the other rooms) then?

That is something I am working on, if I understand you correctly you mean that if we have 3 storage rooms for example, storage room A is linked to storage room B which is linked to storage room C. Storage room A gets the coal, storage room B don't accept coal, and storage room C wants the coal. Well, I can say that I don't think the player will be able to make a storage room not accept coal. Even if he does, it is more like a recommendation than a law, the storage room will get the coal transported to it, but it will keep on transporting it until it reaches a storage room that wants the coal less than it does. This can be a little bit tricky, but I really don't want the storage rooms to be able to reject items totally, because that will mean that a lot of items will just be laying around on the floors because no-one wants them. If a item is in the "system" it has to be transported somewhere, if we no storage room wants any coal and the player have 4 storage rooms, then the distribution will be that each storage room wants 25% of the total amount of coal in the system. If the player now wants all the coal to be in one storage room, then he can just make one storage room accept the coal and that storage room will want 100% of the coal in the system.

This could also mean some clogging up issues, and the player will have to make their storage rooms larger, or make another big storage room somewhere that only accept the items that are clogging up the system. If a storage room gets 100% filled up, then there will be a problem, maybe that storage room don't want a certain material, but as this material still needs to be transported through this storage room it will not be possible. There are two ways to solve this I think, either that the storage rooms has a "waypoint flag", that all items transported to the storage room will be put at this "flag", then the workers in that storage room will either transport it further to the next storage room or store it in their own storage room.

That the Dark Mother storage room can't be expanded can also be an issue, and to solve this I could give the dark mother room unlimited storage capacity, but this is nothing I will consider until I actually see the issue in the game play and no other solution is available.

(04-02-2014 07:55 AM)Mastergoose Wrote:  I'm just asking to understand how the system will calculate thisAngel

I like your questions, they make me think up solutions for problems I haven't yet started to deal with Tongue But even if this whole idea have a lot of room for the player to make mistakes, I think that will be a part of the fun for the player to make it all run smoothly Smile
04-02-2014 10:22 AM
Find all posts by this user Quote this message in a reply
Rasmus Offline
Main developer of Dwelvers
Dwelvers Developers

Posts: 3.619
Joined: Sep 2013
Reputation: 502
Post: #53
RE: Imp priorities
One step closer Smile

[IMG]replace_photbucket_link/RoomLinking.jpg[/IMG]
04-02-2014 10:37 PM
Find all posts by this user Quote this message in a reply
Seriously Unserious Offline
The Ninja Dinosaur

Posts: 1.607
Joined: Jun 2013
Reputation: 69
Post: #54
RE: Imp priorities
(04-02-2014 07:55 AM)Mastergoose Wrote:  I'm guessing the other 50 buckets were already in the 2 storages. Is there a need to move them? Can't you just stop the water collecting and let the 50 buckets run out until the storage drops below 25, on which the water collecting will start again?
If the 50 water buckets are not in storages but are in transport or something, they will be forced into storages like you said. Or will they be forced into production (farm/beer) to create new items?

I could easily see a need to move them out of the 2 original store rooms. What if both rooms are clogged up with water buckets so that the production rooms connected with them can't produce anything because there's no room in their connected store room to put the items, then the water won't be used up since the production rooms that need them aren't producing anything because there's no room in the storage because it's filled up with the water buckets that are needed for production... this is what's called a catch 22 situation, and hence the need to be able to tell the imps to transport the extra 50 buckets to other store rooms to open up room for the production rooms to start back up again, which will then get them consuming the water buckets clearing up even more space in the system.

For the above reason, I can definitely see a need to impose a maximum limit of items a store will accept before it refuses to accept any new items, to prevent the above situation from happening. If you do get an overfill clog happening to your production then you should have options to clear it up, like having items moved to a different store, build a new store, expand an existing store, or even order some items destroyed as a last resort.
[Image: 11619898803_7d3a89e6bd_n.jpg]
The Golden One!
05-02-2014 12:04 AM
Find all posts by this user Quote this message in a reply
Rasmus Offline
Main developer of Dwelvers
Dwelvers Developers

Posts: 3.619
Joined: Sep 2013
Reputation: 502
Post: #55
RE: Imp priorities
Hmm, okay, so I have been working on a method to solve this. In my latest screen-shot you see these "flags" in each room. The idea is that they works like waypoints. When a worker is going from one room to another, then he will use the "trail" between the flags to know the shortest route (This is another solution to make the path-finding even more efficient). The flags in the storage-room have another purpose as well, they will work as a loading zone, so all items the storage room don't want will be put below the flag, and from there they will be transported to the next storage room that wants the item, but only to the next storage room's flag. If the storage room want the item at their flag they will store it, otherwise let it lay or transport it to the next storage room.
05-02-2014 11:50 AM
Find all posts by this user Quote this message in a reply
Sebt Offline
The Evil Admin
Evil Admins

Posts: 1.567
Joined: Aug 2013
Reputation: 98
Post: #56
RE: Imp priorities
(04-02-2014 10:37 PM)Rasmus Wrote:  One step closer Smile

[IMG]replace_photbucket_link/RoomLinking.jpg[/IMG]

Hmm, I saw a something like 2D view of surface world or something, it will replace a minimap, so these connections will be visible from this 2D mode, so we could see every connections in our entire Dungeon, right?
I support The Venus Project & Resource-Based Economy - The feasible plan to get rid of scarcity, poverty, and other incoming global issues.
(This post was last modified: 05-02-2014 06:07 PM by Sebt.)
05-02-2014 02:58 PM
Visit this user's website Find all posts by this user Quote this message in a reply
Rasmus Offline
Main developer of Dwelvers
Dwelvers Developers

Posts: 3.619
Joined: Sep 2013
Reputation: 502
Post: #57
RE: Imp priorities
That is what I have planned Smile Seeing the connections between the rooms, seeing what items each room requires, seeing what jobs each rooms have. The more informative the better!
05-02-2014 04:10 PM
Find all posts by this user Quote this message in a reply
Seriously Unserious Offline
The Ninja Dinosaur

Posts: 1.607
Joined: Jun 2013
Reputation: 69
Post: #58
RE: Imp priorities
Will we also get info like how busy workers are in a room so we know it we have too many/too few and can fix the problem? IMO that will be important info to have, along with production info, and info on needed supplies to produce an item, like how many you have both in the connected store and how many in all stores. Also, available space in a room's connected store would also be very helpful in managing production.

But still, what you have so far is looking great. Smile
[Image: 11619898803_7d3a89e6bd_n.jpg]
The Golden One!
(This post was last modified: 06-02-2014 01:55 AM by Seriously Unserious.)
06-02-2014 01:54 AM
Find all posts by this user Quote this message in a reply
Rasmus Offline
Main developer of Dwelvers
Dwelvers Developers

Posts: 3.619
Joined: Sep 2013
Reputation: 502
Post: #59
RE: Imp priorities
I have been thinking about that SU, it would be enough if the room showed information on how many workers there are that is kept active. So if the player have two workers in a room and only one of them is working, then this should be displayed in the room so that the player can release one of them. Maybe even a message for this could come in handy.
06-02-2014 02:35 AM
Find all posts by this user Quote this message in a reply
Seriously Unserious Offline
The Ninja Dinosaur

Posts: 1.607
Joined: Jun 2013
Reputation: 69
Post: #60
RE: Imp priorities
It would also be helpful to know if a machine is idle due to lack of workers too, or due to lack of resources.
[Image: 11619898803_7d3a89e6bd_n.jpg]
The Golden One!
06-02-2014 05:27 AM
Find all posts by this user Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)


© 2013-2017 Dwelvers | Contact