Skip to content
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

Advanced Inventory System #37

Open
BenCheung0422 opened this issue Dec 23, 2024 · 2 comments
Open

Advanced Inventory System #37

BenCheung0422 opened this issue Dec 23, 2024 · 2 comments

Comments

@BenCheung0422
Copy link
Member

BenCheung0422 commented Dec 23, 2024

Original: MinicraftPlus/minicraft-plus-revived#201, MinicraftPlus/minicraft-plus-revived#545, MinicraftPlus/minicraft-plus-revived#567, MinicraftPlus/minicraft-plus-revived#718

Background

Currently, the inventory implementation is immature and flexible enough for other functionalities, including equipment and hotbar slots. However, this is somewhat different from what I proposed previously1.

Suggestions

Now, the new inventory system would focus on both usability, convenience, aesthetics and flexibility. Mostly mentioned feature would be having more slots to switch on the player hand in the hotbar. In addition, to support more HUD related features or equipment, having a flexible hotbar system is quite essential here. If not, the implementation can be clunky and complex. Based on suggested features, this is the more complete proposal on the new inventory system.

Hotbar

Adding more slots to the hotbar has been mentioned couples of times, so it is the basic part. There is no much plan about the non-dominant hand, but shield may be implemented.

Main/Dominant Hand
Either empty or one of the slots selected
  • When empty: Player can either get a slot of item(s), switch to other equipment or select a slot
  • When a slot is selected: Player can only unselect/switch the slot to get other items on hand; or use/drop the slot for usage
  • When not empty but not a selected slot: Player can only stack the slot with slots or tidy all slots in inventory, and cannot select an occupied slot
Non-dominant Hand
May be equipped by dominant hand or in inventory
Slots
All slots can be equipped by dominant hand or inventory, and slots are distinct from the ones in inventory, like in Minecraft and Terraria

In fact, the above schema is flexible for extra equipment switching. When the hand can be empty easily, extras equipment can also be switched in the similar way.

The number of hotbar slots also decide the number of storage slots in inventory as a multiple of the number of hotbar slots (for aesthetics).

Inventory Tabs

The new GUI system can make the menus scalable, so more elements can be fit in the same view. Mostly, the tabs would be adjacent to the main inventory slots area, like in Minecraft. This way, player can equip and access the items conveniently with the tabs.

Several tabs would be available at first. The first thing is the personal crafting area, would be migrated into the second tab and removed from hotkey as a separate menu.2 The first tab would be the primary slots of equipment, including armor and perhaps the non-dominant hand. Other tabs can be added along with more feature additions.

Storage Menu & Slots

Due to the advanced layouts of the menus, the slot entries have to be less verbose. This means, the item names would be hidden from entries and instead displayed on description menu/tooltip for allowing more visible spaces for other elements, or else the menus may be either too small or unhuman. Then, the slot menu would become two-dimensional and the slots are fixed, including container menus, empty slots could appear in the middle. Stack merging, swapping and splitting would also be supported.3 However, searching ability would be disabled from these inventory menus but could still be available in creative mode inventory. Full keyboard controls would still be supported on this layout, but may be more hotkeys and can still benefit from 2D slot menus (reduced scrolling time). I guess the keyboard controls may be similar to controller controls on Minecraft Bedrock, this layout benefits the most on mouse with keyboard. (This is actually another topic.) One more point is that the item slots can be more intuitive and clear at a glance.

Inventory Type

As ideas, there are actually 3 types of inventory system (suggested by @JamesTDG):

  • Weight capacity (seen in Ark or Rust)
  • Sized/shaped storage (seen in Subnautica or Backpack Hero)
  • Stack limits per slot (seen in Minecraft)

Here, sized or shaped storage does not really fit the Minicraft game system while the weight capacity system may be complex to be implemented in game (but can be as a mod). At the moment, stack limit has already been implemented in game, but not yet fully scalable. The actual full use and adaption of feature may be reliant on #31. In fact, the stack limit system may not actually be completely scalable, based on the system seen in Applied Energistics and bundles (Minecraft). We have 2 routes here:

  • Continue with stack limits per slot and usable slots as per inventory storage:
    Similar to vanilla Minecraft inventory system and current implementation, but with more different limitation per different items.
  • Instead with storage space based on the stack limits:
    Similar to bundles in Minecraft, each inventory is assigned with a storage space value instead of usable slots. Each item occupies the space with certain value of storage space, quite similar to weight capacity system, but in a different approach. Thus, it may not be really stack limits, though there are still slots and stacks (each stack may still be assigned with a stacking limit for overflowing items). However, the available slots are not static and functions based on storage slot positions may not work.

Equipment

Currently existing proposals include the power glove and maps. If those are implemented as equippable tools, this system can be beneficial. Players could (un)equip them in the inventory tabs (may also by dominant hand) and use them on hotbar/HUD. This includes the new armor system in which armors can be taken off. Still, more equipment items can be added in the future.

Expandable Inventory Limits

As we have an inventory limitation system, we should have an enhancement to expand the inventory limit in the late game as a reward or equipment. Moreover, as seen in Minecraft, functionalities to utilize limits (bundle) and extra carrier (shulker box) can greatly enhance playability and are extensive to the system.

Examples

We could have bags, backpacks, arrow bundles, portable chests, etc. "Enchantment of holding" might be either too powerful or relatively meaningless, so equipment as the abilities would be a better choice. In these examples:

  • Bags: an item to give some extra slots when interacted; it could have a similar mechanics of bundle in Minecraft or backpack below.
  • Backpacks: an equipment that can be armored without occupying an inventory slot; it gives some extra slots with associated keys (implemented with ContainerDisplay).
  • Arrow bundles: the maximum count of arrows would be reduced in a slot to make this more useful; an arrow bundle requires some materials to craft an empty arrow bundle; it could either be armored or stayed in the player inventory; it allows players to put arrows into an arrow bundle until it reaches the maximum size; it would have a greater maximum size than a bare arrow slot.
  • Portable chests: it would have similar mechanics like a shulker box; it can be picked up to the inventory when it contains items, unlike normal chests; it can only be opened when placed; it would require a higher cost to balance the game.

In ideal, there should be different stack size limits to different items to ideally balance the game.

In addition, there is a suggestion to starting with a few slots, but using an upgradable backpacks for more slots in the inventory storage.

Conclusion

To sum up, these are the plans that could be done to overhaul the current inventory system in order to expand the capabilities for more features. Also, this also adds numerous features suggested by players, but better migrated and adapted into system. The number of available base inventory would be decided with expandabilities taken into consideration. This is a quite important feature update to the gameplay.

See Also

Footnotes

  1. Discord post: "Advanced inventory menu"
    This focused on an optional menu style with GUI style option.

  2. Discord post: "Merging Crafting Menu into Player Inventory Menu"

  3. Discord post: "Inventory item stacking support"
    Previous post on the same topic was named "Inventory stack operation support".

@JamesTDG
Copy link

Don't forget to consider mobile inventories, eg: mounts, trains, etc.

@BenCheung0422
Copy link
Member Author

However, I think these kinds of additional storage would be apart from the player's inventory system, so when planning the inventory system, only the above mentioned direct abilities expanding the inventory storage would be taken into account.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment