Jump to content

Item/Block Consolidation


Omega Haxors

Recommended Posts

The current registry is a complete mess of blocks. Since each item variation is essentially its own block, that means there's a crapton of superfluous blocks which only exist because they have to. Make no mistake, it's really awesome to see the 20+ variations of each block type and it's a part of what makes the game special, but it also feels really inefficient and leads to issues such as your inventory being clogged up by multiple different types of the same item. Here's a proposal to fix this one and for all.

Items are generated in the registry in a very formulaic way. This is good because it's efficient and easy to work with. What I'm proposing is that that format be brought into the game itself. Lets use stones for an example, the kind you can fit in your hand and throw. They can be quickly described by a simple grid: [rock type],[containing ore & richness] so there's 1 item for each rock multiplied by 1 item for each richness and within that another multiplication for each. What starts as 2 axis (one containing 2 axis within itself) has become hundreds of items.

Now lets just take all that, throw it in the trash and replace it with this:
Item: Stone - This is essentially just a generic item representing stones
 Tag: Material - this defines what material properties the stone will take. In this case it's Granite.
 Tag: Ore - this defines what ore is currently within the item itself. Right now it contains copper, but this can be empty.
   Tag: Richness - this subtag for the Ore tag defines how rich the ore is. Right now it's poor.

Already this is a lot easier to work with both on the intuitive level, and also on the coding level. If you wanted to create a 'spawn item' command, all one would have to do is say "/spawn stone granite copper rich" and just like that, there you have it.

Here's an even more fun reason to do something like this however: Item stacking. One problem with games that have various item variations is that they don't stack in the inventory, but using this system they can very easily be made to. Here's an example using the logic from the last example that should be very intuitive.

Item: Stone
Material: Granite
 Contains Ore: No
 Amount: 10
Material: Granite
  Contains Ore: Copper
   Richness: Very Rich
    Amount: 10
   Richness: Bountiful
    Amount: 4
   Richness: Crystal
    Amount: 1

The item stack has 10 normal granite rocks, 10 very rich copper granite rocks, 4 bountiful copper granite rocks, and 1 crystal copper granite rock, for an itemstack size of 25
 

That's right, this system allows for the possibility of MULTIPLE ITEMS in the same inventory slot, as long as they're the same type of item.
Since they all share behavior, they all act exactly the same when used, no need to define each and every one individually.
For exceptions, like not all rocks can be used for knapping, you can simply read the value then compare to a table when relevant.

How will this impact gameplay? Simple. Whenever you use an itemstack, it just picks the items randomly, with a weighted chance. To reference the last example, if you picked up 2 Basalt rocks you'd be far more likely to throw a Granite rock (10/12 chance) than to throw a Basalt one (2/12 chance) and you would never throw the ores (since you can't throw ores). If the player wants to 'spread' out the stacks (for example, to sort them) you can just split the item out. For example if you split the stack in half, the items will be distributed at random between the two stacks, giving you a chance to sort various items of the same type. Likewise, you can choose to stack the items together if you don't care and just want to save inventory space.

Those familiar with the minecraft bundle should have a good idea of what game design this system serves to purpose.
Intuitive on a player level, immersive, and intuitive on a coding level.

Edited by Omega Haxors
  • Like 3
Link to comment
Share on other sites

  • 1 month later...

I love the whole idea but at the same time the lack of controll over item movement within stack whould bother me a lot (especially when extracting ore pieces to smelt from it) so i would add something like this : 

Player can use scroll while cursor hovers over a stack of items to cycle through all variants in said stack it would put the currently selected variant on top of stack meaning that it will become its stack icon and be first one to interact with selection would be also indicated by border around variants name in stack list, for example (i will use your list here):

list starts like this 

Item: Stone

[Material: Granite  ]
[ Contains Ore: No]
[ Amount: 10.        ]

Material: Granite
  Contains Ore: Copper
   Richness: Very Rich
    Amount: 10
   Richness: Bountiful
    Amount: 4
   Richness: Crystal
    Amount: 1

Normal granite stone icon is dispayed

And after scroling down by two spaces i would look like this :

Item: Stone
Material: Granite
 Contains Ore: No
 Amount: 10

[Material: Granite           ]
[  Contains Ore: Copper] 
[   Richness: Bountiful.   ]
[    Amount: 4.                  ] 

Richness: Very Rich
 Amount: 10
 ++++++++++++++++
Richness: Crystal
 Amount: 1

Here displayed icon would be granite stone with copper ore.

So if you want to extract certain variant only , you can now select it , pick it up and right click on empty inventory slot to place that variant there one by one , if you press Shift as well , you will extract all items of selected variant.

  • Like 2
Link to comment
Share on other sites

10 hours ago, AdrianNumbers said:

*SNIP*

 

I actually considered scrolling but decided against it because of annoyances in minecraft with similar systems where you sneak and it gets caught up on your hotbar.
In retrospect there's no reason I couldn't have just used a harmless control like... control to, well control this behavior. Yeah, that's a really good point.

Edited by Omega Haxors
Link to comment
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.