+4
Under review

What Inventory 2.0 should consider

Necka 6 months ago in Inventory updated by Marti (Lead Developer) 2 months ago 10

Hi Marti, 

here are my thoughts about what Inventory 2.0 should handle:

  1. Hotbar/Quick Bar - It's either a quick access or the pockets of your character. I personally use this as where the player can activate a slot (equip an item) while when the inventory is equipped, you can't click to equip in the inventory.
  2. Number of slots available in the inventory - Basically a setting to state that the inventory has a base of XX slots (quite easy, it defines how many Slots are instantiated in the GridLayout on the canvas. And no, people don't like a weight system :D for the dev it involves always calculating and not forgetting. For the player it's just an annoying limit (which can be here anyway for RPGs!) - this point introduce the notion of: Inventory full
  3. Extensibility of the inventory size as mentionned in #1 - Quite basic too, imagine the player picking up a bigger bagpack that will raise the number of inventory slots by +XX
  4. Inventory organization - That is something I also implemented (#1 and #2) and I can share with you the code for that for inspiration. So it allows to move slots in the inventory or from the inventory to the hotbar and vice versa. it goes well with the hotbar concept. Imagine the hotbar having the slot 5 selected (that's your currently selected weapon for example). You can move you item from inventory slot 8 to hotbar slot 5: it will equip that item. move item from equipped slot in the hotbar to empty slot in inventory or hotbar: move the item and unequip. Move from slot to another slot that is already occupied by an item: swap their position. It basically stick the item to your mouse position and then decide on what to do when you click on another slot. It resets it to the original slot if you close the inventory or click outside of it.
  5. Items stats + custom fields - Be creative but give the dev the possibility to set additional fields for item stats (IE: int. +10 // Firepower: 500 for a gun)
  6. Tooltip - this is also extremely important for any rpg/survival game. Think World of Warcraft, Diablo, Divinity, literally any RPG around here
  7. Other way of equipping - An alternative option instead of left clicking an item to equip/consume, it could be a right click button that shows a context menu (useful if we use left click to re-organize items. But you could also have a little lock button in the inventory to allow re-organization of the inventory and keep the left click for consume)
  8. Stacking limit and allowing multiple stack of the same item: This is really important to have. Many many games have that. So it is simply to limit that for example the item Wood can only be stacked 10 times. if you have 10 woods in a slot and pick-up 1 more wood, it will occupy a second slot. It can trigger an inventory full message
  9. Containers: Same rules as inventory - Slots amount limitation, re-organization, stacking limit (should be on the item anyway), naming the container (so the player can have maybe a wood container, a rock container etc. It doesn't limit what kind of items you put in there (even though it could be interesting) but just a name for the player to see 
  10. Containers owned by the player - To be fair I did not play with Containers yet but in case it is not how it is: some defined containers should the Player's inventory extension. So for other systems to look into the player inventory will check also the containers content (example in #11)
  11. Crafting evolved - Crafting should be kept simple but the option should be given to look up for more than 2 items to craft and this should be in an external GUI with blueprints possibility. Blue prints is for example a gray item in the Crafting UI, when you click on it you can see the requirements. The crafting system checks the player inventory (AND ITS CONTAINERS!!) and if the components are there, the crafting button is not greyed out for example
  12. On death prefab drop - simply a prefab item that the dev chose to have when the player dies. It basically drops the content of the inventory on the ground where player died and if the player pick-it up it restores the inventory (the container inventory is of course protected - think Minecraft

I'm sure I forgot things or will have other ideas, but here is my first version

Unity version:
2019
Game Creator version:
2.0
Under review

Excellent Necka! Thank you very much for the detailed and organized ideas. I'll link them to the ticket and will definitely assess them when working on version 2.0

Can't see an edit button so I'll add what I completely forgot but seem essential, it's probably related to Duffer request, but I already said it, I don't understand what he mean and I think it needs to be described as generic as possible 


  • Item alternative based on a main item
    • Example is that I could have a Main inventory item (let's call it Basic Rifle) which has a set of actions predefined (equip something, launch this and that action, set those variables).
      But I would like also 15 other kind of rifles that derive from it in the way that maybe the model change (override the equip action) and the stats (as described in #5). the actions/variables etc could be the same as the main item but the stats (what it does) would be different
    • UI wise it would also let us organize things. Maybe we could fold the main items and click on a button to expand the list and keep things organized 
      • Create main item 1 Basic Rifle
        Create sub Item 1.1 Awesome Rifle
      • Create main item 2 Basic laser sword
      • Create sub Item 2.2 Unicorn laser sword

Also as for the Module itself. I personally would like to suggest you to keep the current inventory system and rename it "Basic Inventory module" and make that one a new module (advanced inventory sounds right). First of all because this will cost you dev time and that is money. Second of all, because maybe some people wants just the basic inventory as it is. If features are clearly explained in both assets (and that on both you warn people that both exists - it's fine)


Price wise maybe a reduction for Basic inventory module owners (if you think it's fair) and a base price obviously higher than that basic module.

That part is of course entirely up to you but I refuse to not participate financially to that module dev.

I think the points regarding customisable/upgradeable items is that Inventory v2 should be able to create new and unique items (off templates but then added to) in runtime too and of course these should also be saveable and loadable.  

Rather than massively predefining all the inherited item templates (which would leave many still at it in their late 90s!), the best route to achieving this is through Attachments to the Main Item which then change the main item's more expansive name (ie. Longsword >> Iron Longsword >> Holy Elven Longsword of Smiting >> Holy Elven Mithril Longsword of Smiting and of Bloodloss) and the main item's properties (Size, Material, Hue/Colour, Effects, Mesh even, Damage attributes, Stats, Variables etc etc).

Examples of Attachments are substantial things like Sockets or Socket items (Gemstones, Runstones, Orbs etc or it could be extended magazine for a gun etc), Inscriptions (Runes, Signs, Sigils etc) and, last but not least, Affixes (which can include generic affixes, prefixes and suffixes).  Good examples of Prefixes are as in the above example like Holy, Elven, Mithril.  Good examples of Suffixes are as in the above example like of Smithing and of Bloodloss.  Generic Affixes sit under the main expanded name of the runtime item and just again alter properties etc.

Attachments could also effect say value, rarity etc. and loot weight (chance to loot).

This way you have near infinite variety of runtime Items with little more overhead.  And a very attractive draw to gamers playing the game to find new and interesting items.

In terms of currency/value, you need to be able to define multi-currency and exchange rates:- e.g. 10 bronze pieces = 1 iron piece, 10 iron pieces = 1 silver piece, 10 silver pieces = 1 gold piece etc etc.

In terms of crafting, you need more flexibility and more than 2 item sets.

In terms of Items, especially equipment, Item Sets are another excellent gaming mechanism.  An example - if you collect and equip not only the Boots, Trousers, Cuirass and Bracers of the Badger but also the Helm of the Badger (ie. the complete set!) you get bonus benefits - again draws for the gamer.

I wish to have some kind of the size of items sets. Like in Diablo, or Resident evil. This kind of management and presentation always was interesting to me. 

Also. Here is the pretty nice inspiration of function that can be included.

+1

Thanks guys! All these ideas are very appreciated. I'll be assessing them and discuss further details when I start working on a draft for the next Inventory module. 

Once thing to note is that at first I liked the idea of the Basic Inventory and an Advanced Inventory modules. However, there are some quirks. For example, each Inventory will probably require a different system, which will make upgrading from the basic to the Advanced a headache. Also, some features might be shared, which means doubling maintenance. I'll probably just create an Inventory module with features that can be enabled and disabled.

But then again, this are just thoughts without deeply thinking them. I'll have more info when I start working on it. Keep the suggestions coming!

Hello, everybody,

I would like to take up the subject again here and share my thoughts on it:

1. a hotbar is important

2. I find that a system that works by weight makes a lot of sense. Every developer has his own ideas. For example, I want to be able to influence how fast a player can run or how fast his endurance is exhausted (depending on how much he carries). Basically a system that offers both possibilities would be more realistic and optimal. So I could specify that a player can only carry a maximum of 50Kg, but if the backpack is too small, it can only contain a maximum of 10 items. For a locker (container) it makes more sense to limit the number of slots. (The cupboard is full)

3. the stack size should be variable (Nails can be stacked 100x, a helmet only 1x) This also requires that an item can be stored several times in the inventory (if the player finds e.g. 2 helmets - this is unfortunately not possible in the current version). If a slot is full, a new slot is created. Of course there should also be the possibility to split or merge them. If there is a limit to the number of slots, this could lead to problems. Optionally it makes sense to integrate a field at the edge of the inventory that is only intended to divide items and is only shown when needed.

4. it would also be important to be able to give the individual items properties. For example the durability (an axe can be used 100 times, and is then destroyed or can be repaired. It would be similar with food .... A piece of meat has a shelf life of 3 days, after that it changes its effects (if consumed it will make you sick with a probability of 10%) - in a refrigerator the shelf life should be extended by xy%.

5. a tooltip that is displayed under the inventory as soon as you click on it or move the mouse over it is definitely useful. There is then a more exact description (possibly even actions would be executable here (repair or use).

6. recipes have to be extended. To combine only 2 items is in most cases not enough. As Necka described at point 11, a mature crafting system is important.

7. in the same context as in point 6 it would be desirable to be able to craft some items only on certain objects (for example on a stove). here i could well imagine that the player has the option. To stay with the example of the stove: to make a fire he can use either wood or sticks. Here it is useful to be able to assign groups to the objects of type ... (wood, stick, oil would have in this case the type group "combustible" - lighter, matches and flint would have the type group "make fire". Depending on what the player has in his inventory you could then display various options.

8. double click function to drop a slot with 100 nails at once into a container or to take only this full stack out of it.

I hope I could contribute some more ideas to the new inventory system.

The current version is unfortunately only very limited usable.

I wish you in any case much success with the implementation.

:)

Hey Markus!

Thank you for your feedback! Definitely makes sense all your points. It's still going to take a while for Inventory 2.0, however, I like having ideas as early as possible.

All things mentioned in this topic make perfect sense. What I'm concerned is about the crafting system. Could you recommend one (or a few) crafting systems to take a look at? Don't care much of the aesthetic but about the functionality. Seeing common points between different crafting systems that are considered "complex".


Thanks!

+1

Hello guys,


Well all of above if obviously important but the most IMPORTANT thing is that we need multiple inventory not just for one player! That is absolutely must. I do want to do 3 different kind of games but all of them need inventory for each character in the group. Let say you want to do some dungeon game like baldurs gate where you have in the party like single player a few members and all of them need their own inventory and stats. (one is warrior, second mage, third healer etc.). All of these characters in the party are one player. Lets say you are doing tactical game where combat is on the turns and you need to handle 4 different members of your party and each needs his own inventory with equipment. To have actualy more than one inventory is absolutely crucial for this module.

Please make it consider to implement this in new version.

Thank you

+1

Definitely yes. I was very naive to implement the Inventory system with just one single one available. It made sense at the time, since Game Creator was meant to be used for adventure games, but since then, the scope has broadened a lot more.

The Inventory 2.0 will have multiple Inventory options. This is top priority.