The site uses cookies that you may not want. Continued use means acceptance. For more information see our privacy policy.

Inventory Management in Video Games

How inventories work in games and some modest suggestions to improve them.

Crafting and inventory systems provide a good time-sink to have players pick up items, spend a bunch of time figuring out what to do with all that junk, and then craft some of it into even more junk they also have to deal with. The UI is often clunky and needlessly repetitive, making it more of a chore than it needs to be.

Most game inventories are one of two kinds, depending on how carry-weight works. Some games assign each item a weight and add up the cumulative weight of the inventory, and above some value the player is encumbered or overburdened. Other games simply have a finite number of item slots and stack limits on how many of the same kind of item can be in one slot, and once filled, the player cannot pick up more items.

The carry-weight game is somewhat more realistic, but it also tends to be more tedious to manage than slot-based games. For example, a common problem is storing items. How it currently works:

  1. Open a container and select the item to store.
  2. If the number of that item is below some threshold, you can only transfer one at a time. (A side problem of this system is they don’t explicitly say the UI works this way. You just find out through use.)
  3. If the number of that item is higher, you’re given a clunky way to select how many to transfer. (Either a scrollbar or up and down arrows to increment/decrement to select an arbitrary number.)

There are several improvements possible:

  1. Provide a grid of all choices. This is easier than getting to the right number by incrementing or decrementing or a slider.
  2. Allow the player to specify a retain value: the number of the item to not store. In systems that use carry-weight rather than slot-space, the user doesn’t want to carry 1000 units of even light items because that adds up. Let them specify how many to keep once and they don’t have to bother choosing.
  3. Temporarily create an escrow column to list the items changing places. This makes it easier to undo mistakes because the items haven’t vanished into the long list of items in a container.
On the left, a pair of arrows above and below a number shows a normal selector. On the right, rows of ten shows an improved alternative.
Example of picking the specific number of items by displaying full rows of values.

Another issue with carry-weight tends to arise in sorting. They either sort by stack-weight or individual item weight. In the stack-weight case, the problem arises when you start transferring from the stack and its collective weight drops enough to reposition it in the list. Suddenly you’ve lost that item and have to go find where it was. That would be fixed by ensuring, even for a low stack-count, that you can transfer exactly the number you want. The retain value would do that.

But sorting by the weight of the individual item is worse. You could be carrying a billion pocket lints and yet the sort does not put it at top, so you have a much harder task of figuring out what’s weighing you down.

One of the things games could consider doing is providing configuration files for these kinds of things. It would be fairly trivial to implement and players could easily write their configs offline and reuse them across playthroughs, share them, etc.

Inventory management isn’t supposed to be a chore, and making it more universal and do more work for the player is something that developers should think about.

How I Track Games to Buy

Lots of games to consider buying, so here’s my method for keeping track of them.

One year I made a spreadsheet, but it was a pain to update/maintain. Before (and after) it was just a text file listing. But for a few years now, I use bookmarks in Firefox. The URL of a game’s store page is the closest thing to a key value, and having the minimal data associated with it in the title is quicker than trying to manipulate it in a spreadsheet and flip between that and the browser.

When I see a game I might be interested in, I bookmark it into one of the following folders:

  1. Buy it.
  2. Conditional on price or possibly whether ProtonDB gives enough reports it works (for non-Linux games). I distill that information into something like: “p? (<$20; w+) TITLE” where p? means “does it run okay on Proton?” If a game does run okay on proton it gets p+ instead. This also now includes games that had exclusivity on another store (w+ means wait a year, explained more below).
  3. Unreleased games that look promising. I’ve never really done preorders. (This is for truly unreleased games, not ones in early access; I don’t have a problem with early access games, if there’s enough content and stability to them to buy them in their current state.)
  4. (Rare, but there) VR-exclusive games that maybe I’ll buy and play someday. For now I lack the necessary reality hardware.
  5. (For those that graduate through the system) Bought games, which are nested inside of a dated folder to track when they were bought.

For the ones I do buy, I add the price I paid (though it happens when I’m deciding to buy them, as I use it to figure out how much I’m spending before purchase). After I’ve played them, I also add a prefix of up to three exclamation points for titles I thought were really good buys.

About 30% of the games I bought last winter got at least one exclamation point. More of those came from the conditional set than the definite-buy group (though the conditional group was slightly under twice the size). On average, for conditional games, the sale prices were slightly below my cutoff price (within a few dollars).

The conditional price is based on several signals, including reviews, particularly negative reviews. If a game is noted to be shorter or lacking in some specific way that makes me wary of buying it, but it seems salable at a lower price (often, reviews note that: “wait for a sale”), that becomes the condition.

The Proton condition is generally less relevant: by the time I play a game it probably works in Proton/WINE. But some games have notes from players for how to avoid crashes or increase framerates, so ProtonDB is usually worth checking for non-Linux games.

