Preferable way to implement single-item carry limit?

As someone who likes to use a choice-based system (Ink) to implement classic parser-esque “rooms, items, and puzzles” gameplay, I’ve thought about using a single-item carrying limit as a way to work around some of the issues with “item use”-style puzzles in a choice-based setting (as discussed e.g. here). Obviously this would get annoying with a very large map, but I think it would be reasonable with a smaller/more constrained map.

The question is: when the player wants to pick up a new item, what’s the best thing to do with the item they’re currently holding? The natural option (that you’d expect in a parser game, for example) would be to drop it in place, but an alternate option is to have it automatically return to its original location.

As I see it, there are several advantages to the “return to original location” option:

  • player doesn’t have to remember where they dropped things
  • no risk of player dropping an object in a location far from where it’s supposed to be used, or in a location that will unexpectedly become inaccessible
  • world model doesn’t need to support dropping items in arbitrary locations (thus easier to code in e.g. Ink)

However, the disadvantages:

  • it’s less physically plausible, requiring some suspension of disbelief, or maybe a “you return the X to where you found it & pick up the Y” handwave (but what about e.g. returning an apple to the tree???)
  • less idiomatic, probably needs to be tutorialized somehow
  • player needs to remember where each object originates
  • player-friendly level design would need to put each object relatively close to its intended use case

Any opinions on which of these is better? Or is the idea of a single-item carrying limit just inherently annoying either way?

3 Likes

I can see the arguments for both but personally I’d prefer the drop-in-place approach - I think I’d find teleporting objects really immersion-breaking from a narrative perspective (unless there was in-world logic for why this would happen).

Also, if the player is aware of the limitation and is also able to drop carried objects at will, I can see that in itself being a fun strategical challenge (like deciding to put them all in one spot for easy access, for example)

4 Likes

If the situation is an Adventure-classic “explore the world and pick up anything not nailed down,” I think players will very strongly expect objects to stay where they’re put. It’s part of the implicit object model.

But not every game puts you in that situation. If the map is constrained, the situation may be constrained as well, which can give you all sorts of useful excuses. At a cocktail party, you can only carry one drink at a time; when you pick up a new one, a waiter discreetly tidies the old one away.

5 Likes

I guess a third option is to let players carry around multiple objects in a bag, but only "wield’ one at a time, and only display contextual “break door with axe” etc. options based on the item currently wielded. So it doesn’t prevent brute-forcing the solution, but it does reduce/avoid giving away solutions by accident to more-or-less the same extent that a single-item carry limit would.

2 Likes

But if that’s acceptable, you may as well just make a “use item” command, no?

1 Like

Having a “use item” command introduces the issue of having to respond appropriately to “incorrect” attempted item uses, which is the sort of authoring annoyance I’d like to avoid by using a choice-based system instead of a parser. Plus, IMO it’s cleaner & more elegant to not let the player try stupid things that won’t do anything, rather than giving constant “you can’t use that here” messages.

(Plus, in Ink it’s really easy to display contextual options in response to what the player is wielding, but somewhat more annoying to try and insert a “use item” option into every interaction where the player might conceivably want to use an item. I tried the latter in a point & click game once and I don’t feel like it turned out that well.)

2 Likes

Good points, but I think it might feel a little hostile, like the game is pretending ignorance. I like disappearing items, maybe with a few exceptional items that stay where you drop them?

1 Like

At least in the example of an apple you picked from a tree, you could at least explain that one with something like “The apple tree bears more fruit than you could ever carry” and “You discard the apple in a nearby bin” or “You eat the apple to free up your hands”. And of course, if the setting is a mansion, you could explain dropped items not staying where they are dropped with an overzealous housekeeper who is constantly stalking the halls looking for out of place things to tidy up.

Of course, one work around for source and use not being close is a map that lets you click on visited rooms the player should logically know how to get to as a form of quick travel. Bonus, it saves the tedium of backtracking.

6 Likes

To be honest this sounds likely to be a lot more popular than a single-item inventory limit. Inventory limits have not exactly been historically popular with parser game players. Detectiveland and its ilk provide a good example of a natural-feeling “hold one, carry many” interface.

1 Like

I tried to translate a lot of parser conventions into Alice Aforethought, one of which was several portable objects and an inventory. I know there are decent inventory solutions in Twine using arrays and such, but it is a very difficult prospect. In my experience limiting the player to one held item wouldn’t make it easier. The problem is if you want object permanence. The problem in Alice was coming up with more elaborate reasons that the player couldn’t use every object in every location.

In my view, the biggest hassle is allowing the players to drop items in place. The easiest solution: There’s no inventory limit. The player can pick up a hundred things and doesn’t need to drop anything except in its destination location - the magic carpet you bought in the rug store goes on the lofty parapet so the player can get the cutscene about the magical flight. Consider that inventory items are conceptual story elements and not physical objects the player needs to keep track of or fit into bags or crowd a table. If you must, you can lampshade some of this in the prose: “You pick up the floor lamp and evaluate this would be really useful somewhere else. It’s heavy, though, so you set it back down for now. You make a mental note that you can come back and get this lamp if you find a good place to use it.” Later, there’s a link if the player picked up the lamp “Go get that lamp and move it here…” Then just narrate that it happens - don’t make the player do the work, they know what they want to do, shortcut it and get on with the story. Just like movies don’t show people picking up their keys and leaving their house and locking the door and unlocking the car and getting in; they just cut from the character knowing where they need to go, then driving. The rest can all be inferred naturally by the audience.

The simplest inventory is just a well-narrated flag system: If the player clicked the link to pick up the silver key a flag is set so when they get to the silver door they can see the option to use the key.

