-
Notifications
You must be signed in to change notification settings - Fork 4.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Inventory System Overhaul - High-Level/Design Concepts #23978
Comments
Has discussion about this been happening elsewhere? It's a shame such a good start to an important issue hasn't been met with more vigor. Regarding inference, I would the following steps should work:
Rationale for step 0: we don't want to have a bunch of items with a little bit of space left. Fill up items as much as possible before moving to new ones. Start with rigid containers, as they are already taking up space even when empty. Rationale for steps 1 and 2: Ensures that similar items are grouped together. What I mean by "category" is detailed below. Rationale for step 3: Allows the player to "teach" the inference system where it wants what items. The only issue with this heuristic is the nebulous use of "category". Is there a way to define categories without overthinking the system? Off the top of my head: category by size, category by "crafting tab", category by use. Choose up to one of each. |
"Discussion" has mostly been happening off-screen: the occasional conversation with Kevin or other contributors Above PointsI'll go down your points one by one: Inference
On the issue of CategoryI feel like the current category system would be relatively adequate, given
I am considering creating a flowchart of sorts to visualise and organise the Several other issues/considerationsFree CorrectionKevin has suggested to allow the player to correct the inference system Access Speed - Item Size & Item NumberAnother tweak suggestion: the access speed for a given item should Dynamic EncumberanceNon-rigid containers should have a base encumberance and maximum |
Has anyone discussed the possible issue of this implementing "realism" at the cost of gameplay/dev sanity? I am thinking about both the First In, Last Out and the "hard to find things in a container full of things". For example, I pack a bag and put my socks at the bottom. I can quickly pull the socks out, messing up everything else, or I can carefully unpack the back, grab the socks, and repack the bag. Will this provide a meaningful gameplay experience? I don't think the effort in coding an Inventory that can do that will be worth it. |
I don't think that order of packaging items is actual now. First of all it
is necessary to implement basic interaction with containers.
P.s. sorry for my English.
пт, 12 окт. 2018 г., 0:28 Jason Gilbert <[email protected]>:
Has anyone discussed the possible issue of this implementing "realism" at
the cost of gameplay/dev sanity? I am thinking about both the First In,
Last Out and the "hard to find things in a container full of things". For
example, I pack a bag and put my socks at the bottom. I can quickly pull
the socks out, messing up everything else, or I can carefully unpack the
back, grab the socks, and repack the bag. Will this provide a meaningful
gameplay experience? I don't think the effort in coding an Inventory that
can do that will be worth it.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#23978 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ACf7Q4uyR5ry3qeaHnGm-Z3rIswqvaHnks5uj3-7gaJpZM4UheCz>
.
--
Алексей Смирнов
|
Rather than "the smallest container", use "the container with the least free space" for greater efficiency. If the player's 10L backpack has 9L of stuff in it, and their cargo shorts (1.75L capacity) are empty, a plastic bottle should be placed into the backpack, before the cargo shorts, when picked up - if the shorts were picked due to being a smaller container, then there'd be no place left to fit the makeshift crowbar they try to pick up next. See the multiple knapsack problem, and related Wikipedia articles on combinatorics, for more on ways to optimize this kind of thing. |
No activity for 3 months, closing in favour of #3671 |
Inventory System Overhaul - High-Level Concepts
This post is part of the Inventory Overhaul, please check the main post for more information.
This issue concerns itself with the general design aspects of the new inventory system: how should it work, and how it should be presented to the player from a theoretical/gameplay perspective. This shan't involve any code or technical aspects: only design.
Please discuss down below- when the discussion reaches (some sort of) conclusion, I'll generate a report outlining the new inventory system in detail based on feedback.
The design goal is to implement an inventory system that:
Inference, Macromanagement, Micromanagement
I present three individual levels of interaction for the inventory, each suiting different kinds of playstyles/players.
Note that these three terms refer to design concepts, and will not be explicitly divided up/separated in-game: these provide some kind of foothold for theoretically formulating ideas and functionality for all kinds of players. Do also note that these design concepts are not 100% absolute: the line between Macromanagement and Micromanagement may blur in some areas.
Design Goals
This is the general draft for the way the inventory system should work, this is mostly the result of my own ideas/planning along with a small discussion with kevingranade.
General Overview
Ensure the inventory system is no longer a flat inventory built into the player, whose volume increases with worn clothes. The new inventory system must instead have individual containers that have their own built-in inventory.
Inference: the user can access this inventory in a way that's mostly similar - if not equal to - the current system: a flat inventory view sorted by category, that the player can use/drop/grab items with. The inventory manages most of the behind-the-scenes operations such as deciding which item goes into which container.
Macromanagement: an optional tree view is accessible for the player, that roughly shows which item remains in which container, the player may move items up/around the tree if they so desire.
Micromanagement: another optional view would be a combination of two windows, one displaying the containers the player is wearing, and the other the contents of one container. The player can switch between containers using
>
and<
, move items explicitly to a container, select items in there, move them around, etc. Could substitute/merge with theAdvanced Inventory
.Access Speed
The amount of time required to store/access items depends on the container, and where the container is located.
A backpack might take longer to access than someone's pockets, and a backpack within a backpack within a backpack will have the access time of three backpacks (or longer). Moving items from bag to bag takes time too.
Item Pickup
Ensure that the inventory system can infer which picked up item should go where, unless the player chooses to interfere.
Inference: the inventory system makes a couple guesses based on the volume's item and weight, and general importance. For example, it might attempt to put a gun, or grenades in a easy/quick-to-access pocket, while putting items such as iron lumps or empty bottles in less important bags.
Macromanagement: the player may quick-tag or change the broad behaviour of some containers: players may tag/rank certain items as "quick-access" to prioritise certain items being put in certain bags. They may allocate or assign certain categories of item to certain containers, put items in the "last selected container", etc.
Micromanagement: the player will have access to more esoteric, complex forms of item allocation: they may allocate certain items in certain bags, have items be distributed evenly, limit the amount of items in certain bags, etc.
Other Tweaks
Rigs, Pockets
Certain items such as
chest_rigs
or pants may - for example - only allowX
amount of separate items, each withY
maximum volume- kind of a way to emulate separate pockets."Quick-stack" & "Quick-stack to surroundings" & "Quick-stack to surroundings by category"
There should be a function that attempts to sort the player's inventory, stacking items whenever possible. There should also be accomodations to instantly empty the players' inventory to nearby tiles, for example by - should the player have 8 plastic bottles - look around the environment to look for a stack of plastic bottles to deposit these to.
The text was updated successfully, but these errors were encountered: