Question about Inventory Item Handling?
Closed this issue · 13 comments
Hey Whales, I'm really excited to see you working on this project. I noticed your working with the inventory handling and I figured now might be the best time to ask about this. In Cataclysm each Item is stored on the Player, so that if your fully loaded and your suddenly attacked, you have to drop each item individually in order to bring your encumbrance down. In Cata2 are you going to have each container track its contents so that you could for example, drop a fully loaded backpack, including its contents, in a single action to make yourself better able to melee?
Almost definitely not.
In Cataclysm 1, inventory management was pretty bad. For Cataclysm 2, I'm trying to make it a lot easier on the player. Forcing them to manage what article of clothing holds what item would be a nightmarish step in the wrong direction.
As usual, I could be wrong. I can't think of a way to implement this that wouldn't be a horrible burden, but if someone else can I'm open to ideas.
The issue of "dropping your backpack to enter melee" is a valid one. In C1, the idea there was to force dedicated-melee players to simply carry fewer items. Of course, that didn't work; players want to have their cake and eat it too, and the engine allowed them to do so by dropping their backpack when entering melee.
My planned solution, for now, is just to remove backpack encumbrance. It's not ideal, but it's the best solution I can think of.
I see what you mean. One potential middle of the road solution would be to track items considered "in pockets" separately from those inside a container. Things like backpacks, plastic bags, and fanny-packs, could be grouped separately from clothing for the purpose management. So if you were wearing a backpack, fanny-pack, cargo pants, a hoodie and an ammo belt, the program could track them as 3 distinct inventories. this would only be for the purpose of organization and they would still be displayed as a single Inv. list. the only micromanagement could be a quick choice when you pick up an item about where you want to store it.
Maybe if dropping a storage item leaves more items then you have room for, it drops items until your item volume is <= your maximum volume. Then when picking up a storage item on the same square as another item, ask if you want to put it on. If (Y)es, add items from the ground until maximum volume is reached or you cannot pick up any more items.
Making the player track three distinct inventories is exactly what I want to avoid. Having to pick where to stash something, and inevitably having to move stuff around later on, is what I had in mind when I said that per-item inventory would be a burden.
Superninjakiwi, that was something I'd planned for in C1 (and kind of implemented), but it's still a large chore to be repeated every time you drop your backpack (or whatever). Automatically picking up items takes away the easiest part of that chore, but it leaves the larger, more annoying part of picking what to drop.
Again, the easiest (for the player) solution seems to be to remove the situation where the player picks items to drop (or to keep in their backpack), by removing the reward for taking off your backpack. The backpack can still be destroyed, and items will have to be dropped then, but that's a relatively rare occurrence.
I was assuming that a system would be in place that automatically decided which items to drop, such as either tracking most recently picked up items, or using a semi random number generator. If there is no way to avoid having the player decide what to drop, then I must agree that such a feature would be more of a hassle then it's worth.
Oh, I misunderstood. Random or chronological dropping is definitely an option, but I remember in C1 that it wasn't a popular one. Players would instead drop items before dropping the backpack, to gain control over what to drop. That can be foiled by making dropping items take time I guess... it does make dropping the backpack a potentially strong drawback, which is kind of what I want.
So that could work! I'm sure everyone would complain about not getting the choice of what to drop, of course :)
while there are technically three inventories, the player only needs to see one. you could have a tag on the item indicating where it is. I also think it might make it easier if certain items automatically sort to the best container. i.e. a lighter is small and would automatically be stowed in clothing. I think of it almost as a sorting system within the inventory, you could have it auto sort to maximize space. this could also open the possibility for things like mission specific load-outs. for instance, if I need to go on a long scouting mission I'd grab a bag that is stocked with alot of provisions, and if I'm doing an assault mission then I'd grab a bag with more ammo and medical supplies. I agree that the player shouldn't be forced to micromanage his inventory, but the ability to compartmentalize could open up a lot of possibilities for managing NPC's both as far as load-outs and when it comes to setting up missions. Superninjakiwis idea could be used to eliminate the micro management aspect for those who don't want to deal with that
Yeah, I get that the player only sees one, but they still have to manage all three - decide where an item goes when they first pick it up, and move items around later on. Autosorting might work okay, but I'm not sure what it would look like, and whether it would fit all players' needs. At the end of the day though, it's still an extra thing for the player to be aware of and keep track of, no matter how it's done, and like I said, we need to be moving in the opposite direction from that. Picking a load-out can be done just fine without the complexity of storing that load-out in a specific bag; just pick the items.
Seriously, How did you make labels on you title?
I don't understand the question...
nothing, just seen a enhancement on his title right, and I also got mail for you, whale.
If only we can have a forum...
Oh, the "enhancement" label was added by me. Not sure if others can tag issues.
Anyway, closing this for now. If anyone has a specific suggestion for how to implement inventory - specific to the point of including pseudocode, or similar - please open a new issue. Better yet, make a pull request with some actual code.