Otherwise, you need an “inventory button” or link of some kind that can link to a special inventory passage from any other passage in the story without getting the player caught in a loop if they twiddle some thing or look at a subsequent passage so you can’t immediately return them. There are solutions - every passage that represents a physical location sets a text string so exiting the inventory knows where to send you… This can get difficult as well. Inventory works really good as a modal window that doesn’t completely replace any passage in the story.

In Cannery Vale there were times where you had to access an inventory window in a specific location and the link to interact would then appear in the inventory page - when you got to a boardwalk amusement park game, you’d open inventory and the boardwalk token would have a link with it to insert into the slot in the machine that was only accessible in the correct location.

The easiest thing is just don’t let the player drop anything in any random location they feel like. And just because your story requires the player to pick up one plot-critical butter knife doesn’t mean you have to also let them carry around every piece of silverware in the game and put it in any drawer they want.

6 Likes

Don’t know about Twine, but in my preferred system (Ink) it’s not that technically difficult to implement an inventory (assuming I don’t want to support “drop anywhere”). The problem I’m trying to solve is how to avoid showing the player a “feed fish to seal” option (for example) just because the fish happens to be one of the dozen things that they’ve picked up already. I want them to have to actually think to use the fish before the game will show them the “feed fish to seal” option. (EDIT: and as I mentioned above, I don’t want a “use item… you can’t use that here” type system, which I’ve tried before & wasn’t too happy with).

I think at this point it’s looking like the “hold one, carry many” option is probably best.

1 Like

NOTE: I am intending food for thought and not direct criticism in the process of discussing game interaction, there’s no one right way to do all this.

I get it - Ink is more specially aimed toward being a choice/dialogue component of another game so it provides more of a reading-flow paradigm than a world model which makes it more difficult to implement physical objects and discrete locations that aren’t just story narrative. Puzzling in that paradigm often is abstract: the player knows that a toaster can accept bread, so if they’ve encountered bread it’s implicit that they can make toast and get a choice for it.

I don’t know if that’s necessarily a problem. Feeding a fish to a seal is intuitive and likely the one logical choice to make in that situation.

I understand the concept of “puzzle” kind of trips people up that the player is supposed to “solve” obstacles thrown in their path by the author, but consider these gameplay scenarios:

  1. I’m in parser. I come to NPC who wants something “tasty” before they let me pass. I don’t know what they mean as I’m carrying a croquet mallet, some Spanish moss, a butter knife, some tweezers, an important note, and a vaguely-threatening brochure. Since I know what to do but don’t know what’s in the author’s head, I methodically offer each inventory item one at at time to see if the NPC accepts it even though it’s a non-sequitur.
  2. I’m in choice. I have the same objects and the same NPC and I must ‘equip’ each item in turn and nudge against the NPC to see if it causes a reaction. Same as 1, but I’ve got extra steps instead of just FEED TWEEZERS TO BOB. FEED SPANISH MOSS TO BOB; I’ve got to go to inventory, equip the item come back, and then talk to Bob again.
  3. I’m in choice. I run up against the NPC and don’t get any choices to offer something, so I realize without taking too much time I probably don’t have the correct item yet. When I get the pancakes I get a link to use those. I didn’t solve a puzzle, but it’s logical that pancakes are a tasty item that will work. There was no reason nor implementation for me to bother trying to feed him the croquet mallet and the glowing blue sword and…
  4. I’m in choice. I meet the NPC and this particular passage is aware of all my inventory items and allows me to offer each one in turn. Wrong items deliver a snarky message from the NPC, but maybe explains why each item is wrong “Spanish moss is too bitter” “The butter knife has no butter on it…”

In my estimation, options 3 and 4 are more intuitive. In 3 I know immediately I don’t have the right item to progress; in 4 the lawnmowering process is part of the story because you can tell the author wrote those wrong choices in and considered them, and they might be funny. If I have the ability to initiate “object interaction” anywhere instead of knowing where the author means it, I spend most of the game clacking the salad tongs against the tambourine, getting a refusal message, taking a step in a direction, clacking the salad tongs against the tambourine again…repeat ad-absurdium like a crazy person. That causes frustration - at least for me personally.

Options 1 and 2 basically bring the game to a standstill while the player fumbles in place through their keyring blindly offering each one - even though none of them make sense - but the game doesn’t clue that so the player must do the work to make sure, mashing objects together to see if a reaction is caused.

I’m not saying you can’t make your game any way you want, but always be asking yourself if offering numerous “wrong” interactions is fun for the player and supports the story. Are you making a puzzle whose wrong answers are also fun and interesting, or is it just a roadblock to make the game longer? Is there really any satisfaction to making the player decide that the “tasty” item the NPC wants from inventory is the pancakes rather than the tweezers or the pocket lint when once they’ve acquired a food item it’s obvious what to do and item management isn’t necessary? One of the advantages of choice is you can bypass some of that clunkery of item management and keep telling the story.

But that’s my personal choice. I never want to faff around with a game where it feels the author is smirking going “No, that’s not right!” “No, that’s not right either!” instead of just being like “Cool, you found the jade idol, you know it goes on the jade plinth. I’m not even going to suggest that the tweezers are the right object here.”

3 Likes

It’s not much fun if you feel a game is continually prompting you with solutions before you’re fully aware of the puzzle though. Not having the player toting all the items around is a way to make it less likely that a choice game will spoil puzzles out of the blue.

Yeah. The concern isn’t making the puzzles “too easy” or something, the concern is that I don’t want the player to feel like they’re just “along for the ride,” just clicking on whatever choices the game presents to them. I want players to feel like they’re forming explicit intentions & then acting on them.