Item Storage stockpiles/item containers

Continuing the discussion from Multi-level Stockpiles?:

Just to expand on @Geoffers747 post about silos and my earlier post. its a bit of a tangent and i wanted to try reply as new topic :smile:

People brought up dwarf fortresses bag bins and barrels item storage. For stone-hearth i feel we should do something different. we have a 3d environment to play with and it wouldn’t look as nice, on top of that its a rather annoying (opinion) micromanaging feature. Before i go on…

two things are required of any type of storage.

  1. it has to be visually recognizable, we are playing a top down game and we need to be able to see what we are looking at, be able to tell how full the storage is.
  2. it has to make some form of sense. you are not going to store wine in a wicker basket. but you could store it in a bucket if u wanted to. (the brewer was probably drunk) also u cant store 100 tons of stone in one voxel square.

Any ideas really have to fit those two requirements.

My idea is to take the simple approach, when a farmer gathers grain from the farm, he takes it to the storage and it is displayed in a sack on the stockpile with a few tuffs of grain sticking out. When you take some swords to the stcokpile it appears on a small rack. you wouldn’t need the tailor to make a whole heap of sacks, or the carpenter to make a simple wooden lean for the swords. It avoids the micromanagement, its visually pleasing, and with a quick look you can asses your storage levels.

When it comes to increased level of storage im a bit torn, not sure which i think would be better.
You could simple create a better type of stockpile, like a shelf, weapon rack, cupboard, or even a silo that can only store a few different types of items (you cant really store a bed of a shelf, or a shelf on a shelf, even if they go all small on the stockpile) Problem being that its a bit more visually restrictive, its harder to see with a glance whats inside a cupboard.

The other way is just make a more effective stockpile. i mentioned in the other post about my idea for shelfs. these would store items like a normal stockpile, except it has a few levels to it so you can store more in less space. this shelf could store all items in it, even shelves in item from.(shelfception) if you design the shelf right it could still give visual clarity so you can see how full the storage is.

too long, didnt read? Show your storage some love!
I am not afraid if people have a better idea.

6 Likes

I like your general idea here a silo for grains etc would be a good step forward you can store alot more stuff with a smaller footprint in your buildable area. But interaction might be a little harder to coordinate

  1. There would have to be additional animation for interaction with the silo.
  2. Tracking the Type of grain in each silo could be interesting you would have to label the silo or the game would have to label it for you.
  3. there would also need to be a counter / max storable for how much grain is in the silo at any given time so that you could manage it properly.

Still I like the concept its an interesting idea just management/implementation could get complicated.

Like the idea, I agree that with the visual stylings of SH there would seem to be a larger scope of what can be achieved with stockpiling items.

Just to expand on what I meant with silos, I fully anticipated sticking with a traditional stockpile as they;ve shown for the wood. Meaning that I’d build a multi-storey building with stockpiles on each floor.

I do wonder though, are you ever going to really run out of space on the stockpiles they have already shown? Especially in terms of weaponry, furniture etc. I mean, even something like a 7x7 grid gives you space for 49 items, and unless you want to be extremely prepared, it’s unlikely you’ll have this amount of items that aren’t the basic resources. Who is gonna have 50 swords sitting there? :stuck_out_tongue:

I would love to see something like a “general store” or “grocery store” that would have items stacked on shelves that villagers could place and retrieve, and have various shelves dedicated to specific items (such as foodstuff or devices of various kinds). These kind of shelves would also be visible in a “cut-away” view of such a store and have the added appeal of seeing villagers wandering down aisles “shopping” for various items that they may want or need.

Some items, like weapons, certainly could be put into display cases or racks as described above. In fact, it would be nice for individual villagers (especially soldiers) could put their combat equipment into an armor stand when it isn’t in use, or have weapons placed above the mantle ready to be grabbed in an emergency. Would villagers also have a private pantry in each of their houses?

This is also different from commodity storage bins, such as a wood pile, grain silo, or coal bin. Some things of that nature simply are expected to be merely a heap of stuff. Widely used commodities

Another issue to think about is how there might be “primary” storage areas accessible to the whole community, and smaller “secondary” storage areas and possibly even completely different visual designs on these smaller storage areas that would be “owned” just by one villager. For example, there might be a community coal bin available to anybody in the village, but a much smaller coal bucket that would be refilled from time to time for the village smith and used exclusively by just him. These secondary storage areas might even have some villager assigned just to deliver these commodities from the main village storage.

It is true that alot of the buildings function will be player designated, but we will need a few different items to give it the right feel. Problem is you also need to give them some functionality to get that feeling.

It is all good getting a muti floor tower with stockpile on each level, but if it only can store 1/5 of your food supply because its more effective to simply make a big plot on the ground, people will simply make big plots on the ground.

I would say to begin with the majority of people would deal with it this way, but there seems to be this overwhelming urge in people to organise things in an orderly and logical manner … or maybe it’s just me, I’d still chuck everything into the designated building regardless of how much space I needed!

1 Like

This Can of Worms opens up to several problems. :wink:

There is a Code problem. I know it can be modded but it is still not that easy to do. You have to track the amount of items stored, alter the graphic representation of the storage container and also let the people place and take away items when they need them. Not to mention the added pathfinding problems.

In any game design decision you must ask yourself: Is it Fun?
There is no need to complicate a system just for the sake of realism if it doesn’t make it more fun.

RPG gamers are used to carry a full inventory that a 30 tons truck couldn’t haul.
One of the main complains I received when I was modding Nwn was when I tried to introduce a realistic encumbrance system.

The annoying features of Gnomoria implementation of Crates and Barrels is that you never know how much stuff is stored just visually. You have to click and check the crates individually. Not fun.

2 Likes

I would like to point one idea, which was allready succesfully implemented in other game ( Timber and stone cough ). In this game, every category of items had its own, distinct stockpile. For food there were barels, for wood there were wood piles and so on. and it looked AMAZING. Am just hoping that SH will have something similar, becouse I just HATE those stockpiles on the ground, just: here is the area, you just make it a stockpile and everything will lie around on the ground. With the level of detail guys are puting to SH, it would be shame to overlook this. Btw sorry for bringing this topic from death, was trying to ask something similar and found this topic

3 Likes

Nothing to apologise for, better to ask the question in the relevant place! I’m sure we would have probably ended up merging it here anyway :slight_smile:

Dwarf Fortress and Gnomoira handle it in a similar way I believe? In that you can have a barrel or crate which takes up one space on your stockpile but can hold 30(?) items that would fit in the barrel or crate - depending upon which storage item you had depended on what it would hold.

There does need to be some sort of storage option in place otherwise you’re just going to run out of space … I’d personally probably prefer something a bit more interesting than just here’s an item that holds a larger amount of things … for example certain buildings could perhaps house a very large amount of an item? So a Silo could hold a lot of wheat or flour? That sort of thing?

You could have a coalshed for coal, some sort of butcher storage for all the meat - that sort of thing.

It would be a bit more work than just a storage item but I think it’d be pretty nice.

1 Like

right, well we know from the recent blog posts that individualized stockpiles are already available:

Here you can see that “Stockpile No.2″ (yes, you’ll be able to rename them), has been configured to just store wood. So our workers are carrying chopped wooden logs into that stockpile.

its (perhaps) not a huge leap to have a customized appearance for a stockpile once it reaches a certain number of items? let’s say 4x4 space, filled with logs, changes into a new visual, to indicate a “full” stockpile?

i dont really have an issue with the stockpiles remaining as they are now (or at least, as we’ve seen in the posts)… but the idea has merit… :smile:

2 Likes

Thx both of you for answering. Problem is SteveAdamo, that as Geoffers747 said, you would run out of space, or have tons of space dedicated just to stockpiles, and thats not pretty.

Geoffers, your idea of structures/stockpiles is just wonderful, have something like that in mind, but I didnt clarify that enough :slight_smile:

I will always accept praise and compliments, consider yourself climbing the list of my favourite people!

But yes, it would be interesting to see once your settlement starts developing and becoming larger how you handle storing large quantities of items - I mean obviously you don’t handle these things yourself, but there’s got to be something more attractive than a big pile of stuff somewhere.

Apart from the links @SteveAdamo provided we don’t really know much in the way of what to expect from item storage in general, but buildings or structural responses to the demands of stockpiles would definitely be an interesting way to handle things.

1 Like

right, well a lot of this will depend on how efficiently resources are used and also on player preferences… some players (myself included) are hoarders, and will try to amass as many resources as possible (at the risk of attracting the enemy’s attention)… some, will only acquire resources as needed for a given task…

diva… :dancer:

2 Likes

Well we will se what devs will throw at us later in the developement. At this point, am just itching to get my hands on the alpha release :slight_smile:

Sorry for bringing up an old topic, but i’m a supporter from the start of the kickstarter and have been lurking around.
With the latest video, i saw that stockpiles don’t feel very polished yet. I’m a programmer and think that the solution should be something simple, so i came up with an idea:
I think a nice way to avoid the stockpile problem is by making the workers jump (will already have to be taken care when they are walking on uneven terrain) over stockpiles and only drop what they are carrying if:

  • the place where they are dropping is inside the area of the stockpile
    AND
  • the place where they are dropping has all eight areas below it already filled.

This lilltle logic would make workers create pyramids with the material they are stocking and would guarantee the natural creation of “stairs”, in other words, they would have to jump only one box high each step.
Since jumping could take longer than walking, the player would have a natural maximum size for the pyramids, since beyond some point it would take a lot of time to place a block in the top.
I think it would also be impressive to have huge piles of stone or wood, showing all the neighboors that you are powerful.

1 Like

That only works for stockpiles of only one resource type. For mixed stockpiles - which is the default - this behaviour would be really annoying to implement (in order to form pyramids, you would have to “spread out” different resources as much as possible - and if, at some point, the 3x3 grid has been spoiled by another resource type, you suddenly need to fall back to a 3x3-with-9-different-resource-types-possible behaviour - i.e. the current one).

I could see it working as different, mod-based idea, but not in vanilla. There are simply too many things to consider for so little gain (what items can be stacked? How are items stacked? How is the position of items determined? How are you dealing with stockpiles that are not accessible from one side, for example because there is/was a wall?

Many ifs, and probably some work, that I would rather see invested in more core features than such more-or-less eye-candy. I’m sure some modder will provide, if necessary I’ll do it myself (but not as pyramid, more as… well, you would see)…

In fact, this idea only works with stockpiles of one resource type.
If you enforce the two conditions I mentioned, you would never have a situation of unacessible stockpiles.
Defining what items can be stacked is as simple as defining a variable.
Itens are stacked according to the rule I mentioned, from closest possible point of drop.
I dont think a one grid high stockpile is really scalable, specially if they implement mining.
I also believe objects like swords and armors could have a special storage location, like a building.

The same rule used today to specify if the worker can drop the resource in that stockpile could be used with another condition of the point of drop also having the 3x3 grid below it already filled with stackable objects.

Either way, you would need to have mixed stockpiles - resulting in two different stockpile types which would need

  • Coding/Maintaining/Testing of two different storage systems, including tagging items, AI and API
  • Explanation to the user: Why are there two different stockpile types? Can I only use the single-mode stockpile for stone? Why is my stockpile not filling up with all the stuff I’ve harvested (=> clear distinction between stockpile types, explanations and GUI hints for each)

Issues that will arise upon trying to implement it:

  • The stockpile system isn’t even complete yet. You can easily verify this with the many-items-on-one-spot bug that is around (although this is, more or less, a real racing condition I believe - I don’t quite see through the stockpile system, as in, while browsing through the code I couldn’t see anywhere how the AI decides where to drop it, merely when there is space available - and that’s a race).
  • Ghost entities (i.e. every miniaturised furniture item as well as any stored object) are not solid. It’s preferable to keep any amount of physics to a bare minimum, this includes collision zones.
  • There are no animations for climbing up/down or reaching down (below-“ground”) to pick something up.
  • There is no code to deal with such an idea yet. While it is possible to place an entity at any location, including the air, the most used function radiant.terrain.place_entity does just as its name suggests: It places the entity directly above the terrain. Of course, this would not be so much of a problem (except consistency) because you had to
  • Implementing a storage manager that keeps track of items and changes the way they are dispensed. Currently, the AI approach is “find item X, reserve item X, go to item X, delete item X, create ghost item that looks like X”. If you had a stockpile where this was not possible, you would need intelligent logic to avoid that the AI tries to pick up items that are currently not surfaced (scenario: 100 items in a pyramid, 100 workers sent to retrieve them. The first 99 take the top 99 items, but are very far away. The last worker is however very close and therefore tries to take the item in the middle of the pyramid).
    You would need to rewrite the AI in a manner of “goto location where items of type X are available, once arrived ask manager to get one, goto item X, delete item X”. It changes the flow as the AI is not interacting with a normal item anymore, but much rather with a storage manager. This manager will need to do the almost impossible (alright, it’s not impossible at all, just a bit frustrating to implement I would guess):
  • Keep track of incoming and outgoing items, including where they are or should be located
  • Have a ticket system that ensures that an AI that requests an item will receive one upon arrival (i.e. no starvation)
  • Ensure that items in the storage cannot be interfered without talking to the manager (i.e. no rogue taking of items without speaking to the manager)
  • Somehow deal with “Entity was requested, but requester died/lost interest on his way”, although I presume the reservation system that is already in place could potentially be used for this along with some fake items

Basically, it’s going to get complicated and messy and not at all easy by “just adding a bit of 3D”. Even I wouldn’t want to touch the stockpile stuff right now as it looks highly unstable.

It’s making more sense than any sort of stacked approach, especially with mining. You won’t get cute little standardised 1m3 cubes that can easily be stacked. The same applies to any other resources: They are not filling out their square completely (and the wooden log isn’t even a cube if I remember correctly). Walking on those would also prove to be somewhat dangerous. But this my view of it, as a bit of a more realistic one. For me, stacking stuff (and walking on it then) doesn’t fit into the game.

We don’t know how dire the resource situation even becomes. The current problem is that you have lots of resources that are easily obtained and nothing to do with them. It’s easy to complain that you have a bazillion Unobtainium if there’s nothing to do with it. Once buildings become useful (especially in the sense of “home for workshops”) and workers have more tasks to do, gaining resources will become a more tricky, background task - instead of being the primary thing to do like it is right now.

As mentioned above, while I don’t know where exactly they are doing that (the only reference I can see would take the original entity location, which cannot be true - I’ll just go ahead and say it’s somewhere hidden in-between entity_container and destination which are both C if I’m not mistaken) and even then, it’s not completely implemented and/or bug-free. The last thing I would want to do in their place is add another layer to that whole thing. The whole thing works on 2D if I’m not mistaken, so this would mean a major rehaul.

All in all, I don’t think that we will see this feature until well after the release in this form, not from them anyway. I still don’t like the idea of having just a storage pile “grow upwards” as it really doesn’t sound like something that would be done with anything that is not some sort of “semi-liquid” such as dirt and similar.

1 Like

Thanks for your answer,

But I believe we digress, we both agree that this is not something that should be implemented right away, and since discussing about the programmatic aspects of this is an exercise of futility without having the code, I think we should talk about our vision of the game.

When I bought the game in kickstarter I believed it would be a game about crafting as much as it would be about building, not only building houses, but structures, statues, dams, castles, anything that my imagination was capable.

I also believed i would be able to change the terrain around me, creating hills, mines, cliffs.
With this vision in mind, i would like to see some things in the game like: moving blocks of dirt or stone from one place to another, making big piles of extra stone for my buildings, leveling the terrain by adding layers of dirt or stone, making roads, etc.

This actions require being able to remove blocks of resources, placing theese said blocks wherever i want them. And to make this operation, i would also need to stock those blocks.

Having stockpiles specific for each type of block is something that i believe is totally necessary for the management of big cities.

My vision is that workers would place blocks and change the terrain, and the difference between placing a block in a stockpile and one in the world is that stockpiles can only be built according to the rules i mentioned(only pile in the shape of a pyramid), but using the resources in them is fast. In contrast, placing the blocks in the world requires more time(when placing and when mining), but they can be placed in any configuration(allowing the creation of walls, dams,etc)

Obviously, this vision is about “semi-liquid” resources, specially dirt, stone, sand, wood, and not for objects that are used by workers like armors, swords, chairs…

Being able to do these things is one thing that made me buy the game and makes me follow every update with excitement.

A small thought. Since we are working in 3D, maybe shelves could be a stockpile that’s on a wall rather than a floor?