The wait condition is because of the store exclusivity some games have now. I disagree with that practice, so I make a point not to buy a game that was exclusive for a full year after its exclusivity expires. There are a ton of games to buy and play, and while many great games get exclusivity, a far greater number do not play such games with their customers. If you want to play games with your company’s reputation by making exclusivity deals, expect to be judged for it. Maybe the money is worth it, but that doesn’t mean gamers have to respect the decision.

Why not use Steam’s wishlist feature? While there is some convenience to that feature, it doesn’t allow for annotations as my bookmarks system does. There are also some privacy implications to wishlisting, but I’m not sure what call I’d make if the wishlist system were more comprehensive.

A few statistics: I currently only have one unconditional game in my list (likely more reflective of not having reviewed my conditional list and promoted some out of it). There are 41 conditional games, and about a third are holdovers. Some didn’t meet my price last time, and others I might decide against getting. There are also 19 unreleased games I’m looking at.

In terms of satisfaction, some combination of luck and effectiveness I didn’t really feel like I had any duds in the latest set of games I bought and played. On the other hand, I don’t necessarily remember all of them from their titles. I remember most, though, and the ones I don’t couldn’t have been particularly bad, because I definitely remember the games I’ve bought and felt like they were a waste—some because they’re just bad, but others because they’re not for me.

That last grouping is particularly interesting to me. Even for games I don’t buy or even consider, some sound like they’d be cool if I enjoyed that type of game. Others feel like if they had a different concept or changed the gameplay (akin to what I discussed recently about Cortex Command), they would be really awesome. There are some games that really nail an aesthetic, but the gameplay just isn’t there.

(You can stop reading now unless you want to hear some brief thoughts on Firefox’s bookmarks system.)

The biggest problem with the system is the lack of polish for Firefox’s bookmarks system. They still don’t have a tab-based bookmark browser, for example. They’ve tried to get that done (getting so far as to even have a version hiding behind a preference at one point, if I recall correctly), with some good work put into it, only to have it skim off the atmosphere before it could land, and now it is bitrotting as it drifts through space. Oy.

To try to look up a game quickly, the easiest way (if I recall its name) is to prefix my lookup with an asterisk in the awesomebar (which restricts it to bookmarks). E.g., “* Amnesia” would show Amnesia: Rebirth, a currently-unreleased game I’ll look at once it’s released (I enjoyed SOMA by the same folks, but while I have played at least a half-dozen horror-style games, I still have mixed feelings about the genre in terms of the gameplay mechanics involved and the lack of player agency beyond run-and-hide).

But if I don’t remember a title, or just want to browse, the bookmarks menu is cumbersome when you’re trying to get into folders inside folders inside folders in a cascading menu. A basic iconized file browser would feel much nicer.

Scores and Gaming

Thoughts on game scoring systems, which help make a game a game.

I recently played Cortex Command, a 2D game similar in some respects to Terraria except rather than being built with blocks, it is built with pixels. You are a brain in a vat, and you can control soldiers and robots to assault against another brain in a vat (also in control over forces).

It took a bit to get into the game, to get a feel for it. It does have a tutorial, but the initial experience is rather clunky until you get a feel for it. The tutorial only gives a sense of what the game is. It’s a game about digging (you can mine gold to buy more forces) and assault in a pixel-destruction environment.

The tutorial has a small pile of dirt you dig, with gold in it, but in my first attempt it wasn’t clear how much digging I would be doing in the game. They should have buried an object to dig for, just to make the point clear.

It’s a fun enough game, once you learn the ropes and begin trying the combat challenges (called scenarios). But it doesn’t quite gamify itself enough.

I’m currently playing AaaaaAAaaaAAAaaAAAAaAAAAA!!! for the Awesome, which is another simple enough game. You jump off a starting point and fall down. You get points for falling close to buildings, among other things. But A for the Awesome has something going for it that Cortex Command lacks: a point system. That’s really all it took to make something that would seem about the same (a fun mechanic without a lot beyond it) into a game that has more depth. Counting up the scores at the end, and seeing what points are needed to get five stars really gives the game a different element that it needs. A challenge, something to dig for.

In many games, there is a narrative structure that provides that challenge. And there may be upgrades that the player can seek out along the way. But these goals, these challenges, are what makes it a game. It’s not just a simulation, but it’s a mountain to climb.

That’s what Cortex Command seemed to lack. It didn’t track points. How did I do last time? Can I do better this time? The past didn’t exist. It was a blank slate every time. That lack of continuity, of any kind of goal, made it less of a game, less likely to draw you back to try again.

It was still a fun enough experience, once you got into it. Same with The Long Dark‘s survival mode in some ways (though they have a story mode that’s really great). Surviving can go on for ages, but every time you start it’s a blank slate again.

Maybe The Long Dark‘s survival mode could add a version more like what A for the Awesome does. I believe they are working on more challenges, which are separate from both survival and the story. Anyway, fun games. Time to go jump some more.